使用python的ctypes庫實現內存的動態申請和釋放

最近有個需求,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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章