簡體   English   中英

如何檢查JNI中的內存泄漏

[英]How to check for memory leaks in JNI

在我的JNI程序中,我使用

new
delete
env->NewGlobalRef
env->DeleteGlobalRef
jvm->AttachCurrentThread
jvm->DetachCurrentThread

什么是嚴格檢查內存泄漏的好方法?

確保每個new env->NewGlobalRefjvm->AttachCurrentThread都在一個對象的構造函數中,該對象在其析構函數中調用匹配的釋放函數。

這是一種稱為RAII的技術,對於在C ++中編寫任何正確的程序至關重要。

  • 首先嘗試使用智能指針
  • 正如Mankarse指出的那樣,盡可能使用RAII習語來創建和刪除全局引用。
  • 使用盡可能少的全局報價
  • 在循環中構造它們時可以自由引用本地引用

看看這里管理參考。

您是否已經知道您的本機代碼正在泄漏內存?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM