如果您不熟悉內部部件,如何確定PHP代碼的性能後果?有沒有辦法找出你的代碼是如何執行的(除了簡單的加載測試)?我正在尋找內存使用情況,算法執行時間等問題。也許喬爾會說,「學習C,然後閱讀內部」,但我現在真的沒有時間學習C(儘管我真的很喜歡)。確定PHP代碼的性能結果
6
A
回答
4
使用Xdebug擴展來剖析PHP代碼。
3
如果你不熟悉的valgrind或類似的,然後添加到@Jordi本斯特的答案...
當你已經在Xdebug的剖析上,你可以在KCacheGrind打開傾倒輪廓文件或WinCacheGrind獲取代碼中花費時間的圖形視圖。
幸運的是Xdebug的文件還詳細解釋了這個問題,以及如何解釋結果:http://xdebug.org/docs/profiler
0
即使你熟悉的內部,你還是應該進行負載測試你的假設。我喜歡使用PEAR Benchmark包來比較不同的代碼。
如果你能隔離你的代碼,你可以保持你的負載測試簡單。一個典型的技術是運行每個選項幾次,看看哪一個更快。例如,如果你有一個類,你可以編寫一個測試用例,並通過它的步調並運行幾次。
0
可以使用低級別的方法,如堅持microtime()
和memory_get_usage()
調用到代碼,也可以使用現有的配置解決方案之一:
- Xdebug(免費,開源)
- Zend Studio/Debugger分析(商業)
- Zend Server Code Tracing(商業)
- xhprof(免費,開源)
像往常一樣,商業工具具有很好的圖形用戶界面和漂亮的圖片,但花費金錢,免費的是免費的,但您可能需要投入更多時間。
此外,PHP CGI二進制與-T
選項有一個基準模式,你很多嘗試運行php-cgi -T 100 yourscript.php
做一個窮人的基準。
0
請參閱SD PHP Profiler瞭解如何使用圖形方式向您顯示PHP應用程序花費時間的工具。
相關問題
- 1. 確定性退火代碼
- 2. 浮點限制代碼不能產生正確的結果
- 3. 我的PHP代碼不工作結果
- 4. 剖析php代碼的解釋結果
- 5. PHP的foreach代碼的性能速度
- 6. 獲取代碼中的綁定結果
- 7. php代碼(獲得json結果)
- 8. PHP Memcached擴展結果代碼
- 9. Kentico智能結果佈局代碼
- 10. 的功能正確性檢查自定義代碼:(ATC FUNCTIONAL_DB)
- 11. RemoteActor.select - 結果確定?
- 12. 確定System.Net.Mail.SmtpClient.Send結果
- 13. PHP代碼未能給出corrent結果最有可能的邏輯錯誤
- 14. 代碼結果的說明
- 15. 一段PHP代碼我不太確定
- 16. PHP的foreach代碼沒有產生效果結果
- 17. 正確地編碼和解碼json結果(php到js)
- 18. 在代碼性能
- 19. SQL代碼性能
- 20. 爲什麼Crypto ++中的AES代碼提供不同的性能結果?
- 21. PHP的代碼安全性
- 22. PHP代碼回聲不返回「0」,如果沒有結果
- 23. UnityContainer性能測試結果
- 24. IO結果。調整代碼
- 25. Lisp代碼意外結果
- 26. RxJavaCallAdapter和結果代碼
- 27. CLIPS代碼沒有結果
- 28. OpenMp代碼的性能
- 29. 包裝的性能代碼
- 30. 可能結合代碼覆蓋率結果(VC++)
不要掛在這樣的微觀優化上。每個PHP Web應用程序都應該通過操作碼緩存運行,這使得微型優化非常多餘。加載測試已完成的應用程序要好得多,因爲您可以看到時間實際正在進行的時間並專注於該時間 – Polsonby 2008-09-23 21:40:13