私はC++で書かれたゲームをNDKを使ってAndroidに移植します。実行中に消費するメモリ量を知る必要があります。私は、プログラムでC++で書かれたAndroidアプリケーションのメモリ使用量を見つける方法を探しています。 JavaではNDKを使ってC++で書かれた私のアンドロイドアプリケーションのメモリ使用量を調べるには
答えて
、あなたが使用割り当てられた固有のメモリー/確認することができます。
Debug.getNativeHeapAllocatedSize()
Debug.getNativeHeapSize()
参照:
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapAllocatedSize%28%29
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapSize%28%29
JonnyBoyの回答に基づいて2つの機能を。 malloc()
および関連関数のみによって行われるメモリ割り当て約
static long getNativeHeapAllocatedSize(JNIEnv *env)
{
jclass clazz = (*env)->FindClass(env, "android/os/Debug");
if (clazz)
{
jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapAllocatedSize", "()J");
if (mid)
{
return (*env)->CallStaticLongMethod(env, clazz, mid);
}
}
return -1L;
}
static long getNativeHeapSize(JNIEnv *env)
{
jclass clazz = (*env)->FindClass(env, "android/os/Debug");
if (clazz)
{
jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapSize", "()J");
if (mid)
{
return (*env)->CallStaticLongMethod(env, clazz, mid);
}
}
return -1L;
}
実際には、これらのJavaメソッドはネイティブメソッドそのものです。 http://androidxref.com/source/xref/frameworks/base/core/jni/android_os_Debug.cpp(cpp-source)によれば 'mallinfo()'を使って 'uordblks'(' getNativeHeapAllocatedSize() ')と' usmblks'( 'getNativeHeapSize()') –
@ super-qua、Tankあなたはそんなに! – CAMOBAP
Debug.getNativeHeapAllocatedSize()
とDebug.getNativeHeapSize()
リターン情報。 C++の/proc/self/statm
を簡単に解析し、VmRSSというメトリックを得ることができます。
- 1. アンドロイドコマンドで現在実行中のアプリケーションのメモリ使用量を調べて、メモリの使用量を確認するにはどうすればよいですか?
- 2. C#/。NET:辞書のメモリ使用量
- 3. 私のCプログラムのCPU使用量とメモリ使用量を表示したい
- 4. C:メモリ使用量は、私が実行
- 5. プロセスがLinuxで使用している物理メモリの量を調べる
- 6. メモリ使用量を調べるときにGC_FOR_ALLOCを「深刻」にしますか?
- 7. C#でのイテレータのメモリ使用量
- 8. C#入力された数字の量を調べるには?
- 9. ダイナミックタイプのメモリ使用量をC#
- 10. すべての16 GBメモリを使用したApache、プロセスとメモリ使用量を制限する方法は?
- 11. TomcatのメモリとCPU使用量を調整する
- 12. C#のスレッドのメモリ使用量
- 13. Windows 10でのメモリ使用量、CPU使用量、ディスク使用量を取得するUWP C#
- 14. 私のchar *に必要なメモリの量を調べる方法は?
- 15. C++でメモリ使用量を追跡し、メモリ消費量を評価する
- 16. メモリ使用量を減らす、C、CodeChef
- 17. Magick.NET C# - メモリの大量使用
- 18. C malloc、ポピュレート時のメモリ使用量
- 19. 私のアンドロイドアプリケーションでc/C++/objective cのようなネイティブコードを使用するには?
- 20. LibGdxでのメモリ使用量
- 21. メモリ使用量
- 22. C++ ADLを使ってテンプレートのすべてのインスタンスを調べる方法は?
- 23. JavaでのスレッドのCPU /メモリ使用量を調整しますか?
- 24. Cプログラムで使用されているメモリのピーク量を取得
- 25. ビジュアルスタジオ2017(C++)のメモリ使用量を追跡する方法は?
- 26. C++からWindows APIを使ってアプリケーションのCPU使用量やディスク使用量を取得する方法は?
- 27. フォアグラウンドサービス用のメモリ使用量
- 28. C#で書かれた奇妙なメモリ使用パターンWindowsフォームアプリケーション
- 29. C++を使ってFlashの要素を調べる方法
- 30. Android NDK:すべての仕事にC++を使用できますか?
一つの方法は、 'new'と' DELETE'演算子をオーバーライドして、いくつかの簿記を行うことです。 – user1095108