Написание демона на Perl - PullRequest
       4

Написание демона на Perl

1 голос
/ 11 февраля 2011

Я пишу демон для рассылки на Perl.

Демон будет работать 24 часа в сутки на сервере. У него будет активное соединение с базой данных postgresql почти все время.

У меня нет такого большого опыта работы с Perl, поэтому я был бы рад, если бы некоторые из вас могли поделиться информацией о следующем:

  1. Как ограничить оперативную память. Я не хочу выходить из барана. Как я уже сказал, эта программа будет работать как демон без остановки.

  2. Что я должен знать при написании таких демонов?

Ответы [ 3 ]

5 голосов
/ 11 февраля 2011
  1. Что касается соединения SQL - убедитесь, что вы не пропускаете память. Извлеките из запроса наименьший объем данных, который вам нужен, и убедитесь, что структуры данных, в которых хранятся данные, немедленно выходят из области видимости, чтобы сборщик мусора мог их вернуть

    Обратите внимание, что могут быть утечки памяти, которые вы не можете контролировать (например, в коде подключения Postgresql). Это было известно, что случилось. Лучшее решение этой проблемы (если не считать точного профилирования памяти и устранения утечек в базовых библиотеках) - это чтобы ваш демон вытащил Феникс - прекратите делать то, что он делает, и exec() создайте новую копию.

  2. Что касается написания демонов Perl, некоторые ресурсы:

2 голосов
/ 11 февраля 2011

Относительно # 1: Perl - сборщик мусора.

Эффективное значение этого заключается в том, что вы должны убедиться, что все ссылки на данные очищены, когда вы закончите с ними, что позволит запустить сборщик мусора.

http://perldoc.perl.org/perlobj.html#Two-Phased-Garbage-Collection

1 голос
/ 11 февраля 2011

Одна вещь, на которую нужно обратить внимание, это утечки памяти.Очень хорошая тема о утечках памяти в Perl уже есть на SO.

...