У меня есть VPS с не очень большой памятью (256 Мб), которую я пытаюсь использовать для разработки Common Lisp с SBCL + Hunchentoot для написания простых веб-приложений , Похоже, что большой объем памяти используется, не делая ничего особо сложного, и через некоторое время на страницах обслуживания у него заканчивается память, и либо он сходит с ума, используя все свопы, либо (если нет свопа) просто умирает.Устранение и использование памяти в Common Lisp (SBCL)
Поэтому мне нужна помощь:
- Узнайте, что использует всю память (если это библиотека или меня, особенно)
- Ограничить объем памяти, который SBCL разрешается использовать, чтобы избежать массовые количества подкачки
- Обращайтесь с вещами чисто, когда память закончится, а не сбой (поскольку это веб-приложение, я хочу, чтобы оно продолжалось и пыталось очистить).
Я предполагаю, что первые два являются достаточно простыми, но третье возможно даже? Как люди справляются с нехваткой памяти или ограниченными условиями памяти в Lisp?
(Кроме того, я отмечаю, что 64-разрядный SBCL, по-видимому, использует буквально вдвое больший объем памяти, чем 32-разрядный. Ожидается ли это? Я могу запустить 32-разрядную версию, если она сэкономит много памяти)
Не могли бы вы добавить ссылку на что-то о профилировщике SBCL, пожалуйста? :) –
Существует описание профилировщика в руководстве SBCL по адресу http://www.sbcl.org/manual/Deterministic-Profiler.html –
Удивительно, спасибо! –