производительность php / apache - PullRequest
0 голосов
/ 08 ноября 2011

Какой из них лучше и почему?Может кто-нибудь, пожалуйста, объясните мне это?Большое спасибо.

//Example 1
if($var == 1)
{
    echo "text text text..."; //Note: large text like 1MB 
}

или

//Example 2
if($var == 1)
{
    echo file_get_contents("path/to/file"); //content of this file same as echo text above
}

Ответы [ 2 ]

0 голосов
/ 08 ноября 2011

производительность php / apache

Что в этом вопросе относится к apache?

Какой из них лучше

В каком отношении? Первый вариант - очень грязная конструкция, и он будет работать плохо, но есть лучшие способы включить объемный контент в скрипт, не отображая его в переменное пространство PHP, например,

if($var != 1)
{
   // do something else
   exit;
}
?>
text text text... <!-- Note: large text like 1MB -->

С точки зрения загрузки обработки, минимизация объема данных, анализируемых PHP (т. Е. Всего файла), поможет уменьшить объем данных, обрабатываемых PHP (т. Е. Содержимое в <? Php ...?>).

Но еще один важный вопрос - как вы управляете контентом - встраивание больших объемов данных в PHP не является правильным решением - редактирование кода - это другая задача / ответственность, отличная от редактирования контента HTML.

.. а если вы просто говорите о производительности, почему бы вам не измерить ее самостоятельно?

0 голосов
/ 08 ноября 2011

Если вы обслуживаете целый мегабайт статического контента, определенно позвольте Apache сделать это - он может использовать системный вызов sendfile(2), чтобы избежать двойных копий, не заставляет PHP повторно разбирать гигантскую строкуи еще раз, и еще лучше, делает ваши файлы PHP допустимыми для редактирования.(Конечно, мегабайт не такой такой большой в наши дни, но отделение контента от презентации - всегда стоящая цель.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...