Почему FastCGI такой медленный? - PullRequest
2 голосов
/ 08 сентября 2011

Недавно я сравнил две версии моего приложения C ++, которое обрабатывает огромные файлы (десятки ГБ): обычный исполняемый файл и двоичный файл fastcgi, порождаемый под сервером lighttpd. Оказалось, что версия fastcgi была почти в 5 раз медленнее. Программа в основном читает много строк из файлов на диске через дескрипторы FILE, версия fcgi точно так же. Так откуда же пришло замедление?

Спасибо за комментарии! Моя программа делает следующее:

Инициализация: - читает несколько файлов, открытых fopen (), построчно, используя fgets (файл содержит несколько миллионов строк) - строит некоторую структуру данных в оперативной памяти при обработке файлов - выводит небольшие сообщения журнала в файл на диске после обработки каждого файла

Диалог: - остальное время отвечает на поисковые запросы через stdin / stdout

И версия FCGI: FCGX_Init ()

Инициализация (как в оригинальной версии)

while (FCGX_Accept ()) { Диалог (через сокет fcgi вместо стандартного ввода / вывода) }

И я говорю только о выполнении части инициализации. Я надеюсь, что сейчас достаточно информации.

...