ユニバーサルアプリケーション プロジェクトですでに実装された機能によって、それは合計で を使用しているプログラムでどのくらいのRAM、チェックする方法はありますか?
あり、使用中の合計RAMを取得するには直接的なAPIはありませんが、あなたは利用可能なRAMは、C#で、使用され得ることができ、このようにそれを実行します。
[StructLayout(LayoutKind.Sequential)]
private class MEMORYSTATUSEX
{
public uint dwLength;
public uint dwMemoryLoad;
public ulong ullTotalPhys;
public ulong ullAvailPhys;
public ulong ullTotalPageFile;
public ulong ullAvailPageFile;
public ulong ullTotalVirtual;
public ulong ullAvailVirtual;
public ulong ullAvailExtendedVirtual;
public MEMORYSTATUSEX()
{
this.dwLength = (uint)Marshal.SizeOf(typeof(MEMORYSTATUSEX));
}
}
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool GlobalMemoryStatusEx([In, Out] MEMORYSTATUSEX lpBuffer);
// Alternate Version Using "ref," And Works With Alternate Code Below.
// Also See Alternate Version Of [MEMORYSTATUSEX] Defined As A Structure.
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("kernel32.dll", EntryPoint = "GlobalMemoryStatusEx", SetLastError = true)]
static extern bool _GlobalMemoryStatusEx(ref MEMORYSTATUSEX lpBuffer);
void GetProcessUsage()
{
MEMORYSTATUSEX data = new MEMORYSTATUSEX();
GlobalMemoryStatusEx(data);
System.Diagnostics.Debug.WriteLine(data.ullTotalPageFile + "\t\t" + data.ullAvailPageFile);
}
に他の方法はありますラズベリーに「荷重をかける」と はどれくらいの荷重を作用させて測定することができますか?
あなたはこれを試すことがあります。
List<byte[]> list = new List<byte[]>();
while (true)
{
var buf = new byte[1024 * 1024 * 50];
list.Add(buf);
System.Diagnostics.Debug.WriteLine("Allocating memory");
await Task.Delay(1000);
}
メモリはアプリのために使用することができる1ギガバイトのRAMとラズベリーパイ3の390メガバイトです。 512 MBモデルの場合は185MBと思われます。 Windows.System.MemoryManager.AppMemoryUsageLimitを使用して端末を確認できます。
C++で簡単に実行できます。 –
それはどうやって正確に行われますか? – Hansrutger