我在PHP 7上有一个php系统,可以加载大约40个类来工作。它需要大约180ms来显示一个网页,所以我开始看看我是否可以通过优化代码节省一些时间。我无法使用缓存,因为页面上显示的数据取决于登录的用户并且非常个性化。
我做了一些替换,比如使用require而不是require_once,我替换了循环中的函数,如
for($i = 0; $i < $this->GetItemCount(); $i++)
使用:
$len = $this->GetItemCount();
for($i = 0; $i < $nLen; $i++)
但是 - 令我惊讶的是 - 这只会让我的成绩提高4-5毫秒。
然后我用microtime()做了一些实验,看看时间消耗在哪里。看起来只需要包含和解析所有类大约需要120ms - 然后完成的工作只消耗大约60ms。
我认为包含可能是问题因此我将所有代码放在一个大文件中 - 但这并没有多大帮助。
因此,即使使用PHP 7,解析/编译似乎仍然非常慢。我看看有哪些可能性来预编译代码以获得更好的结果,但似乎只有像APC或OPCache这样的解决方案有权访问服务器时工作。我主要使用共享主机,所以问题是:是否有可能&#34;编译&#34; php到字节码可以更快地处理?我知道共享主机很棘手,因为编译后的代码无法存储在内存中,但我不明白为什么似乎没有编译器编译php -file到一个字节码文件,可以在更短的时间内读取,然后一次又一次地进行所有解析。