PHP性能優化的技巧

  關於require, include的性能
  測試數據:
  有一個數組 , 一共3萬條數據, 1MB大小, 我分成2種方法放數據來測試//sexinsex
  1. array.php 直接新建個空php文件, 把數組放進去 <?php $array = array(…3萬數組…); ?>
  2. array.txt 把數組serialize後保存
  測試程序:
  復制內容到剪貼板 代碼:for ($i=0 ;$i<100; $i++) {
    require(dirname(__FILE__)./array.php);
}
  結果:
  頁面執行時間: 12.8904 秒
  頁面執行時間: 12.8863 秒
  頁面執行時間: 12.8942 秒
  頁面執行時間: 12.8992 秒
  頁面執行時間: 12.9013 秒
  require和include速度一樣,結果就不寫瞭
  測試程序:
  復制內容97gan到剪貼板 代碼:for ($i=0 ;$i<100; $i++) {
    $all = unserialize(file_get_contents(dirname(__FILE__)./array.txt));
}
  結果:
  頁面執行時間: 3.7988 秒
  頁面執行時間: 3.8125 秒
  頁面執行時間: 3.8118 秒
  頁面執行時間: 3.8062 秒
  頁面執行時間: 3.8311 秒
  因此,引申出2點結論此教程來源於97xxoo教程網(www.97xxoo.org)
查看完整的教程請點:http://www.97xxoo.org/article/1/2008/20081124428.shtml
  1. 在寫一些類或函數的時候, 大數組不要放在程序裡, 應該用file_get_contents方法讀取
  2. 做緩存的方式, file_get_contents再unserialize要比require和include快, 比如sablog和discuz的緩存方式就有問題, 它們是把數據庫裡的內容, 程序讀出來再存成可以require的數組, 具體程序我沒再看瞭, var_export就可以搞定, 但實現起來, serialize要方便直觀容易得多
  3. 關於安全性, php直接require的方式, 雖然可以在頭頂上加上 defined()來判斷
  但file_get_contents方法安全性可以這樣做, 把重要數據都放在一個目錄裡, 如/data/然後在/data/裡放個.htaccess, 寫deny from all, 或者在根目錄放.htaccess加個文件後綴的規則禁止都可以
  小技巧, just so so…..

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *