Apache-2.2
為什麼本地主機上的響應這麼慢?
我正在為我的一個朋友開發一個很小的 PHP 項目,並且我有一個用於本地開發的 WAMP 環境設置。我記得我的本地 Apache 2.2 立即響應的日子。唉,現在我從一個漫長的假期回來了,我發現反應
localhost
慢得令人痛苦。提供一個 300B 的 HTML 頁面大約需要 5 秒。
當我查看任務管理器時,
httpd
程序 (2) 正在使用 0% 的 CPU,並且我的電腦總體上沒有處於負載狀態(0-2% 的 CPU 使用率)。為什麼延遲這麼高?有沒有我可以調整的 Apache 設置,以使其執行緒以更高的優先級執行?似乎它只是在發出響應之前就睡著了。
對我來說,將
ServerName
屬性設置為httpd.conf
固定延遲(最壞的情況下最長可達 10 秒):# ServerName gives the name and port that the server uses to identify itself. # This can often be determined automatically, but we recommend you specify # it explicitly to prevent problems during startup. # # If your host doesn't have a registered DNS name, enter its IP address here. ServerName 127.0.0.1:80
我有同樣的問題。
在 hosts 文件中將 localhost 重定向設置為 127.0.0.1 沒有幫助。優化 MySQL 伺服器沒有幫助(InnoDB -> MyISAM,在 my.ini 中更改了許多與記憶體相關的指令)。
然後我使用 webgrind 並將問題縮小到“new PDO(…)”呼叫。改變
mysql:host=localhost;dbname=dp-ui;charset=utf8
到
mysql:host=127.0.0.1;dbname=dp-ui;charset=utf8
在 dsn for PDO 中完全解決了這個問題!頁面載入時間從 3000 多毫秒變為 16 毫秒。
但是我真的很困惑為什麼主機文件中的“127.0.0.1 localhost”行沒有幫助。