2009-04-24 52 views
1

我有一個緩慢運行的腳本,我在想我該如何計時並查看哪些修復提高了速度。有沒有某種PHP定時器?如何去測試我的PHP腳本的速度?

更新:以爲我應該澄清......運行緩慢的腳本是我的郵件列表腳本,它將電子郵件發送給列表中的每個人。所以我通過一系列的訂閱者循環發送一封電子郵件。這很慢,我認爲看看迭代通過數組需要多長時間會很有趣。所以我正在尋找一種快速簡單的方法來測試。

回答

1

您可以測量頁面的加載時間,並根據需要進行調整。

我喜歡像http://www.phpbench.com/這樣的網站,它告訴你更多關於php的基本需求。

使用Zend Framework編寫php的Offcourse實際上並沒有真正說出有關代碼的任何內容。你遵循Zend編碼標準嗎?

http://www.php.net/getrusage可能對您的計時問題有用。

祝你好運!

編輯:getrusage功能的額外鏈接(也在php.net頁面中進行了調整)。

編輯2:對於你的郵件列表,你可以檢查phpbench.com例如在循環之前的計數,這節省了一些時間。

你是如何發送郵件的?這可能是一個瓶頸。

祝你好運!

+0

我只提到了Zend Framework,以防有些內置的東西,我不知道 – Andrew 2009-04-24 10:38:40

1

我知道的最好的事情就是使用一個分析器。我選擇的分析器是Xdebug,它有一個內置的分析器,並將它安裝到您的PHP設置中非常簡單。一旦啓動並運行,它可以爲您提供各種調試和分析信息,並且可以通過令人驚歎的kCacheGrind tool可視化和報告堆棧並繪製您的應用程序流程圖)讀取Xdebug的輸出格式,如果您是快樂的Linux露營者。沒有這些工具,我會做什麼!?

另外,就Zend Framework而言,在速度方面存在一些缺陷,主要與不使用Zend_Cache類足夠多,或者可能應該使用Zend_Registry類的複雜類錯誤。

快樂剖析。

+0

這有點奇怪,這意味着ZF很快就會需要使用Zend_Cache。並且Zend_Registry不是解決複雜架構的解決方案。 – 2009-04-24 12:17:48

0

如何使用隊列?對我來說這似乎是一個好主意,因爲隨着列表的增長,有一天你會達到郵件服務器的限制。這個隊列的東西有一個popular implementation in PEAR,但基本上所有你需要的是一個cron作業和一個數據庫表。

我在ZF中構建了類似的東西,所以我很想看看會發生什麼!