程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP性能優化的技巧

PHP性能優化的技巧

編輯:關於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.....

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved