Как ограничить память программ OS X? ulimit -v ни -m работают

У моих программ заканчивается память наполовину, когда я их запускаю. В Linux я могу установить жесткий предел доступной памяти с помощью ulimit -v mem-in-kbytes. Фактически, я использую ulimit -S -v mem-in-kbytes, поэтому я получаю правильную проблему с распределением памяти в программе, и я могу прервать ее.

Но … ulimit не работает в OSX 10.6. Я пробовал с параметрами -s и -m, и они не работают.

В 2008 году в MacRumors была обсуждена одна и та же проблема, но никто не предложил хорошую альтернативу. Это должно быть способом, которым программа может научиться тратить слишком много памяти или устанавливать ограничение через ОС.

После того, как я боролся с этим сам (с ограниченным успехом), я решил, что есть два способа сделать это …

Вы можете настроить элемент launchd для своего исполняемого файла. Важной частью plist является раздел, такой как ..

 SoftResourceLimits  Stack 10000000000  

Доступны различные ключи … которые можно найти на странице MAN от MAN .

Другой способ сделать это, я думаю , установить значение в /etc/launchd.conf (system) или /etc/launchd-usr.conf (peruser). Например, ваш файл launchd.conf может содержать …

 umask 002 limit stack 67104768 67104768 limit maxproc 3400 4500 limit maxfiles 256 unlimited setenv PATH /opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Документация по всем функциональным возможностям launchdd, если вы спросите меня .. Это как если бы Apple, возможно, не заботятся / хотят, чтобы люди за пределами своих стен действительно понимали, как все это работает. Существует так много возможностей, освоившись с запуском, и это тонкости … но есть немного конкретных / официальных ресурсов, чтобы как правильно их реализовать.

setrlimit должен выполнить эту работу. Я считаю, что это BSD эквивалент ulimit

Interesting Posts

Рекурсивная функция не возвращает указанное значение

Предотвратите запуск Windows 7 из режима ожидания + кнопка включения питания

Синтаксис методов расширения и синтаксиса запросов

Порядок инициализации статических полей в статическом classе

Светло-серый фон в области «отскока» UITableView

Создавайте четкие цвета RGB в графиках

Утилита «find» не выводит все файлы при использовании подстановочных знаков

Проблема загрузки swf-файла в android

Как узнать, загружается ли установщик Windows в EFI или BIOS?

Как отключить или отменить клавишу FN: я хочу заменить: FN + F1, FN + F2, FN + F3, … FN + F12 с просто F1, F2, F3, … F12

Простое альфа-числовое регулярное выражение (одиночное расстояние) без катастрофического обратного отсчета

Почему XmlSerializer не поддерживает словарь?

Как я могу использовать файлы cshtml с Durandal?

Word 2010: Как ссылаться на пользовательские свойства документа?

Масштабирование и панорамирование в анимированном canvasе HTML5

Давайте будем гением компьютера.