TL; DR;将realpath_cache_size设置为值> 1000
编辑:我刚看到这个答案:https://stackoverflow.com/a/17914570/980547
当我在php.ini(!)中设置realpath_cache_size = 4096k时,它在Windows上减少了4页的页面生成时间
老答案:
所以,我用webgrind做了两个比较:
在Windows(快速计算机)上,名为app_dev.php:
因此,您可以看到Web工具栏显示764ms时间生成(由于xDebug和分析而增加,但仍然相关).
Webgrind显示:
> 651调用file_exists()的时间为232ms(这很多!)
> 603次调用filemtime()(211ms)
> 230次调用UniversalClassLoader-> loadClass()(119ms)
> 230次调用UniversalClassLoader-> findFile()(38ms)
在linux(慢速计算机)上,app_dev.php:
总生成时间为298ms(比Windows上少两倍).
> 237次调用UniversalClassLoader-> findFile()(36ms =>少4次)
> 237次调用UniversalClassLoader-> loadClass()(20ms =>少2次)
> 623调用file_exists()(仅4ms !!!)
> 605调用filemtime()(仅4ms !!!)
问题似乎是file_exists()和filemtime(),它们在Windows上比在Linux上慢得多.在Windows上,PHP正在寻找具有file_exists,filemtime,loadClass或findFile的文件,这些文件占60%.这是一个已知的问题吗?
编辑:所以问题仅适用于开发环境,在生产中没有文件存在完成,因为所有内容都被缓存.