【发布时间】:2017-12-07 14:50:17
【问题描述】:
最近我要重建一个旧项目。
我发现旧的来源太糟糕了,我决定重新构建所有项目。
我尝试重写一个模块进行测试。
最后我已经在 PHP5.6 环境中完成编码和运行此代码,并使用 xhprof 测试性能以与旧源进行比较。
但新代码的性能并没有明显提升。甚至砍掉...
我发现 Top 消耗的是 compose 的自动加载。
为什么?
OLD_SOURCE:
重量(墙上时间)1,056,607 µs
cpu(cpu时间)370,198 µs
mu(内存使用)6,342,688 bytes
NEW_SOURCE:
重量(墙上时间)1,333,805 µs
cpu(cpu时间)868,354 µs
mu(内存使用)3,668,944 bytes
如前所述。
在新源中
wallt时间到了。
cpu 时间增加。
内存使用率下降。
详细说明:
PDOStatement::执行
181,289 微秒
Composer\Autoload\includeFile@1
156,924 微秒
Composer\Autoload\includeFile
134,179 微秒
文件存在
104,139 µs
在新代码中,我使用了 MySQL PDO。
在旧代码中,使用 MySQLi。
我可以快速理解 MySQLi 到 PDO。
但是为什么
Composer\Autoload\includeFile@1
Composer\Autoload\includeFile
占用更多时间来影响代码??
我找到了 Composer\Autoload\ClassLoader::findFileWithExtension 中的 func file_exists
作曲家中的前 3/4 个问题函数......
【问题讨论】:
-
你能用php 7.2吗?另外,查看之前问题的答案:stackoverflow.com/questions/31103521/…stackoverflow.com/questions/39478418/…
-
我可以使用 7.2,因为兼容旧代码。我使用带有 guzzle 和 eloquent 插件的作曲家。
标签: php composer-php