c# - 查找计算机上的总物理内存、.NET core 2.1、c#、Ubuntu
问题描述
如何在专门运行 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);
在 Windows 上正常工作,但在非 Windows 系统上返回 0。
解决方案
目前您无法获取所有平台上的硬件信息,本期也提到了这一点: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 和许多其他信息。
然而,这种方法需要一些文件解析。
推荐阅读
- rest - 如果用户想要对其个人资料和个人资料图片执行操作,客户端是否应该为 API 发送两个不同的 HTTP 请求
- excel - 在两个 Excel 实例之间复制值得到运行时错误 9
- java - 如何在 RecyclerView 中获取单击项目的位置
- terraform-provider-azure - 如何使用 Terraform 启用 Application Insights?
- python - Python Selenium:日期选择器选择日期
- python - 检查列表中的重复项时循环中断?
- excel - 如何在 OneDrive 和 applications.com.Excel 之间自动移动文件
- java - 当类中有hashMap时如何使用Gson从json文件中读取对象
- elasticsearch - 如何在 Kibana 查询中搜索 500 个词条
- encryption - 使用初始化向量和填充正确实现 AES 128 加密