13 702
правки
Изменения
м
→mod_perl
# Чрезмерная завязка на внутреннее устройство веб-сервера [http://httpd.apache.org/ Apache]. Фактически — когда вы разрабатываете на mod_perl’е, вы разрабатываете ''полноценный модуль Apache''. Аналогично — приложения, написанные под mod_perl, не запустятся больше нигде.
# В mod_perl2 для различных функций существует по нескольку где-то конкурирующих, где-то дополняющих друг друга, а где-то сходных по функционалу, но разных по интерфейсу библиотек. Частично это диктуется совместимостью с mod_perl1. ''Примеры — куки: Apache2::Cookie, APR::Request::Cookie, запрос: Apache2::RequestRec, Apache2::RequestUtil, Apache2::Request, APR::Request. Пока я допёр, что для того, чтобы получить в пользование <code>$r->dir_config()</code>, нужно сделать <code>use Apache2::RequestUtil</code>…'' Это не так страшно, но некоторую путаницу всё-таки вносит.
# Склонность к утечкам памяти. ''mod_perl течёт всегда, хоть ты его режь.'' РешениеОбходной манёвр, правда, тоже несложное — несложен — MaxRequestsPerChild.
# Серьёзное увеличение размеров детёнышей процесса Apache.
# Проблемы с перезагрузкой модулей в процессе обслуживания без перезапуска сервера. ''Оговорка: это проблема Perl’а в целом, не только mod_perl’а. Но под mod_perl она проявляется сильнее: иногда при перезагрузке модулей ему прямо-таки «сносит крышу», он забывает про все константы и валит Internal Server Error на все запросы. Ну и второе — авторы mod_perl могли бы и предусмотреть быстрый «сброс» интерпретаторов по сигналу.''