我在树莓派 2 上运行 win10。使用 C#(和通用应用程序),我想知道是否有办法获得 CPU 使用率或内存使用率?
我的猜测是“不”,因为我似乎无法访问 PerformanceCounters,但也许有一个我还不知道的 hack?
我在树莓派 2 上运行 win10。使用 C#(和通用应用程序),我想知道是否有办法获得 CPU 使用率或内存使用率?
我的猜测是“不”,因为我似乎无法访问 PerformanceCounters,但也许有一个我还不知道的 hack?
您可以通过在端口 80 上向http://[yourpi]/api/resourcemanager/systemperf发送 HTTP GET 请求来访问提到的网页使用的数据。这将返回一个 JSON 块。这记录在设备上http://[yourpi]/restdocumentation.htm。
在我的 IoT 设备上 P/Invoke GetNativeSystemInfo 失败。该错误表明它找不到kernel32.dll。相同的代码在我的 Win10 桌面上按预期工作。
我将询问产品组有关以编程方式访问性能数据的问题。
马克·拉德伯恩 (MSFT)
默认情况下,HTTP 服务器在带有 W10 的 RPi2 的 80 端口上运行。只需打开您的网络浏览器,输入您的 RPi 的 IP,登录并单击性能 ( http://raspberrypi/SystemPerformance.htm )。给你!如果您想生成性能配置文件,请转到 Perf-Tracing ( http://raspberrypi/xperf.htm )。
我不知道它是否有效,但你可以GetNativeSystemInfo
尝试一下。
[StructLayout(LayoutKind.Sequential)]
internal struct SYSTEM_INFO
{
public ushort wProcessorArchitecture;
public ushort wReserved;
public uint dwPageSize;
public IntPtr lpMinimumApplicationAddress;
public IntPtr lpMaximumApplicationAddress;
public UIntPtr dwActiveProcessorMask;
public uint dwNumberOfProcessors;
public uint dwProcessorType;
public uint dwAllocationGranularity;
public ushort wProcessorLevel;
public ushort wProcessorRevision;
}
[DllImport("kernel32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
internal static extern void GetNativeSystemInfo(ref SYSTEM_INFO lpSystemInfo);
详细信息可以在这里找到:msdn