我有一個緩慢運行的腳本,我在想我該如何計時並查看哪些修復提高了速度。有沒有某種PHP定時器?如何去測試我的PHP腳本的速度?
更新:以爲我應該澄清......運行緩慢的腳本是我的郵件列表腳本,它將電子郵件發送給列表中的每個人。所以我通過一系列的訂閱者循環發送一封電子郵件。這很慢,我認爲看看迭代通過數組需要多長時間會很有趣。所以我正在尋找一種快速簡單的方法來測試。
我有一個緩慢運行的腳本,我在想我該如何計時並查看哪些修復提高了速度。有沒有某種PHP定時器?如何去測試我的PHP腳本的速度?
更新:以爲我應該澄清......運行緩慢的腳本是我的郵件列表腳本,它將電子郵件發送給列表中的每個人。所以我通過一系列的訂閱者循環發送一封電子郵件。這很慢,我認爲看看迭代通過數組需要多長時間會很有趣。所以我正在尋找一種快速簡單的方法來測試。
最後我用一個定時器類,我發現類似這樣的:http://forum.codecall.net/php-tutorials/4254-php-timer-class.html
我剛開始在我的循環開始時的計時器,並記錄時間在每次迭代結束。平均而言,發現每封電子郵件需要3到4秒鐘!每個電子郵件爆炸五分鐘是有點太多。重構時間...
您可以測量頁面的加載時間,並根據需要進行調整。
我喜歡像http://www.phpbench.com/這樣的網站,它告訴你更多關於php的基本需求。
使用Zend Framework編寫php的Offcourse實際上並沒有真正說出有關代碼的任何內容。你遵循Zend編碼標準嗎?
http://www.php.net/getrusage可能對您的計時問題有用。
祝你好運!
編輯:getrusage功能的額外鏈接(也在php.net頁面中進行了調整)。
編輯2:對於你的郵件列表,你可以檢查phpbench.com例如在循環之前的計數,這節省了一些時間。
你是如何發送郵件的?這可能是一個瓶頸。
祝你好運!
我知道的最好的事情就是使用一個分析器。我選擇的分析器是Xdebug,它有一個內置的分析器,並將它安裝到您的PHP設置中非常簡單。一旦啓動並運行,它可以爲您提供各種調試和分析信息,並且可以通過令人驚歎的kCacheGrind tool(可視化和報告堆棧並繪製您的應用程序流程圖)讀取Xdebug的輸出格式,如果您是快樂的Linux露營者。沒有這些工具,我會做什麼!?
另外,就Zend Framework而言,在速度方面存在一些缺陷,主要與不使用Zend_Cache類足夠多,或者可能應該使用Zend_Registry類的複雜類錯誤。
快樂剖析。
這有點奇怪,這意味着ZF很快就會需要使用Zend_Cache。並且Zend_Registry不是解決複雜架構的解決方案。 – 2009-04-24 12:17:48
如何使用隊列?對我來說這似乎是一個好主意,因爲隨着列表的增長,有一天你會達到郵件服務器的限制。這個隊列的東西有一個popular implementation in PEAR,但基本上所有你需要的是一個cron作業和一個數據庫表。
我在ZF中構建了類似的東西,所以我很想看看會發生什麼!
我只提到了Zend Framework,以防有些內置的東西,我不知道 – Andrew 2009-04-24 10:38:40