如何獲得我的Google AppEngine應用程序執行更好更快的請求(即更少的加載時間和更少的CPU使用率)?我具體指的是應用程序服務器端部分的重要部分,而不是客戶端。Appengine優化
回答
使用appengine Appstats來查看您的應用程序實際使用更多cpu資源的位置。嘗試找出原因並尋找替代解決方案。 在python中,你可以做很多優化。中號
。利用內存緩存API使 數據讀取方便,快捷的。避免不必要的獲取()和獲取()。
避免做大量的RPC,而 使用db.reference()屬性。 Nick's blog就此解釋了這一點。
在appengine中的建模對性能有很大影響。確保你有適合你的應用的正確型號。
避免進行獲取和獲取,除非直到你真的需要它們。
我推薦使用Appstats來查看你的應用程序在哪裏存在瓶頸。
我使用memcache這顯着提高了我的應用程序的性能。我希望它也可以用於你。當將memcache與HTTP頭結合使用來設置緩存控制時,我在響應時間方面得到了顯着改進。
這不是一個真正的優化,但框架的選擇在這裏非常重要。 Java和Python中的大多數傳統框架(Django,..)並沒有設計爲快速啓動,因爲它在傳統託管中並不重要。考慮使用像Tipfy,Kai,Webapp,...(Python)或slim3,...(Java)的App Engine特定框架。
理想情況下,您應該組織數據,以便每個用戶請求只需要一次對數據存儲的調用,最好是db.get,因爲查詢速度明顯較慢。爲了達到這個目的,您通常需要對數據進行非規範化處理,並使用實體組和事務將不同副本保持同步。
當進行多個urlfetch或API調用時,可以通過使用非阻塞(異步)語法並行調用進程來加速進程。只要有可能,緩存當然是非常重要的。
如果您還沒有,我建議您觀看Google的IO會談(2010 & 2011),特別是今年的Scaling App Engine Applications,它在描述服務器端最佳實踐方面做得非常好。
一個經常被忽視的方面是不同的AppEngine相關服務支持異步處理,例如數據存儲:
https://cloud.google.com/appengine/docs/java/datastore/async
和網址提取:
https://cloud.google.com/appengine/docs/python/urlfetch/asynchronousrequests
如果你有請求執行各種任務,您可以看到它們是否可以並行化。
- 1. 優化appengine實體密鑰的使用
- 2. 用jQuery優化圖像動畫以優化iPad優化
- 3. 優化
- 4. 優化
- 5. AppEngine性能優化與空閒實例和待定延遲設置
- 6. 谷歌速度優化的Css優化
- 7. 使用優化R優化矢量
- 8. adam優化器和動量優化器
- 9. 使用r.js優化來優化模塊
- 10. JIT優化器是否優化乘法?
- 11. JPA/Hibernate空值優化查詢優化
- 12. PLSQL腳本優化/調優
- 13. 優化innodb表
- 14. 圖像優化
- 15. postgresql.conf優化
- 16. MySQL的優化
- 17. 優化方法
- 18. 優化表
- 19. 查詢優化
- 20. 優化HttpWebResponse - GetResponse
- 21. 查詢優化
- 22. 圓角優化
- 23. SQL Server優化
- 24. 優化查詢
- 25. css優化
- 26. 查詢優化
- 27. 計劃優化
- 28. Pypy(Python)優化
- 29. 查詢優化
- 30. Objective-C優化
關於可以在appengine上運行良好的java web框架,你可以查看我的框架thundr - http://3wks.github.io/thundr/它有很多專門針對appengine的框架支持,並且基礎啓動時間爲在appengine上約3.5秒。在appengine上進行試驗和測試,運行許多不同的部署,從基於內容的應用程序到工作流和單頁應用風格的交易。 – Nick 2015-07-16 00:35:20