使用PHP Doc评论和常规评论会有开销吗?

Jas*_*vis 7 php comments micro-optimization

我读到当PHP lexer解析php并遇到doccomment时,它将该注释的内容存储为元数据.所以我认为与使用非doccomment格式的常规注释相比,这可能会有轻微的开销?

定期评论......

<?php

/*
some text
/*
// more comments

?>
Run Code Online (Sandbox Code Playgroud)

doccomment ...

<?php
/**
 * @author Kenneth Davis
 * @copyright 2011
 * @filename Exception.class.php
*/
?>
Run Code Online (Sandbox Code Playgroud)

Ada*_*ner 4

正如其他人提到的,差异很小,因此并不重要。但要回答你的问题,运行时间是有区别的。为了测试这一点,我生成了两个 php 文件,每个文件都有 50000 个类,每个文件的大小正好为 4288896 字节。

这是我用于文档块版本的模板:

/**
 * My Docblock
 */
class MyClass%s {}
Run Code Online (Sandbox Code Playgroud)

这是没有真正文档块的版本(开头没有两个 *,ReflectionClass::getDocComment()没有找到注释):

/*-
 * My Docblock
 */
class MyClass%s {}
Run Code Online (Sandbox Code Playgroud)

生成 php 文件的完整脚本在这里:https ://gist.github.com/1268179

为了看到任何明显的时间差异,我必须通过 php 运行每个10 次,如下所示:

time yes docblock.php | head -n 10 | xargs -n 1 php
Run Code Online (Sandbox Code Playgroud)

结果如下:

与文档块:

xargs -n 1 php  2.22s user 0.63s system 99% cpu 2.873 total
Run Code Online (Sandbox Code Playgroud)

没有文档块:

xargs -n 1 php  2.16s user 0.63s system 99% cpu 2.813 total
Run Code Online (Sandbox Code Playgroud)

运行几次,对于无文档块版本来说,似乎产生了一致的更快(几乎)时间。

总而言之,php 跟踪的每个文档块大约需要 0.00012 毫秒(如果我在那里进行数学计算的话)。

  • 但它是 120 *百万*飞秒! (2认同)