SSI или PHP Включить ()? - PullRequest
       0

SSI или PHP Включить ()?

10 голосов
/ 08 июня 2010

В основном я запускаю сайт в ближайшее время, и я прогнозирую много трафика. Ради сценариев, скажем, у меня будет 1 миллион уникальных вещей в день. Данные будут статичными, но мне нужно, чтобы они включали в себя также

Я включу только html-страницу в другую html-страницу, ничего динамического (у меня есть причины, которые я не буду раскрывать, чтобы сохранить это простым)

У меня вопрос, что касается производительности, что быстрее

<!--#include virtual="page.htm" -->

или

<?php include 'page.htm'; ?>

Ответы [ 5 ]

9 голосов
/ 08 июня 2010

Быстрее всего с точки зрения производительности - хранить шаблоны в другом месте, генерировать полный HTML-код и регенерировать на основе изменений в шаблоне.

Если вы действительно хотите сравнить PHP и SSI, я думаю, что SSI, вероятно, быстрее,и что еще более важно: отсутствие PHP намного легче в оперативной памяти, необходимой для процессов / потоков веб-серверов, что позволяет вам иметь больше потоков / процессов apache для обслуживания запросов.

2 голосов
/ 08 июня 2010

Возможно, вам стоит взглянуть на HipHop для php, который компилирует PHP в C ++. Поскольку C ++ компилируется быстрее. Facebook использует его для снижения нагрузки на свои серверы.

http://wiki.github.com/facebook/hiphop-php/

2 голосов
/ 08 июня 2010

SSI встроен в Apache, в то время как Apache должен порождать процесс PHP для обработки файлов .php, поэтому я ожидаю, что SSI будет несколько быстрее и легче.

Я согласен с предыдущим ответомтем не менее, этот маршрут PHP даст вам больше гибкости для изменения в будущем.

Действительно, любая существующая разница в скорости, вероятно, будет незначительной в общей картине.

1 голос
/ 08 июня 2010

Я не думаю, что кто-то может ответить на это окончательно для вас. Это зависит от конфигурации вашего веб-сервера, выбора операционной системы и файловой системы, сложности использования SSI, других конкурирующих процессов на вашем сервере и т. Д.

Вам следует собрать несколько примеров файлов и запустить тесты на сервере, на котором вы собираетесь развернуть. Используйте некоторые инструменты тестирования http, такие как ab или siege или httperf или jmeter , чтобы сгенерировать некоторую нагрузку и сравнить два подхода. Это лучший способ получить правильный ответ для вашей среды.

Использование PHP с mod_php и кешем кода операции, подобным APC , может быть очень быстрым, поскольку он автоматически кеширует файлы с высокими требованиями. Если вы отключите apc.stat, ему вообще не придется нажимать на диск для обслуживания сценария PHP (с учетом того, что это усложняет обновление сценария PHP в работающей системе).

Вам также следует убедиться, что вы следуете другим рекомендациям по высокой масштабируемости. Используйте CDN для статических ресурсов, оптимизируйте свои сценарии, таблицы стилей и т. Д. Получите книги от Стива Соудерса и Тео & Джорджа Schlossnagle и читать их от корки до корки.

0 голосов
/ 08 июня 2010

Я предлагаю вам использовать веб-кеш, например Squid или, для чего-то более сложного, Oracle Web Cache .

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