this answerからjavaを使用して簡単に実行できることがわかりましたが、C#.NETとxamarinライブラリを使用してアプリケーションを作成している場合、それを行う方法はまだ見つかりませんでした。このフレームワークを使用して同じデータ(現在のヒープサイズ、最大ヒープサイズ)を取得する方法は?アンドロイドアプリケーションが使用している現在のヒープサイズを取得する方法は?
ありがとうございます。
this answerからjavaを使用して簡単に実行できることがわかりましたが、C#.NETとxamarinライブラリを使用してアプリケーションを作成している場合、それを行う方法はまだ見つかりませんでした。このフレームワークを使用して同じデータ(現在のヒープサイズ、最大ヒープサイズ)を取得する方法は?アンドロイドアプリケーションが使用している現在のヒープサイズを取得する方法は?
ありがとうございます。
私はあなたがこのような何かを探していたとします
long memory = GC.GetTotalMemory(true);
それは、現在割り当てされると考えられたバイト数を取得します。
別のオプションもあります。
Process currentProc = Process.GetCurrentProcess();
long memoryUsed = currentProc.PrivateMemorySize64;
あなたはPrivateMemorySize64
プロパティを読み取ることによって、メモリ使用量を決定します。この操作をサポートするには、using System.Diagnostics;
の参照が必要です。
あなたはこれを行うことができます。これらの値は、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;
注意を。特に、報告されている空き領域の量は、1回のリクエストでどれくらい割り当てることができるかを示していません。Androidのヒープは、多くの場合断片化に苦しんでいます。 – CommonsWare
私は、それが私のために要求されて以来、とにかくそれらのデータが必要です..しかし、ありがとう – Fabiotk