2012-04-21 53 views
1

在本地食品銀行的管理員應用程序中,我構建了一個PHP腳本來從MySQL數據庫生成一組每月報告統計信息。看起來,如果腳本沒有運行一段不確定的時間,則需要幾秒鐘的時間才能運行。一旦運行,腳本的後續運行將花費幾分之一秒。我試圖找出造成漫長第一輪運行的因素以及我是否有任何控制權。我的發展體系和食品銀行的主機之間的行爲是可比較的,所以它不僅僅是一個本地現象。腳本處理時間的第一次運行

我已經嘗試過「清空表」和「重置查詢緩存」,但我無法重現長期運行。關閉並重新啓動MySQL服務器也是如此(只有在開發系統上纔有可能)使運行時間更長。

我可以在哪裏看?

謝謝。

+0

你需要給我們更多的工作,現在我們所能做的只是隨機猜測 – Jasper 2012-04-21 13:57:22

+1

你還必須考慮OS文件系統緩存和虛擬內存系統。 PHP文件將在第一次從光盤讀取,但在後續運行時從文件系統緩存中讀取。 PHP引擎也將被讀入內存,並將從那裏調用,而不是從光盤加載。 – GordonM 2012-04-21 14:00:41

+0

我可以看到磁盤訪問如何成爲cli的一個因素。它無法解釋PHP用於獲取初始和後續時間的遠程主機的行爲。 – geoB 2012-04-21 14:20:14

回答

1

在這種情況下,我的第一個停靠港是通過分析腳本來了解花費的時間。你說你可以在本地複製問題。在這種情況下,給自己一個探查器(xDebugZend Debugger既可以配置腳本,也可以配置其他腳本)並對腳本進行配置以查看時間。

+0

一個有趣的概念 - 但我不清楚xDebug將如何幫助我專注於第一次運行處理時間。任何參考,我可以閱讀這個? – geoB 2012-04-21 14:20:39

+0

@geoB請參閱xDebug的鏈接。它解釋瞭如何啓動和運行分析。它的輸出應該告訴你哪些消耗最多的時間,並幫助你研究如何改進它。 – liquorvicar 2012-04-21 14:25:15

+0

Doh!我在上面。我預計在我學到任何有用的東西之前需要幾天的時間。將報告調查結果。日Thnx。 g – geoB 2012-04-21 15:16:09

相關問題