最近有個需求,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