2016-10-26 9 views
0

私のプロジェクトには、ラズベリーパイを熱くして温度センサーの入力に影響を与えるかどうかを調べる能力があります。私は私のラズベリーパイ2モデルBでWindows 10を使用しており、これについて十分な情報源を見つけることが困難なので、ここで尋ねています。IoTラズベリーパイ2 - それに負荷をかける

  • それは何らかの形で、おそらく可能なRAMの使用量が増加することを強制するか、またはそれを制限するかもしれないという点で、ラズベリーのためのユニバーサルアプリケーションとしてのVisual Studioからプログラムラズベリー時に負荷をかけることは可能ですか?もしそうなら、これのための最良の解決策は何でしょうか?

  • 普遍的なアプリケーションプロジェクトで既に実装されている関数によって、合計で使用するRAMの量をプログラムで確認する方法はありますか?

  • ラズベリーに「荷重をかける」方法がありますか、負荷がどれくらい負荷をかけているかを測定できますか?

どのような種類のヘルプも非常に高く評価されています。

+0

C++で簡単に実行できます。 –

+0

それはどうやって正確に行われますか? – Hansrutger

答えて

1

ユニバーサルアプリケーション プロジェクトですでに実装された機能によって、それは合計で を使用しているプログラムでどのくらいの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を使用して端末を確認できます。

関連する問題