1

很多天我都有这个疑问。在我写的每一个 PHP 代码中,我都会写很多注释,留下很多空格,并在部分和部分之间留下 4 到 5 个空行(为了让我清楚)

所有这些空格、注释、空行会使我的 PHP 代码运行缓慢吗?

个人经验非常感谢:)

4

4 回答 4

2

这实际上是 IO 和硬盘驱动器速度的问题。如果你的裸文件是 10KB 并且注释和换行符增加了 4KB,那么硬盘驱动器花在读取更多 KB 上的额外时间就是你需要进行基准测试的(顺便说一句,它可以忽略不计),甚至不值得你花时间。

如果您开始进行微优化,那么您将冒着使您的代码绝对难以阅读和维护的风险。

加快代码速度的最佳方法是在必要时重构代码,并且不要做像这个粗略的示例那样明显占用资源的愚蠢事情:

<?php

$arr = array(); // pretend it has 50,000 items

//GOOD IDEA: count the array once and reference that number
$arr_count = count($arr);
for($i=0; $i < $arr_count; $i++){
    echo $arr[$i];
}


//BAD IDEA: re-counting the array for every iteration
for($i=0; $i < count($arr); $i++){
    echo $arr[$i];
}

?>

同样,在使用完大型数组后取消设置它比等待垃圾收集器启动要好。例如:从数据库中提取数据并循环遍历它。完成后取消设置数据并继续编码。

于 2013-08-29T18:09:01.263 回答
2

运行代码时完全忽略注释和空格。一旦你完成并且代码正在做它的事情,你可以认为所有额外的东西都被完全抹去。

额外的空白和注释仅供您和其他编码人员更好地阅读和理解您的代码。事实上,如果你使用额外的空白和注释,程序员会因为你编写和提供糟糕的代码而对你生气!

于 2013-08-29T17:51:12.643 回答
1

考虑以下代码。

<?php
    $time = round(microtime(true) * 1000);
    for($i = 0; $i < 1000000; $i++) {
        /*


        */
    }
    echo (round(microtime(true) * 1000) - $time) . "<br/>";


    $time = round(microtime(true) * 1000);
    for($i = 0; $i < 1000000; $i++) {
    }
    echo (round(microtime(true) * 1000) - $time) . "<br/>";
?>

有时第一个更快,有时第二个更快。所以评论不影响速度。

于 2013-08-29T17:57:53.910 回答
0

不是真的,是一般脚本和编码的简单答案。
如果您不得不考虑在这里和那里获得几毫秒,并且删除评论是有影响的,A)您有太多评论,并且 B)您已经知道这一切并且正在执行基准测试等。

注释的数量通常与您拥有的代码量成正比。即一两行注释,用于加载 IF/ELSE,将 vars 设置为 POST 或 SESSIONS 等,以及 DB 查询等。由于 PHP 解析脚本的大部分时间是打开文件、访问内存、检查数以千计的事情包括缓存等,读取和执行代码,访问数据库等,忽略您的评论所花费的时间可能是 0.001%

您和可能的其他开发人员使用注释来理解代码。只要保持它们整洁,并尽量保持它们尽可能简短,同时保持简洁、真实和有用。

于 2013-08-29T18:05:22.380 回答