關於網頁最佳化的評分,請參考這篇文章:
insoler網站Mac mini Intel Core i7 2.6GHz伺服器主機網頁PageSpeed效能測試
影響網頁開啟速度有許多因素,這些因素都可能會影響網頁的開啟速度:
要分析自己的網站是否最佳化,或是網頁的開啟速度,其實也可以不需要安裝任何外掛程式,只要使用類似GTmetrix的網站,就可以看到從其他地區(GTmetrix是加拿大)開啟網頁的速度(會記錄開啟網頁的時間軸):
只要輸入想要分析的完整網址,全世界的任何網站均可,並沒有限定必須是自己的網站,你也可以分析Apple網站、MSN網站、Facebook網站等。
你可以看到insoler網站在沒有使用Zend OPcache快取的時候,在Fully Loaded Time完全載入網頁的時間是:7.1s秒!會需要花費7秒的主要原因是因為insoler首頁包含了許多照片檔案、圖檔,以及user看不到的JavaScript檔案等。
雖然瀏覽器會快取insoler網站上的圖片、JavaScript檔案等,第二次以後再瀏覽網頁,就不需要花5-7秒的等待時間,但是第一次開啟的速度要花7秒左右,確實是比較慢了一些。
加裝PHP的加裝Zend OPcache快取模組以後,重新測試insoler網頁,得到的Fully Loaded Time完全載入網頁的時間是:5.4s秒!竟然進步了將近2秒!
再重新測試一次,Fully Loaded Time完全載入網頁的時間是:4.9s秒!這個數字已經比沒有使用Zend OPcache快取的時候進步2秒多!可說是有很大的改善!
由於GTmetrix是位於加拿大的網站,從加拿大到insoler網站,除了要經過國際海底電纜,可能還必須經過幾個國家的IPS與路由器,為了測試從加拿大開啟insoler網站需要多少時間,我做了一個最簡單的hello.htm的純文字網頁:
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<p>Hello insoler</p>
</body>
</html>
再重新測試一次,得到Fully Loaded Time完全載入網頁的時間是:1.7s秒!
那麼,換成PHP產生的動態純文字網頁呢?網頁的開啟速度會變的比較慢嗎?
<? php
echo "hello insoler";
再重新測試一次,得到Fully Loaded Time完全載入網頁的時間是:1.6s秒!我覺的測試的誤差在0.5秒以內,都算是伺服器電腦主機忙碌、網路上的延遲(可能是路由器忙碌,或是網路流量很大,網路封包擁塞),並不是真的PHP的動態純文字網頁比HTML的靜態純文字網頁的開啟速度更快!
點選Waterfall就可以看到載入hello.php網頁的時間軸。你可以看到其實是花了大約1.3秒在等待連接insoler伺服器主機,而不是insoler伺服器主機花1.6秒的時間在開啟最簡單的純文字網頁。
目前是在PHP 5.5.38加裝Zend OPcache快取模組(這是去年使用Homebrew安裝的模組,現在已經無法再使用Homebrew安裝了),如果你使用的是最新的PHP 7.2或是PHP 7.3,同樣需要加裝Zend OPcache快取模組,並做好相關的設定,才能達到提升網頁開啟速度的目的。