linux内存碎片malloc,使用MALLOC_MMAP_THRESHOLD_和MALLOC MMAP_MAX减少内存碎片_

我已经在一个长时间运行的python2进程中尝试使用MALLOC_map_THRESHOLD_200;MMAP_MAX_env变量来影响内存管理。

见http://man7.org/linux/man-pages/man3/mallopt.3.html

我得到的结果是令人鼓舞的:内存碎片减少了,长时间运行的进程使用的内存中可见的典型高水位线更低。在

我唯一担心的是,如果有其他副作用,可能会咬回来,当使用这种低水平的调整。有人有使用它们的经验吗?在

下面是一个示例脚本,该脚本在生成大型词典的脚本中显示了这些变量如何影响RSS内存:

https://gist.github.com/lbolla/8e2640133032b0a6bb9c

快跑吧”分配sh“然后比较输出。以下是我的输出:MALLOC_MMAP_THRESHOLD_=None MALLOC_MMAP_MAX_=None

N=9 RSS=120968

MALLOC_MMAP_THRESHOLD_=512 MALLOC_MMAP_MAX_=None

N=9 RSS=157008

MALLOC_MMAP_THRESHOLD_=1024 MALLOC_MMAP_MAX_=None

N=9 RSS=98484

MALLOC_MMAP_THRESHOLD_=2048 MALLOC_MMAP_MAX_=None

N=9 RSS=98484

MALLOC_MMAP_THRESHOLD_=4096 MALLOC_MMAP_MAX_=None

N=9 RSS=98496

MALLOC_MMAP_THRESHOLD_=100000 MALLOC_MMAP_MAX_=None

N=9 RSS=98528

MALLOC_MMAP_THRESHOLD_=512 MALLOC_MMAP_MAX_=0

N=9 RSS=121008

MALLOC_MMAP_THRESHOLD_=1024 MALLOC_MMAP_MAX_=0

N=9 RSS=121008

MALLOC_MMAP_THRESHOLD_=2048 MALLOC_MMAP_MAX_=0

N=9 RSS=121012

MALLOC_MMAP_THRESHOLD_=4096 MALLOC_MMAP_MAX_=0

N=9 RSS=121000

MALLOC_MMAP_THRESHOLD_=100000 MALLOC_MMAP_MAX_=0

N=9 RSS=121008

MALLOC_MMAP_THRESHOLD_=512 MALLOC_MMAP_MAX_=16777216

N=9 RSS=157004

MALLOC_MMAP_THRESHOLD_=1024 MALLOC_MMAP_MAX_=16777216

N=9 RSS=98484

MALLOC_MMAP_THRESHOLD_=2048 MALLOC_MMAP_MAX_=16777216

N=9 RSS=98484

MALLOC_MMAP_THRESHOLD_=4096 MALLOC_MMAP_MAX_=16777216

N=9 RSS=98496

MALLOC_MMAP_THRESHOLD_=100000 MALLOC_MMAP_MAX_=16777216

N=9 RSS=98528

如您所见,本例中使用的RSS比vanilla Python少20%。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值