本文介绍了释放内存到malloc的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法让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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-29 14:36