[英]Java - How is memory in JNI C code managed?
假設我正在通過JNI從Java調用一些C代碼,並且在C代碼中有一些全局數組。 如何分配和管理此內存? 我假設它不會在JVM堆上。
它不在JVM堆或本機元空間上。 內存是從提供給java進程的本機內存空間分配的,該進程是將JVM作為本機OS進程啟動的進程。 它由分配它的本機代碼管理,因此,如果不手動free
所有malloc
,則會發生內存泄漏。
沒有太多可依賴的具體材料,但是,此Oracle指南是一個很好的起點。
全局數組必須是靜態的,這意味着它位於共享庫的數據段中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.