2017-01-18 9 views
2

this answerからjavaを使用して簡単に実行できることがわかりましたが、C#.NETとxamarinライブラリを使用してアプリケーションを作成している場合、それを行う方法はまだ見つかりませんでした。このフレームワークを使用して同じデータ(現在のヒープサイズ、最大ヒープサイズ)を取得する方法は?アンドロイドアプリケーションが使用している現在のヒープサイズを取得する方法は?

ありがとうございます。

+0

注意を。特に、報告されている空き領域の量は、1回のリクエストでどれくらい割り当てることができるかを示していません。Androidのヒープは、多くの場合断片化に苦しんでいます。 – CommonsWare

+0

私は、それが私のために要求されて以来、とにかくそれらのデータが必要です..しかし、ありがとう – Fabiotk

答えて

1

私はあなたがこのような何かを探していたとします

long memory = GC.GetTotalMemory(true); 

それは、現在割り当てされると考えられたバイト数を取得します。

別のオプションもあります。

Process currentProc = Process.GetCurrentProcess(); 
long memoryUsed = currentProc.PrivateMemorySize64; 

あなたはPrivateMemorySize64プロパティを読み取ることによって、メモリ使用量を決定します。この操作をサポートするには、using System.Diagnostics;の参照が必要です。

1

あなたはこれを行うことができます。これらの値は、Androidアプリの開発に特に有用ではないことを

//get max heap available to app 
var activityManager = (ActivityManager)activity.GetSystemService(Context.ActivityService); 
int maxHeap = activityManager.MemoryClass*1024; //KB 

//get current heap used by app 
Runtime runtime = Runtime.GetRuntime(); 
int usedHeap = (int)((runtime.TotalMemory() - runtime.FreeMemory())/1024.0f); //KB 

//get amount of free heap remaining for app 
int availableHeap = maxHeap - usedHeap; 
関連する問題