Ben NDK kullanarak Android için C + + yazılan bir oyun port ediyorum. Çalışırken ne kadar hafıza tükettiğini bilmem gerek. C++ ile yazılmış Android uygulamasının bellek kullanımını bulmak için programlı bir şekilde arıyorum.Nasıl NDK kullanarak yazılan benim C++ uygulaması yazılan bellek uygulaması nasıl bulunur?
cevap
Java olarak, birlikte kullanılan ayrılan yerli bellek/kontrol edebilirsiniz:
Debug.getNativeHeapAllocatedSize()
Debug.getNativeHeapSize()
Bkz: JonnyBoy en Yanıta göre
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapAllocatedSize%28%29
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapSize%28%29
iki işlev görür. malloc()
ve ilgili işlevler sadece tarafından gerçekleştirilen bellek ayırmaları konusunda
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;
}
Aslında bu java yöntemleri yerel yöntemlerin kendileridir. Http://androidxref.com/source/xref/frameworks/base/core/jni/android_os_Debug.cpp (cpp-source) 'a göre "mallinfo()" yi kullanabilir ve "uordblks" ('uordblks') için değerleri okuyabilirsiniz. getNativeHeapAllocatedSize() 've' usmblks' (getNativeHeapSize() ') –
@ super-qua, Tank Çok fazla! – CAMOBAP
Debug.getNativeHeapAllocatedSize()
ve Debug.getNativeHeapSize()
dönüş bilgileri. C++ 'dan /proc/self/statm
kolayca ayrıştırabilir ve VmRSS metrik değerini alabilirsiniz.
- 1. ndk uygulaması nasıl oluşturulur/derlenir?
- 2. C# Dinamik olarak yazılan dil
- 3. Javascript Yazılan Nesnelerin Serileştirilmesi
- 4. C++ uygulaması qt kullanarak, gnuplot'un nasıl ekleneceği
- 5. JAX-RS response.getEntity yazılan
- 6. bağımlı yazılan 'ZipVector' Applicatives
- 7. maruz enum yazılan özellikler
- 8. Php yazılan veriler
- 9. Güçlü yazılan Windows Formları
- 10. Android Ön Yükleme NDK Uygulaması
- 11. Zaten Yazılan CodeIgniter Kodu Kohana'ya Nasıl Taşınır?
- 12. Nginx önbellek yeniden yazılan varlıkları nasıl yapabilirim?
- 13. Sağdan sola yazılan diller Python
- 14. C# Windows Konsol uygulaması, etkileşimli olarak çalıştırılıp çalıştırılmadığını nasıl söyler
- 15. Yazılan dizi oluşturma TypeScript 0.9.0.1
- 16. Android ve performansı için Pure C++ uygulaması
- 17. Güçlü Yazılan DataSet'lerle İlgili Sorun
- 18. Web2py çerçevesini kullanarak bir @mention (arkadaşların etiketlenmesi) uygulaması
- 19. Phonegap uygulamasında bellek sızıntısı nasıl bulunur
- 20. F #, Nominal veya Yapısal Yazılan
- 21. Dosyaya yazılan dizeler, satır sonlarını koruyamıyor
- 22. nasıl Saas web uygulaması
- 23. Publishing C# konsolu uygulaması
- 24. Form gönderilmesini jquery ile yazılan veri göndermeyi
- 25. C# uygulaması ile proxy nasıl kullanılır
- 26. .NET: Genel yazılan sınıf içinde türü nasıl kontrol edilir?
- 27. Hangi .NET kitaplığında yazılan koleksiyonlar var?
- 28. Raylar Tekli Tablo Devralma: Tür alanına yazılan değer nasıl yazılır
- 29. benim app bir android uygulaması
- 30. giriş çıkış dosyasına yazılan sed output
tek yön 'new' ve' delete' operatörü geçersiz kılmak ve bazı muhasebe yapmaktır. – user1095108