Да, есть!
Хотя это может не иметь значения для процессора, оно увеличивает использование памяти, так как доступно из ReflectionClass::getDocComment()
вызова, как указано в ответе @Phil.
Начиная с версии php 5.5, с opcache, есть даже возможность отключить документы:
opcache.save_comments = false;
Это может уменьшить использование памяти, но следует предупредить , так как это может сломать некоторые библиотеки, согласно документам php:
Если этот параметр отключен, все комментарии к документации будут отбрасываться из кэша кода операции, чтобы уменьшить размер оптимизированного кода. Отключение этой директивы конфигурации может нарушить работу приложений и платформ, которые полагаются на анализ комментариев для аннотаций, включая Doctrine, Zend Framework 2 и PHPUnit.
Я провел такой же тест, как и в Ответ Адама Вагнера :
С докблоком:
/**
* My Docblock
*/
class MyClass%s {}
MEM: 26,75 МБ
ПИК: 29 МБ
С //
комментариями:
///
// My Docblock
///
class MyClass%s {}
MEM: 25,25 МБ
ПИК: 27,5 МБ
Bu с результатами комментариев в формате 2.4kb более значимы:
MEM: 63 МБ
Пик: 101,25 МБ
против
MEM: 25,25 МБ
Пик: 63,5 МБ
Генератор тестовых скриптов:
<?php
$template = <<<'T'
/**
* My Docblock
*/
class MyClass%s {}
T;
$template2 = <<<'T'
///
// My Docblock
///
class MyClass%s {}
T;
$header = <<<'T'
function formatBytes($bytes, $precision = 2) {
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
$pow = min($pow, count($units) - 1);
$bytes /= pow(1024, $pow);
return round($bytes, $precision) . ' ' . $units[$pow];
}
function show()
{
echo 'MEM: ' . formatBytes(memory_get_usage(true)) . PHP_EOL;
echo 'PEAK: ' . formatBytes(memory_get_peak_usage(true)) . PHP_EOL;
}
T;
$one = "<?php\n$header";
$two = "<?php\n$header";
for($i = 0;$i < 50000;$i++)
{
$one .= sprintf($template, $i);
$two .= sprintf($template2, $i);
}
$one .= "show();";
$two .= "show();";
file_put_contents('one.php', $one);
file_put_contents('two.php', $two);