Пользовательский интерфейс PHP FastCGI? (Быстрее?) - PullRequest
2 голосов
/ 01 июня 2009

Как вы строите свой собственный интерфейс FastCGI на PHP?

Я хотел бы сделать что-то похожее на то, что они делают в Perl , но в PHP. Это вообще возможно? Будет ли это быстрее?

(То есть я хотел бы иметь возможность загружать фреймворк веб-приложения один раз в память, а затем просто вызывать FastCGI для каждого запроса, который я предоставляю. Поэтому не для более общей предварительной загрузки PHP-интерпретатора, который происходит в настройке PHP FastCGI «по умолчанию».)

ура!

( Редактировать : Разве Монгрел и RoR также не делают этого?)

Хорошо, я сделал чертову диаграмму:)

alt text

Ответы [ 3 ]

1 голос
/ 01 июня 2009

Я могу ошибаться (уже поздно), но разве вы не пытаетесь использовать какую-то форму кеширования? Несмотря на это, интерфейс FastCGI, кажется, довольно хорошо определен. Таким образом, должно быть возможно делать все, что угодно, довольно легко.

0 голосов
/ 12 июля 2012

Если вы действительно решили, что он должен быть в PHP, теоретически вы можете создать модуль php в c и сформировать мост для fastCGI в c .

После этого, как я догадываюсь, вы запустите PHP-скрипт для доступа к fastCGI как к отдельной программе, запустив цикл и принимая запросы. В котором вы используете PHP как «постоянную виртуальную машину» (не могу найти более подходящий термин), который обменивается данными через fastCGI.

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

Однако, если честно ... если вас интересует производительность, вы могли бы также рассмотреть fastCGI C ++ / node.js в качестве альтернативы ... Разработав для JavaScript / PHP / C ++, ваша идея определенно возможна ... Однако все сводится к выгоде ... Стоит ли усилий? И т. Д.

PS: Вы также можете подумать о компиляции своих сайтов PHP через хип-хоп.

0 голосов
/ 10 июля 2009

Вы можете не сделать это в PHP для PHP, вы можете сделать это в C для cgi-sapi , но вы, вероятно, вместо этого хотите использовать APC .

...