Справляясь, и уменьшение, использование памяти в языке Common LISP (SBCL)

Я думаю, что вы на самом деле должны просто сделать:

df[column] = df[column].str.replace("pjp-*|","")

Надеюсь, это поможет, нам нужно больше информации здесь

13
задан pupeno 15 May 2009 в 10:57
поделиться

4 ответа

Для ограничения использования памяти SBCL используйте - опция динамического размера пространства (например,sbcl --dynamic-space-size 128 ограничит использование памяти 128M).

Для обнаружения, кто использует память можно звонить (room) (функция, которая говорит, сколько памяти используется), в разное время: при запуске, после того, как все библиотеки загружаются и затем во время работы (курса, звонить (sb-ext:gc :full t) перед комнатой для не измерения мусора, который еще не был собран).

Кроме того, возможно использовать Профилировщика SBCL для измерения выделения памяти.

14
ответ дан 1 December 2019 в 22:24
поделиться

Если бы у Вас нет описаний типа, я ожидал бы, что 64-разрядный Lisp займет дважды место 32-разрядного. Даже простой (маленький) интервал будет использовать 64-разрядный блок памяти. Я не думаю, что это будет использовать меньше, чем машинное слово, если Вы не объявите это.

Я не могу помочь с № 2 и № 3, но если Вы выясняете № 1, я подозреваю, что это не будет проблема. Я видел, что экземпляры SBCL/Hunchentoot работают целую вечность. Если я использую возмутительный объем памяти, это обычно - мой собственный отказ.:-)

3
ответ дан 1 December 2019 в 22:24
поделиться

Я не был бы удивлен 64-разрядным SBCL, использующим дважды meory, поскольку он будет, вероятно, использовать 64-разрядную ячейку, а не 32-разрядную, но не мог сказать наверняка без фактической проверки.

Типичными вещами, которые сохраняют память, бродящую вокруг для дольше, чем ожидалось, являются больше полезные ссылки, которые все еще имеют путь к корневому набору выделения (хеш-таблицы, я нахожу, хороший способ позволить этим вещам задержаться). Вы могли попытаться вкрапить явные вызовы к GC в Вашем коде и удостовериться, что (в максимально возможной степени) не, хранят вещи в глобальных переменных.

1
ответ дан 1 December 2019 в 22:24
поделиться

Узнайте то, что использует всю память (если это - библиотеки или я, особенно),

У Attila Lendvai есть некоторый SBCL-определенный код для обнаружения, куда выделенные объекты прибывают из. Обратитесь к http://article.gmane.org/gmane.lisp.steel-bank.devel/12903 и запишите ему частную почту в случае необходимости.

Обязательно попробуйте другую реализацию, предпочтительно с точным GC (как CL Clozure), чтобы гарантировать, что это не определенная для реализации утечка.

Ограничьте объем памяти, какому SBCL позволяют использовать, избежать серьезных количеств свопинга

Уже отвеченный другими.

Вещи дескриптора чисто, когда память заканчивается, вместо того, чтобы отказать (так как это - веб-приложение, которое я хочу, чтобы это продолжило и попыталось вымыться).

256 МБ трудны, но так или иначе: запланируйте возвращение (возможно, 1 с) синхронизированный поток, который проверяет остающееся свободное пространство. Если свободное пространство - меньше чем X затем должностное лицо использования () для замены текущего образа процесса SBCL новым.

4
ответ дан 1 December 2019 в 22:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: