2010-04-18 133 views
5

我目前正在爲個人項目開發一個PHP MVC框架。在我開發框架時,我有興趣通過實現不同的優化技術來看到任何顯着的性能。我已經實現了一個記錄mircotime的原生BenchMark類。PHP性能指標

問題是我沒有執行時間的參照系。我非常接近這個項目的初始階段,它有一個數據庫連接和一些查詢但沒有輸出(禁止一些調試文本和BenchMark日誌)。我目前的執行時間爲0.01917 seconds

我以爲這是較低的,但正如我之前所說,我沒有任何參照系。我明白在性能提升時需要考慮很多變量,但我希望能夠找到某種度量標準,例如:a)測量每秒請求示例的性能的技術和b)比較結果;在「標準」網絡服務器上如何執行「適度」大小的PHP應用程序。我感謝「適度」和「標準」是非常主觀的詞語,因此可能是特定應用程序的已知執行時間表(例如,StackOverFlow的執行時間)。

測量性能的其他技術除執行時間外還有其他什麼技術?

MVC Framework Performance Comparisom看着它談論的請求每秒(RPS)。這是如何計算的?我猜測用我當前的執行時間0.01917 seconds可以處理52個RPS (= 1/0.01917)。這似乎比圖表中引用的要低得多,特別是當你考慮我目前有限的功能時。

回答

1

要基準某個頁面,請使用ab。要對服務器上的頁面負載進行基準測試,請嘗試siege

但是......這兩者仍然大多是人爲測試。我親自添加一些額外的日誌。在網絡服務器(或代理,不管)

  • 慢查詢日誌記錄在數據庫中

    • 頁面加載時間每頁
    • 查詢次數記錄太多,如果可能的話,這樣,你就會知道你的頁面如何重;)
  • 0

    您可以使用Xdebug的分析代碼。但是你在開發過程中過早優化方式。只需調用microtime就可以減慢速度,因爲它必須向系統發出一個呼叫(在PHP引擎之外)。每個包含,對象創建,與另一個資源(即數據庫)的連接相對來說都會增加很多開銷。

    如果你設計你的系統是非常緩存友好的,那麼你不必執行代碼。例如,WordPress很慢。在體面的Web服務器上大約15頁/秒。它做了很多包含並運行了很多代碼。但是添加SuperCache插件並且性能提高10倍。它通過創建一個緩存文件並使用一些Apache規則來工作,所以PHP根本不需要運行。