写个简单的php,连接mysql数据库查一行记录并打印,用ab做压力测试,每秒可以完成800多次.
随便include_once一个文件,文件大小为5K,里面全是函数定义,效率马上降低为原来的1/3,变成每秒240次.太郁闷了.
是否PHP每次include都会到磁盘上读一次文件,文件io损耗简直比mysql查询还大.
有没有什么办法提高效率?谢谢!
随便include_once一个文件,文件大小为5K,里面全是函数定义,效率马上降低为原来的1/3,变成每秒240次.太郁闷了.
是否PHP每次include都会到磁盘上读一次文件,文件io损耗简直比mysql查询还大.
有没有什么办法提高效率?谢谢!
除非将所有代码写在一个脚本里,否则这几个文件都是要include的.把这些文件都include之后,即使不走业务流, 服务器的tps也只有190左右.
我感觉非常的意外.
http://www.raditha.com/wiki/Readfile_vs_include
那么,在使用公共代码,必须include的场合下,怎么办呢
难道把所有的代码都写到一个脚本里才是php的好做法?面向对象,代码重用怎么办呢
楼上的试过吗? 做过测试? 效率有很大提高? 怀疑中...
只是用其他方法避开include和require的使用,那么其所产生的低效率问题自然也就不存在。我的建议通常也就提供个参考思路,楼主不妨一试。-----我通常更多从解决方案入手,而不是从细节入手,因为技术不好,咳咳~~
include 是必要的
你可把include的文件放在ram盘中来中和矛盾
这个所谓的效率问题,不如说是php本身的问题和解释语言的效率问题.用缓存和编译肯定会有改善,php里本身也有这方面的解决方案,zend和apc都是,你不如试用一下
include_once的情况完全可以在写的时候加行注解。替换的时候以注解为标识,根据注解的不同来替换include_once。未注解的则替换为空。----
或者,尽量少用_once。有用到的时候可以少量采取上面的方法。虽然稍微麻烦
真为效率考虑的话,还是可行的。
除此之外,小文件的include,以及动态include确实是必要的