2011-07-24 31 views
10

我是Python和GAE世界的新手,我有一個問題。 對於Python,通常的做法是隻在需要時優化代碼,修復更緊急的瓶頸。 而其中一種方法是通過重寫C程序中最關鍵的部分。在GAE中混合使用更快的語言進行優化

通過使用GAE我們是否永遠失去了這種可能性? 由於Google's Go language現在(或者只要它被編譯得更有效率)是GAE中最快的語言,那麼在同一個應用程序中是否可以混合使用Python和Go? 還有什麼其他方法可以用來達到類似的結果?

回答

9

Can I write parts of the Google App Engine code in Java, other parts in Python?如何使用多種語言。

基本上,一個給定的應用程序的每個版本只能使用一個運行時的語言。

但是,你可以有兩個不同版本的應用,不同語言編寫的,而且他們可以通過信息來回的數據存儲。

此外,您可以有兩個不同的應用程序,以兩種不同的語言,你可以再通過請求傳遞的信息來回。

+1

小心兩種不同的App Engine應用,作爲協議似乎不許可(可能阻止人們試圖避免配額)。 – Kitsune

5

我認爲你在這裏過早優化下降。對於幾乎所有的web應用程序,大部分時間都用在RPC中,等待系統的其他部分執行諸如進程數據存儲查詢之類的操作。其餘部分,無論如何,通常都會花費大量的C代碼。有相對較少的web應用程序需要執行大量處理器密集型工作才能提供典型查詢。

如果你的程序是其中之一,你可能要重新考慮用Python寫,你的整個應用程序給定在App Engine C擴展的可用性,並選擇Java或去。如果您的應用程序是不需要需要爲典型請求執行大量處理器密集型工作的99%中的一個,請不要擔心。