社区
基础编程
帖子详情
PHP5的自动加载的效率问题
超级大笨狼
2012-04-24 11:15:07
自动加载是当调用了一个类。但是没有显式的require时会自动去目录里找对应的PHP类文件。
请问在我多个FUNCTION或者多个页面中都有用到这个类时是不是每次都会去硬盘上找这一个文件。那这样是不是就加大了硬盘IO的开销?
如果显式require_once是不是就是就一次IO的开销。不知大家开发项目时如何处理?
...全文
177
12
打赏
收藏
PHP5的自动加载的效率问题
自动加载是当调用了一个类。但是没有显式的require时会自动去目录里找对应的PHP类文件。 请问在我多个FUNCTION或者多个页面中都有用到这个类时是不是每次都会去硬盘上找这一个文件。那这样是不是就加大了硬盘IO的开销? 如果显式require_once是不是就是就一次IO的开销。不知大家开发项目时如何处理?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
黄袍披身
2012-04-25
打赏
举报
回复
[Quote=引用 8 楼 的回复:]
你这同学...说话说一半...
发现最近csdn删贴特勤,你发言文雅多了....当然,后果是csdn的吸引力大减.....
引用 7 楼 的回复:
引用 6 楼 的回复:
我觉得2楼说的是对的
引用 5 楼 的回复:
在我们了解了autoload实现的原理后,我们知道autoload机制本身并不是影响系统效率的原因,甚至它还有可能进步系统效率,由于它……
[/Quote]
快饿死了,没有多余的细胞充分联想...嘿嘿.你没看连苍老师都不准上电视了么
黄袍披身
2012-04-25
打赏
举报
回复
[Quote=引用 11 楼 的回复:]
没事, 电视上的她,对我没有吸引力....
靠,我是来谈技术问题滴....这个autoload还是应该用的,
俺们以前一个应用里,那个require_once乱得啊....比苍老师乱多了....
引用 9 楼 的回复:
快饿死了,没有多余的细胞充分联想...嘿嘿.你没看连苍老师都不准上电视了么
[/Quote]
好吧.autoload...下个项目开始.
哈哈哈...
helloyou0
2012-04-25
打赏
举报
回复
没事, 电视上的她,对我没有吸引力....
靠,我是来谈技术问题滴....这个autoload还是应该用的,
俺们以前一个应用里,那个require_once乱得啊....比苍老师乱多了....
[Quote=引用 9 楼 的回复:]
快饿死了,没有多余的细胞充分联想...嘿嘿.你没看连苍老师都不准上电视了么
[/Quote]
helloDongXiu
2012-04-24
打赏
举报
回复
参考文档:
http://www.cnblogs.com/chenzrm/archive/2011/08/11/2134325.html
helloDongXiu
2012-04-24
打赏
举报
回复
autoload机制可以使得PHP程序有可能在使用类时才自动包含类文件,而不是一开始就将所有的类文件include进来,这种机制也称为lazy loading。
通常PHP5在使用一个类时,假如发现这个类没有加载,就会自动运行__autoload()函数,在这个函数中我们可以加载需要使用的类。
使用autoload机制时,很多人的第一反应就是使用autoload会降低系统效率,甚至有人干脆提议为了效率不要使用autoload。在我们了解了autoload实现的原理后,我们知道autoload机制本身并不是影响系统效率的原因,甚至它还有可能进步系统效率,由于它不会将不需要的类加载到系统中()。
那么为什么很多人都有一个使用autoload会降低系统效率的印象呢?实际上,影响autoload机制效率本身恰正是用户设计的自动加载函数。假如它不能高效的将类名与实际的磁盘文件(留意,这里指实际的磁盘文件,而不仅仅是文件名)对应起来,系统将不得不做大量的文件是否存在(需要在每个include path中包含的路径中往寻找)的判定,而判定文件是否存在需要做磁盘I/O操纵,众所周知磁盘I/O操纵的效率很低,因此这才是使得autoload机制效率降低的罪魁罪魁!
因此,我们在系统设计时,需要定义一套清楚的将类名与实际磁盘文件映射的机制。这个规则越简单越明确,autoload机制的效率就越高。
结论:autoload机制并不是自然的效率低下,只有滥用autoload,设计不好的自动装载函数才会导致其效率的降低。
helloyou0
2012-04-24
打赏
举报
回复
你这同学...说话说一半...
发现最近csdn删贴特勤,你发言文雅多了....当然,后果是csdn的吸引力大减.....
[Quote=引用 7 楼 的回复:]
引用 6 楼 的回复:
我觉得2楼说的是对的
引用 5 楼 的回复:
在我们了解了autoload实现的原理后,我们知道autoload机制本身并不是影响系统效率的原因,甚至它还有可能进步系统效率,由于它不会将不需要的类加载到系统中()。
这是相对的.电脑在某些地方再聪明也不能聪明过人.
对的,因为后面他也说出了我说的相对的是什么,所以如果这个人不聪明那么他……
[/Quote]
xuzuning
2012-04-24
打赏
举报
回复
是的,多个页面中都有用到这个类时是不是每次都会去硬盘上找这一个文件
同样的,显式require_once时同样是每次都会去硬盘上找这一个文件
于是就有了一些扩展库,用来缓存这些频繁加载的文件
黄袍披身
2012-04-24
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
我觉得2楼说的是对的
引用 5 楼 的回复:
在我们了解了autoload实现的原理后,我们知道autoload机制本身并不是影响系统效率的原因,甚至它还有可能进步系统效率,由于它不会将不需要的类加载到系统中()。
这是相对的.电脑在某些地方再聪明也不能聪明过人.
[/Quote]
对的,因为后面他也说出了我说的相对的是什么,所以如果这个人不聪明那么他的autoload就会效率低下,这个时候还不如人肉include.
那么为什么很多人都有一个使用autoload会降低系统效率的印象呢?实际上,影响autoload机制效率本身恰正是用户设计的自动加载函数。假如它不能高效的将类名与实际的磁盘文件(留意,这里指实际的磁盘文件,而不仅仅是文件名)对应起来,系统将不得不做大量的文件是否存在(需要在每个include path中包含的路径中往寻找)的判定,而判定文件是否存在需要做磁盘I/O操纵,众所周知磁盘I/O操纵的效率很低,因此这才是使得autoload机制效率降低的罪魁罪魁!
helloyou0
2012-04-24
打赏
举报
回复
我觉得2楼说的是对的
[Quote=引用 5 楼 的回复:]
在我们了解了autoload实现的原理后,我们知道autoload机制本身并不是影响系统效率的原因,甚至它还有可能进步系统效率,由于它不会将不需要的类加载到系统中()。
这是相对的.电脑在某些地方再聪明也不能聪明过人.
[/Quote]
黄袍披身
2012-04-24
打赏
举报
回复
在我们了解了autoload实现的原理后,我们知道autoload机制本身并不是影响系统效率的原因,甚至它还有可能进步系统效率,由于它不会将不需要的类加载到系统中()。
这是相对的.电脑在某些地方再聪明也不能聪明过人.
coder
2012-04-24
打赏
举报
回复
任何语言都有这个问题,不足为奇
什么是
PHP
的
自动
加载
(autoload)?如何实现?
PHP
自动
加载
机制通过动态解析类名与文件路径,显著提升了代码的可维护性和扩展性。从传统的到现代的,开发者需根据项目需求选择合适方案。结合Composer和PSR标准,能够高效管理大型项目的依赖关系,是现代
PHP
开发的...
PHP
的类
自动
加载
机制
PHP
的类
自动
加载
机制 在
PHP
开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来。这个在小规模开发的时候,没什么大
问题
。但在大型的开发项目中,这么...
Think
PHP
5源码阅读-类的
自动
加载
register与autoload的实现
PHP
快速入门与实战Think
PHP
是国内最流行的一款
PHP
框架,是国人自主研发的框架,起源于2006年,经过了十几年...今天是Think
PHP
5源码第一讲,关于类的
自动
加载
,看看源码底层是怎么实现的。怕迷路的同学,先给个关注吧。
深入理解Composer
自动
加载
机制
Composer是
PHP
生态系统中最常用的依赖管理工具之一,它不仅能够帮助开发者管理项目的依赖关系,还能够
自动
加载
这些依赖项。
自动
加载
机制是Composer的核心功能之一,通过
自动
加载
,开发者可以在运行时按需
加载
所需的...
PHP
自动
加载
功能原理解析
这篇文章是对
PHP
自动
加载
功能的一个总结,内容涉及
PHP
的
自动
加载
功能、
PHP
的命名空间、
PHP
的PSR0与PSR4标准等内容。 一、
PHP
自动
加载
功能
PHP
自动
加载
功能的由来 在
PHP
开发过程中,如果希望从外部引入一...
基础编程
21,893
社区成员
140,347
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章