2

随着我的网络项目越来越大,我想知道 PHP 是否解释了这段代码,

<?php
    function helloWorldOutput($helloworldVariable) {
        echo 'Hello World' . $helloworldVariable;
    }

    helloWorldOutput("I am PHP");
?>

比这慢:

<?php 
    function a($b) { echo 'Hello World'+$b; }
    a("I am PHP");
?>

因为 PHP 是一种没有编译二进制文件的解释性语言,我认为第二个示例应该更快一些。这是真的吗,是否有任何一种预解释机制可以在 PHP 中缓存更快的代码版本?

4

3 回答 3

3

是的,将较大的代码解析/编译为字节码需要一些额外的时间。时间通常可以忽略不计,因此您可能不应该担心它,因为有更好的方法来处理编译所花费的时间。

为了获得更多的性能提升,你会做的是使用PHP 加速器,例如 APC,它将缓存已编译的代码并消除整个编译步骤,除了第一次访问页面时。

使用加速器将消除任何可能的缺点,让您的代码保持注释和清晰,并让您专注于功能而不是缩短代码。

于 2013-02-03T10:32:12.780 回答
1

解析第一个版本和调用它需要更长的时间。因此,如果您决定使用第一个版本并调用一个名称很多次的函数,因为解析第二个版本会稍微快一些。在实际的函数执行中 - 没有两个函数会同样快。

我的建议仍然是永远不要尝试进行这种微优化。性能只会略微提高,可读性会受到很大影响。

于 2013-02-03T10:27:58.210 回答
0

第一个示例的字符较少,这意味着它的解析很困难,php 在内部运行某种字节码,因此执行速度不会有太大差异。

最慢的可能是从磁盘读取文件,而短代码将轻松赢得这场比赛。

于 2013-02-03T10:31:52.983 回答