最近有个需求,python内部调用dll,传递的是char* ,还要动态扩展比较大的内存,这就涉及到了动态申请和释放了
1、申请前内存占用情况
2、申请内存
from ctypes import *
import time
#在这里申请1G的内存,单位k
mem = create_string_buffer(1024*1024*1024)
time.sleep(10)
#释放内存
mem= None
3、申请后内存占用情况
4、释放内存后的内存占用情况
最后封装成两个方法如下:
mem = None
def dynamicMemory():
global mem
# 在这里申请1M的内存,单位k
mem = create_string_buffer(1024 * 1024)
return mem
def freeMemory():
global mem
mem = None