Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: [How-To] Утечки памяти в Conky/Lua/Cairo  (Прочитано 1807 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн olgmen

  • Автор темы
  • Активист
  • *
  • Сообщений: 493
    • Просмотр профиля
На форуме проскакивали сообщения, что созданные мной конки съедают много памяти. Я нашел причину прожорливости моих конок. Статью, на английском можно прочитать здесь http://u-scripts.blogspot.com/2011/01/memory-leaks-in-conkyluacairo.html. Краткий перевод статьи wlourf

1. Избегайте глобальных переменных

Если вы не определяете локальные переменные, то переменные автоматически определяются как глобальные.
Когда conky читает программу, то глобальные переменные устанавливаются и не сбрасываются в конце программы (даже если установить переменную равную 0). При каждом прочтении программы устанавливаются новые глобальные, что приводит к увеличению занимаемой памяти!

2. Объявляйте переменные величины как локальные

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

3. Не забудьте «cairo_pattern_destroy»

Создавая изображения, не забудьте разрушить их когда рисунок создан командой cairo_pattern_destroy (pat) и конечно разрушить контексты и поверхности с помощью команд cairo_destroy (cr) и cairo_surface_destroy (cs).

Удачных коньков
кто хочет, тот добьется,
кто ищет, тот всегда найдет

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.