¿Cómo limitar la memoria de un progtwig OS X? ulimit -v tampoco -m están funcionando

Mis progtwigs se quedan sin memoria como la mitad de las veces que los ejecuto. En Linux, puedo establecer un límite estricto para la memoria disponible utilizando ulimit -v mem-in-kbytes. En realidad, utilizo ulimit -S -v mem-in-kbytes, por lo que tengo un problema de asignación de memoria adecuado en el progtwig y puedo abortar.

Pero … ulimit no funciona en OSX 10.6. He intentado con las opciones -s y -m, y no están funcionando.

En 2008 hubo cierta discusión sobre el mismo problema en MacRumors , pero nadie propuso una buena alternativa. Debería ser una forma en que un progtwig puede aprender que está gastando demasiada memoria o estableciendo un límite a través del sistema operativo.

Después de luchar con esto yo mismo (con un éxito limitado), he determinado que parece haber dos formas de hacerlo …

Puede configurar un elemento de lanzamiento para su ejecutable. La parte importante de la lista es una sección, como …

 SoftResourceLimits  Stack 10000000000  

Hay varias claves disponibles … que se pueden encontrar en la página MAN de Apple .

Otra forma de hacerlo, creo , es establecer un valor en /etc/launchd.conf (sistema) o /etc/launchd-usr.conf (peruser). Por ejemplo, su launchd.conf podría contener …

 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 

La documentación de toda la funcionalidad de launchd es astuta, si me preguntas … Es como si a Apple no le importara / quisiera que la gente fuera de sus muros realmente entendiera cómo funciona todo. Hay tanto poder para dominar launchd y sus complejidades … pero hay pocos recursos concretos / oficiales disponibles sobre cómo implementarlos correctamente.

setrlimit debería hacer el trabajo. Creo que ese es el equivalente BSD de ulimit