请教include和require的问题

xingzh 2006-11-14 03:06:02
使用require将几个类文件包含到程序中,使用pear的timer进行测试,发现包含这几个类文件的过程占用了程序执行时间的50%(100多毫秒),采用include函数也是一样的效果,这是怎么回事?这对程序执行的性能影响太大了,如何能够改善?望高手能够指点迷津。非常感谢。
...全文
333 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingzh 2006-11-15
  • 打赏
  • 举报
回复
感谢各位的指点,因为程序里使用了ADODB,发现加载这个组件的时间最长了。
懒得去死 2006-11-15
  • 打赏
  • 举报
回复
楼上好办法
ashchen 2006-11-15
  • 打赏
  • 举报
回复
对的
if(...) include 'a.php'
else include 'b.php'

这类写法的优点是php在执行本页面时不会扫描分支里的文件,也不会包含进来,只有当运行的时候再去包含和解析
zeroleonhart 2006-11-14
  • 打赏
  • 举报
回复
在真正用到的地方使用require或include,不要直接包含
比如if语句的分支中。
再来就是细化类的功能。。
ashchen 2006-11-14
  • 打赏
  • 举报
回复
不要太迷信测试结果!
Gdj 2006-11-14
  • 打赏
  • 举报
回复
坚持只能升级服务器或者减少include的文件大小。

从他提供的数值来判断,加载文件就占了总执行时间的一半,那实际执行了的代码达不到已加载的10%。如果带有数据库操作,那更可能不到1%,极可能他加载了200k的文件只调用了其中一个函数。减少文件大小的可行性很高。

将include的文件放在ramdisk在win下不知道怎么样,但经测试在linux下几乎对提速没有任何帮助。linux会自动将常用的文件全部缓存进内存里。只要你还有内存就不存在加载文件费时的问题,费时的实际上是php的预处理。如果测试出的结果是加载费时(include的时间和file_get_content时间相差不大),那升级服务器,加内存才会有明显效果。强行放入内存只会让程序更慢(这个文件没加载进内存说明用的没有别的文件多,为了缓存一个用不多的文件强行将用得多的踢出内存结果当然是更慢)。

zend有帮助,如果你还没装就装上吧。
xuzuning 2006-11-14
  • 打赏
  • 举报
回复
没有太好的办法,程序文件总是要加载的。不然运行什么?
1、将include的文件放在ramdisk中,可减少读取的时间
2、用zend编译php文件,可减少php预编译的时间
懒得去死 2006-11-14
  • 打赏
  • 举报
回复
include_once或者
require_once
这样只包含一次
Gdj 2006-11-14
  • 打赏
  • 举报
回复
升级服务器或者减少include的文件大小。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧