Pull to refresh

Comments 13

Напомнило книги из серии «Стань гуру веб-разработки за 24 часа» :-) Спасибо.
Интересная штука, спасибо.
Когда я делал тот веб-сервис, perl был ещё 5.005, ничего такого не было.
Если буду делать что-то для web, посмотрю на Mojolicious в первую очередь.
Одно из основных достижений сообщества Perl – это CPAN, огромная библиотека готовых решений для самых разных задач.

eval строк обычно не рекомендуется использовать, т.к. он запускает отдельный экземпляр компилятора, плюс есть версия, что при определённых обстоятельствах он течёт по памяти.
Про cpan знаю и использую когда есть возможность.

К сожалению, при использовании модулей с cpan приложение резко теряет в мобильности.
Поэтому если к скрипту главное требование — чтобы он работал везде, где его запустят, cpan с собой уже таскать не стоит.
Кроме этого, при апгрейде системы скомпилированные модули могут поломаться и всё придётся пересобирать, всё это связанно с проблемами при поддержке.
А с бандлами в perl, к сожалению, до сих пор не всё гладко.

Этот скрипт — абсолютно переносим.

В этом его главное преимущество.

Недостатки тоже есть и они известны.

Ну а насчёт течки по памяти… к сожалению, в perl текут и более насущные места кроме eval.
Mojolicious не имеет никаки зависимостей, кроме Perl 5.8.7, так что его не нужно собирать в системе, достаточно скопировать модули и сделать use lib.
То есть он также абсолютно переносим.
>> Ну а насчёт течки по памяти… к сожалению, в perl текут и более насущные места кроме eval.
?
Точного ответа у меня нет, но есть жизненный пример.

Некий сетевой сервис, который должен работать 24/7/365 пришлось перестартовывать по cron раз в сутки, иначе он раз в несколько месяцев при всплеске нагрузки терял файловые дескрипторы сокетов (или пайпов) и переставал работать.
Какой именно модуль тут оказался кривым — сказать сложно, из специфики могу сказать, что интенсивно использовались DBI (MySQL), LWP::Simple, локальные сокеты и fork().

С другой стороны, ещё на Perl 5.005 в каких-то лохматых годах я написал специфичный web-сервер, который именно работал круглосуточно и без перезапусков месяцами и годами — его аптайм всегда был равен аптайму сервера.

Как настоящий гик, наверно, я должен был кинуться и найти, что именно и куда утекает, но ежедневные задачи не дали мне этого сделать :) или попросту было лень :)
Спасибо за развернутый ответ!
По опыту могу сказать, что утечки все-таки имеют место быть в Perl-XS модулях, там где сборщик мусора уже не может помочь :)

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

Не в этой вселенной.
да, дальше не читал.
Sign up to leave a comment.

Articles

Change theme settings