问题描述
有没有办法让Python将内存释放回
C分配器?我正在运行一个脚本,通过以下步骤完成
:
1)创建大量的Python对象来生成
a相对较小的数据结构,位于C扩展中。
Python对象消耗相当多的内存。
2)全部发布Python对象。
3)调用所述C扩展的函数以进一步处理
。这一步需要尽可能多的内存。
我希望第2步将内存返回给C分配器,以便它可以使用
第3步中的扩展(使用malloc)。
问候,
Iker Arizmendi
Is there any way to get Python to release memory back to the
C allocator? I''m currently running a script that goes through
the following steps:
1) Creates a very large number of Python objects to produce
a relatively small data structure that sits in a C extension.
The Python objects consume quite a bit of memory.
2) Releases all the Python objects.
3) Invokes a function of said C extension for further
processing. This step needs as much memory as possible.
I''d like step 2 to return memory to the C allocator so that it
is available to the extension in step 3 (which uses malloc).
Regards,
Iker Arizmendi
推荐答案
嗯嗯。其他方式更好。
如果您有权访问扩展程序的源代码,请更改它以使它
使用PyMem_Malloc,PyMem_Free等
阅读本文;它告诉你原因:
干杯,
John
Huh-uh. Other way up is better.
If you have access to the source of the extension, change it so that it
uses PyMem_Malloc, PyMem_Free, etc
Read this; it tells you why:
http://docs.python.org/api/memoryOverview.html
Cheers,
John
你能修改C源吗?如果可以的话,使用Python内存
分配函数PyMem_Malloc / PyMem_Realloc / PyMem_Free。
Gabriel Genellina
Softlab SRL
__________________________________________________
$ b $bPreguntá。 Respondé。 Descubrí。
Todo loquequeríasaber,y lo que ni imaginabas,
$ b $bestáenYahoo! Respuestas(测试版)。
?Probalo ya!
Can you modify the C source? If you can, use the Python memory
allocation functions PyMem_Malloc/PyMem_Realloc/PyMem_Free.
Gabriel Genellina
Softlab SRL
__________________________________________________
Preguntá. Respondé. Descubrí.
Todo lo que querías saber, y lo que ni imaginabas,
está en Yahoo! Respuestas (Beta).
?Probalo ya!
http://www.yahoo.com.ar/respuestas
这篇关于释放内存到malloc的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!