1. gqbe.livejournal.com

    17.11.2008 14:14

    Как отследить утечки?
    В РНР была переменная max_allowed_memory_size. При превышении которой child освобождал всю используемую память и перезапускался.
    Как с этим в джанго?
  2. Иван Сагалаев

    17.11.2008 14:28

    В Джанго с этим "никак" в том смысле, что работает с памятью тут Питон, Джанго не делает сверх него ничего специального. А у Питона — сборка мусора, и вообще на практике можно считать, что он сам по себе не течет никогда. Исключения составляют две вещи:

    • Рукотворные "утечки", когда программа сама совершенно законно копит объекты в памяти. Яркий пример — Джанго в дебаг-режиме сохраняет в памяти лог всех запросов к базе, и он, разумеется, всегда растет.

    • Утечки в сторонних сишных библиотеках. Лучший способ с ними бороться — или не использовать текущие библиотеки, или ныть в рассылки авторам, чтобы починили :-)

  3. gqbe.livejournal.com

    17.11.2008 14:31

    Понял, спасибо :)
  4. slach.livejournal.com

    17.11.2008 15:28

    Иван, а вообще можно где нибудь почитать про то как в python работают контейнеры для переменных?
    подкиньте ссылочек где прочитать про то как там работает рефкаунтинг...
    какой аналог php zval используется?
    по какому принципу работает garbage collector и насколько сильно он деградирует производительность?
  5. Иван Сагалаев

    17.11.2008 16:24

    Честно говоря, я не знаю деталей того, как оно там реализовано, и как на производительность влияет. Почитать наверное лучше всего про модуль gc, который предоставляет интерфейс к коллектору. Ну и погуглить что-нибудь...

bbcode