lhs*_*lhs 5 c# linux .net-core
如何在专门运行 Ubuntu 和 .NET 核心的计算机上找到总可用物理内存?大多数解决方案仅适用于完整的 .NET 和以下 .NET 核心代码片段——
ManagementClass mc = new ManagementClass ("Win32_ComputerSystem");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject item in moc)
m1 = Convert.ToUInt64(item.Properties["TotalPhysicalMemory"].Value);
Run Code Online (Sandbox Code Playgroud)
在 Windows 上正常工作,但在非 Windows 系统上返回 0。
小智 3
目前无法获取所有平台上的硬件信息,本期也提到了这一点: https: //github.com/dotnet/corefx/issues/22660
我认为从 .NET Core 2.1 开始,您可以使用 Process 类来获取进程内存,如本期所述: https: //github.com/dotnet/corefx/issues/26669
作为替代方案,在 Linux 上,您始终可以从 /proc 中的文件访问硬件和操作系统信息,对于内存,/proc/meminfo
您可以获取 MemTotal、MemFree 和许多其他信息。
然而,这种方法需要一些文件解析。
| 归档时间: |
|
| 查看次数: |
3355 次 |
| 最近记录: |