3

我在大學裏做了一個Google App Engine應用程序作爲課程項目。現在我需要優化它以在商業上使用它。增加Google App Engine上的型號數量會影響性能?

如今,代碼非常慢。它只有幾個模型,每個模型都有很多屬性。 在重寫Models代碼之前,我需要知道如果增加模型的數量(即增加去耦),我的應用程序是否會更快。直到我應該考慮將其他模型中的模型劃分爲什麼?

其他問題,如果解耦合對性能產生正面影響,那麼模型中的屬性數量與從數據存儲中獲取時間成正比?

回答

7

如今,代碼非常慢。它 只有幾個型號,每個屬性中有許多 屬性。

獲取/把大對象

由於數據存儲API只能放或獲取對象(而不是單個字段),每次獲取的數據存儲的對象時,它獲取所有的字段不管你是否打算在那個時候使用它們。當我們將對象寫回到數據存儲時,這種效果會更強,即使在對象中改變單個字段時,它也必須寫入所有內容。 (寫入的成本超過讀取數)

在我進一步說明之前:模型的擴散應遵循您的讀寫模式。

更實際一些,舉個例子,說我造型上的博客,其中每個將有一個title,一個datebody(我們將理所當然地承擔起爲比其他領域要大得多)的職位。在簡單的對象建模中,我會在單個類BlogPost中使用這三個字段,但是我每次只想讀取titles(例如,僅顯示帖子列表和構建鏈接到帖子),或者只是更新dates

class BlogPost { 
String title; String body; long date; } 

那麼,什麼人可以做的就是創建一個類Body將持有body,並保持內部BlogPost參考(關鍵)給它。

class BlogPost { 
String title; 
Key<Body> body; 
long date; 
} 

class Body { 
String body; 
} 

爲高效的跨側系列化輕量級使

這也使得BlogPost類更輕巧如果我決定序列化,並將其發送通過線路,如將其發送到Web瀏覽器(用於JavaScript),例如GWT。

是否增加模型的數量 Google App Engine會影響性能?從尼克·約翰遜

答:

沒有,增加額外的模型不會 衝擊性能。

+0

好的答案,但您沒有明確解決主要問題:否,添加其他模型不會影響性能。 – 2010-09-07 07:35:53

+0

我完全錯過了,我會在編輯中引用您的答案,謝謝! – bakkal 2010-09-07 08:00:36