我讀過很多關於ZF性能文章,仍然無法理解,如果我已經啓用的字節碼緩存(APC),它是有意義的使用一些其他的技巧?例如。禁用自動加載,並使用一個大的php文件,而不是所有必要的類。Zend框架的性能(自動加載)
回答
我很驚訝地發現,這是網站上標記性能,自動加載,PHP的唯一問題。爲了消除#1自動加載的神話,這是一個比這更好的地方:
現代的,精心設計的自動加載機不會破壞APC(或PHP 5.5的OPcache),並且性能也不會比require_once
更糟糕當然是函數調用開銷)。
爲什麼?那麼,現在我們有spl_autoload_register
,它可以讓你添加多個自動加載處理程序。這允許每個第三方庫發佈自己的自動加載器,知道如何加載該庫的文件,並跳過其餘部分。
例如,Zend Framework 1的Zend_Loader_Autoloader
限制自己嘗試加載以特定僞名稱空間開頭的類 - Zend_
(以及用戶要求加載的其他任何內容)。如果它不以所需的僞命名空間開始,它只會返回並讓堆棧中的下一個加載器運行。它也知道它可以在Zend/Foo/Bar/Baz.php
找到Zend_Foo_Bar_Baz
,所以它不需要需要手工搜索包含路徑。像其他現代框架自動加載器一樣,它遵循PSR-0 autoloading standard。通過composer以同樣的方式也得到自動構建命名空間中自動加載機安裝
的依賴。
這是包括路徑淘洗,使設計不佳的自動裝載機吸。你通常在現代PHP代碼中看不到這些。激烈的文件系統stat
調用從試圖找到文件的結果是一個頻繁的性能拖動。查看this presentation by PHP creator Rasmus Lerdorf,其中他通過基準測試,分析和仔細刪除諸如stat
調用等慢速操作來提高Wordpress的性能。
從昔日的require_once
-everything-的前期是爲不必要當你使用現代圖書館和沒有蘇茨基自動加載。如果您使用APC,則只有disable apc.stat
纔是主要勝利,如果使用OPcache,則只能使用OPcache's validate_
, revalidate_
, and enable_file_override
INI options。
TL;博士:除非你知道stat
婷包含文件是你的最大瓶頸,在Zend自動加載磁帶機是蠻好的,你不需要求助於require_once
巨星。
謝謝你的詳細解答,對我來說這是一個非常有價值的信息。我沒有忘記它。這一次我一直在研究))) – heximal 2011-05-06 10:01:03
- 1. Zend框架中的類自動加載
- 2. 在zend框架中自動加載
- 3. Zend框架2:Lucene自動加載
- 4. Zend框架問題自動加載
- 5. 加載Zend框架
- 6. 如何在zend框架中添加新類和自動加載
- 7. Zend框架中的模塊自動加載器
- 8. Zend框架自動加載器奇怪的行爲
- 9. Zend框架的作曲家自動加載
- 10. 如何在Zend框架中自動加載類
- 11. Zend框架自動加載基礎控制器?
- 12. Zend框架:自動加載一個類庫
- 13. 自動加載模式,形成內部模塊Zend框架
- 14. 自動加載對象到Zend框架2項目
- 15. Zend框架 - Form類不是自動加載
- 16. 如何在zend框架中自動加載模式
- 17. 錯誤時Zend框架的加載庫
- 18. PHP __自動加載性能
- 19. PHP zend框架不會加載模塊
- 20. 禁用懶加載教條zend框架?
- 21. Zend框架2 - PDF - 加載PDF模板
- 22. 加入Zend框架
- 23. Zend表格自動加載
- 24. Zend Framework 2自動加載
- 25. Zend自動加載器
- 26. zend模塊自動加載
- 27. 實體框架6意外的自動加載導航屬性
- 28. Zend框架 - 如何設置自動加載程序進行自定義裝飾
- 29. 無脂框架:F3自動加載器
- 30. 實體框架自動急切加載
的一些想法http://stackoverflow.com/questions/3777765/using-zend-framework-for-highload-projects的可能的複製。 – 2011-05-01 00:05:32