Загрузка процесса для запуска веб-запроса - PullRequest
0 голосов
/ 06 апреля 2011

Когда я был на своем предыдущем рабочем месте, где работала поисковая система, я заметил, что у них есть исполняемые файлы, созданные с использованием C ++, которые вызываются с параметрами командной строки сценарием cgi для обслуживания каждого веб-запроса. (например, когда пользователь нажимает кнопку поиска)

Я не мог понять полную картину в целом, но был удивлен тем, сколько будет издержек при запуске нового процесса для каждого пользовательского запроса, так как загрузчик ОС должен отобразить пространство процесса и т. Д. (Это был Unix Solaris)

Это устаревшая технология или я что-то упустил? (например, если запуск процесса может быть оптимизирован путем создания постоянного отображения, и они бы это сделали). Или есть лучшие альтернативы для запуска кода C ++ для веб-запроса?

1 Ответ

0 голосов
/ 06 апреля 2011

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

Единственная альтернатива загрузке процесса по запросу - разрешить расширяемость внутри серверного процесса. Это может повлиять на стабильность, наложить ограничения на расширение сервера и наложить дополнительные требования на программиста. Выигрыш в производительности может не стоить того.

Если выигрыш в производительности того стоит, тогда вы можете переписать приложение как расширение / модуль / сервлет / что угодно.

...