如何做好IIS7 的性能优化啊?
- 提问者网友:世勋超人
- 2021-05-07 13:25
- 五星知识达人网友:蕴藏春秋
- 2021-05-07 14:07
关于require,include的性能
测试数据:
有一个数组,一共3万条数据,1MB大小,我分成2种方法放数据来测试//sexinsex
1.array.php直接新建个空php文件,把数组放进去
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,写denyfromall,或者在根目录放.htaccess加个文件后缀的规则禁止都可以