Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Время загрузки файла
Форумы портала PHP.SU » » Работа с сетью » Время загрузки файла

Страниц (1): [1]
 

1. sidletsky - 26 Ноября, 2013 - 16:43:55 - перейти к сообщению
Не знаю почему именно в этот раздел пишу вопрос, поэтому не судите.
Давайте представим себе сферический php-файл в вакууме, состоящий из условия. Если true, то выводится одна строка, если false - то миллион. Теперь вопрос: если человек отправляет через ajax, или просто открывает данный файл, то, если условие true, будут подгружаться миллион строк, или сервер слишком умён для этого?
2. dXdYdZ - 26 Ноября, 2013 - 16:46:40 - перейти к сообщению
Имеются в виду строки php-кода?
3. sidletsky - 26 Ноября, 2013 - 16:50:13 - перейти к сообщению
Именно.
Вот, к примеру, содержание этого файла:
PHP:
скопировать код в буфер обмена
  1. if(true) {
  2.     echo "<h1>It's work!</h1>";
  3. } else {
  4. // Миллион других условий, выводов, инклюдов etc.
  5. }
4. dXdYdZ - 26 Ноября, 2013 - 17:02:18 - перейти к сообщению
Ну, если написать так:
PHP:
скопировать код в буфер обмена
  1. if(true) {
  2.     echo "<h1>It's work!</h1>";
  3. } else {
  4.  include('Файл_с_миллионом_строк_кода');
  5. }

То миллион строк кода, если true, не загрузятся.
5. sidletsky - 26 Ноября, 2013 - 17:16:16 - перейти к сообщению
Только что сделал експеримент в Chrome.
Обращался через ajax к файлу, устанавливая разные значения переменной (true/false).
Увы, но Chrome подгружал одинаковый вес файла при разных значениях, хотя и время выполнения при true было равным 0, а при false - 15 мс
6. dXdYdZ - 26 Ноября, 2013 - 17:20:22 - перейти к сообщению
Это не критерий. Chrome грузит HTML-страницу, сгенерированную с помощью PHP, но никак не php-файл. Поэтому размер файла и должен быть одинаковым, если в обоих случаях выводится одинаковое количество байт. И почему разница времени выполнения - тоже понятно. Потому что выполняется меньше строк кода в первом случае.
А вот сколько строк подгружает интерпретатор, Вы таким образом не отследите.
7. sidletsky - 26 Ноября, 2013 - 19:57:05 - перейти к сообщению
В том-то и дело, что выводится меньше строк, а количество загружаемых данных - то же
8. anakoman - 26 Ноября, 2013 - 20:10:10 - перейти к сообщению
Сервер настолько умен что определяет является ли значение ТРУ или ФАЛЬШ одинако быстро (в независимости от условия).
а выполнение действий при ТРУ 1 строка или при ТРУ 100000000000 строк занимает РАЗНОЕ время
а выдача результата "ХЕЛО МИР" после разного количества операций будет одинаковой и любой браузер выдаст одинаковый размер файла при разных условиях
9. dXdYdZ - 26 Ноября, 2013 - 20:21:07 - перейти к сообщению
Количество строк PHP-кода не является критерием, определяющим размер загружаемого в браузер HTML-кода.
10. sidletsky - 26 Ноября, 2013 - 21:12:05 - перейти к сообщению
А как это всё на траффик пользователя повлияет?
11. dXdYdZ - 26 Ноября, 2013 - 21:16:48 - перейти к сообщению
Говорят же Вам, что на трафик пользователя влияет не количество строк PHP-кода, а количество сгенерированных этим кодом байт (символов).
(Добавление)
Пользователю в браузер передаётся не php-код. PHP-код исполняется интерпретатором на сервере. А пользователю выдаётся то, что генерируется этим кодом и пишется в выходной поток. Обычно это HTML-код.
12. sidletsky - 26 Ноября, 2013 - 22:35:41 - перейти к сообщению
Огромное всем спасибо!

 

Powered by ExBB FM 1.0 RC1