嗯,優化和黑客主義2不會是一件容易的事。我只能建議你按照官方的「最佳實踐」:
- 使用查詢緩存
- 使用元數據緩存
- 預生成代理
- 避免監聽器(或事件類型(合併它們沖洗更新),這將避免查找時間和訂閱事件環路)
- 使用延遲加載,只要有可能
- 確保您的關係或繼承不搞砸
(請注意,我沒有提到的結果緩存應該不是優化應用程序的方式)
從我的使用,我不得不優化最重要的部分是不是教義本身(而對核心進行優化),但生成的查詢一如既往,編輯查詢和優化索引。
學說2可以是高消耗內存的同時可申請減緩所以加載了很多的實體,您可能會發現它有用知道關於clear()
,detach()
,iterate()
方法。
雖然Doctrine 2有時可能很慢,但我大多發現我能夠在Zend Framework或PHP本身的其他地方優化應用程序。
比方說,Doctrine 2需要100ms,其中Zend Framework需要300ms,總共450ms(I/O stuffs,PHP內部函數等)。)
如果你可以用兩個很容易除以Zend框架採取優化原則2,以獲得像10%不會顯着提高應用程序的速度的時間。仔細想想兩次。
這裏有幾個技巧:
- 創建您自己的看法,而不是使用視圖助手(避免助手查找)
- 緩存您的Zend_Config對象(真重負載)
- 避免正則表達式的路線時可能(ZF路線是一大瓶頸)
- 使用類映射自動加載,而不是本地Zend_Loader_Autoloader的
有很多優化工作要做,有些有實際影響,有些則沒有。
確保通過剖析應用程序找到他們,一個簡單和跨平臺使用webgrind。
+1感謝您的詳細回答,但你可以請解釋一下這點_Avoid正則表達式的路線儘可能(ZF路線是一大瓶頸)_?其實我之前有一個帖子是在問同樣的事情。也許你可以提供一個答案吧[優化Zend框架的路線(http://stackoverflow.com/questions/10070634/optimizing-zend-framework-routes) – Songo
由於這個答案已經很老了,**提示**作肯定要升級到Zend Framework 2,它已經從頭開始重寫,在大多數情況下要快得多。 –