我在MacOS上的Python进程完全忽略了我设置的rlimit。 我已确认(已打印)
物理内存使用率超过2.4Gb,此时CPU使用率下降<;<;5%,并挂起。
(潜在的罪魁祸首似乎是numpy数组分配,但是我不能强制一个OutOfMemory
异常来确定位置,所以我被卡住了)。发生什么事?我以为硬性关节炎不能忽视?在
EDIT:我发现有问题的分配不是在原生Python中完成的,而是在numpy或scikit-learn中完成的。链接到source of cpython:Modules/resource.c如果是,那将是一个确定的docbug。在
import resource
resource.setrlimit(resource.RLIMIT_AS, (1*1048576L, 1.2*1048576L))
resource.setrlimit(resource.RLIMIT_DATA, (1*1048576L, 1.1*1048576L))
resource.setrlimit(resource.RLIMIT_STACK, (100000, 120000))
版本:MacOS10.8.2上的python2.7.3(macports,64b),py27 numpy。在
机器有4Gb物理RAM。在
我突然想到,有问题的分配不是在原生Python中完成的,而是在numpy或scikit-learn中完成的。 我的分配代码可能正在向临时内存泄漏内存。会调查的。可能需要查看gc。在
如果是这样,听起来像是resource上的docbug。在
链接到source of cpython:Modules/resource.c
相关问题 更多 >
编程相关推荐