↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы

Помните недавнее нытье лексика о том, что рутноп съедает всю память и убивает железку? Так вот, я в это говно тоже сел.
Первой мыслью было, что бидон настолько замечательно аллоцирует объекты, что заставляет glibc'овский malloc фрагментировать память.
Я экспериментировал с openbsd'шным malloc, tcmalloc, но память не возвращалась.
Оказывается, в бидоне есть встроенный аллокатор, надстроенный над системным malloc, добавляющий еще один уровень умничанья и пулов "свободной" памяти.
Я собрал бидон --without-pymalloc и запустил с LD_PRELOAD=/usr/lib/libtcmalloc.so
Память не возвращалась.
Я сходил почитал комиксы в инторнете, потупил в чятики, глянул в процесслист и обнаружил, что RSS упало.
Предположение: Python таки освободил память, но tcmalloc решил, что память можно придержать на случай, если она еще понадобится.
Чтобы проверить это предположение, я написал биндинги к tcmalloc.
Создаем крупный объект из кучи мелких говен. generic.current_allocated_bytes растет
Удаляем его. generic.current_allocated_bytes падает, tcmalloc.pageheap_free_bytes растет
Делаем pytcm.release_free_memory(), tcmalloc.pageheap_free_bytes падает, tcmalloc.pageheap_unmapped_bytes растет, RSS падает, VSZ остается высоким.
Память действительно освободилась питоном, а tcmalloc сделал madvise(...,MADV_DONTNEED) на страницы из своего page heap.

Мораль: PYMALLOC говно. Если ты эмбеддор, это первое, что тебе нужно выдрать из питона.

Рекомендовали: @lexszero
#JPMEI7 / @stiletto / 4070 дней назад

>эмбеддор >питон
#JPMEI7/J7N / @krkm / 4070 дней назад
показать нашим питонистам штоле.
#JPMEI7/UEF / @lexszero / 4070 дней назад
если ты эмбеддор, то первое что нужно выдрать из проекта - это петушон, жабу, луа и прочие хуескриптинги
#JPMEI7/BVF / @hate-engine / 4070 дней назад
@hate-engine а на чем тогда писать?
#JPMEI7/INC / @lexszero --> #JPMEI7/BVF / 4070 дней назад
@lexszero asm/c/c++ ofc
#JPMEI7/A5E / @hate-engine --> #JPMEI7/INC / 4070 дней назад
@lexszero javascript
#JPMEI7/P55 / @krkm --> #JPMEI7/INC / 4070 дней назад
@hate-engine что из этого ЯВУ? гхц под арм ущербен, из популярных остается только гоъ, но я не уверен, что его gc не сосет так же.
#JPMEI7/OGG / @lexszero --> #JPMEI7/A5E / 4070 дней назад
@hate-engine выкинь это ненадежное говно и пиши на аде, норкоман
#JPMEI7/DS1 / @stiletto --> #JPMEI7/A5E / 4070 дней назад
@kurkuma > жабу и прочие хуескриптинги
#JPMEI7/FHM / @lexszero --> #JPMEI7/P55 / 4070 дней назад
@lexszero компилируй в asm.js
#JPMEI7/HL4 / @krkm --> #JPMEI7/FHM / 4070 дней назад
напиши россуму в плюсач
#JPMEI7/6IH / @kerrigan / 4070 дней назад
@kerrigan нахуй россум(который не при делах), если есть баг-трекер?
#JPMEI7/SWR / @238328 --> #JPMEI7/6IH / 4070 дней назад
@238328 попонтоваться какой ты питонист, пусть завидует и багорит там в своем отстойнике
#JPMEI7/5ME / @krkm --> #JPMEI7/SWR / 4070 дней назад
@lexszero не на питоне
#JPMEI7/7DC / @238328 --> #JPMEI7/INC / 4070 дней назад
@238328 потому что это фундаментальная хуйня
#JPMEI7/ON6 / @kerrigan --> #JPMEI7/SWR / 4070 дней назад
@kerrigan все равно трекер полущ, даже лень объяснять //
#JPMEI7/HD1 / @238328 --> #JPMEI7/ON6 / 4070 дней назад
@kurkuma умею программировать в MS Excel и HTML5
#JPMEI7/FO3 / @238328 --> #JPMEI7/5ME / 4070 дней назад
@238328 клевенький такой))))
#JPMEI7/934 / @krkm --> #JPMEI7/FO3 / 4070 дней назад
@kurkuma багор жс-мрази
#JPMEI7/VZJ / @238328 --> #JPMEI7/934 / 4070 дней назад
@238328 моей
#JPMEI7/CDR / @krkm --> #JPMEI7/VZJ / 4070 дней назад
Выдрал твою мамку.
#JPMEI7/ICT / @xenomorph / 4070 дней назад
@kurkuma было в треде
#JPMEI7/AB6 / @238328 --> #JPMEI7/PBB / 4070 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.