首页 > 作文

.NET Core使用CZGL.SystemInfo库获取主机运行资源

更新时间:2023-04-04 17:55:27 阅读: 评论:0

简介

czgl.systeminfo 是一个支持 windows 和 linux 的资源信息获取库,用于获取系统环境、机器资源信息、系统资源使用情况。

nuget 搜索czgl.systeminfo即可安装。

类库中每一个属性和方法,我都加上了注释,调用时可以看得到。

平台通用

czgl.systeminfo 命名空间下,有个 environmentinfo 静态类,用于获取各种信息。

czgl.systeminfo.info 命名空间中,有三个类型,用于获取和记录不同类型的信息。

machineruninfo用来获取机器运行使用的资源信息;

systemplatforminfo用来获取系统平台信息;

systemrunevninfo获取宅捷修系统属性信息;

environmentinfo.getenvironmentvariables()用于获取系统所有的环境变量。

获取某个属性信息

你可以这样使用

            // new实例获取            machineruninfo m = new machineruninfo();            console.writeline("当前进程已用内存" + m.thisudmem);

上面三个类型中,都有一个静态实例,也可以这样使用

            console.writeline("当前进程已用内存" + machineruninfo.instance.thisudmem);

machineruninfosystemplatforminfosystemrunevninfo三个类型,直接使用属性即可输出信息。

获取所有属性信息

如果你想一次性输出到控制台或者做一个统计,可以使用 environmentinfo 中的方法来快速生成信息。

如果当前系统是中文,会输出中文备注。

            // 注意,一些资源的单位都是 kb            // 获取系统平台信息            keyvaluepair<string, object>[] a = env.getsystemplatforminfovalue();            // 获取系统运行属性信息            keyvaluepair<string, object>[] b = env.getsystemruninfovalue();            // 获取机器资源信息            keyvaluepair<string, object>[] c = env.getmachineinfovalue();            // 获取系统所有环境变量            keyvaluepair<string, object>[] d = env.getenvironmentvariables();

打印示例

            console.writeline("\n系统平台信息:\n");            foreach (var item in a)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\n系统运行属性信息:\n");            foreach (var item in b)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\n机器资源信息:\n");            foreach (var item in c)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\n系统所有环境变量:\n");            foreach (var item in d)            {                console.writeline($"{item.key}    :    {item.value}");            }

输出(部分显示)

系统平台信息:运行框架    :    .net core 3.1.0操作系统    :    microsoft windows 10.0.17763操作系统版本    :    microsoft windows nt 6.2.9200.0平台架构    :    x64系统运行属性信息:机器名称    :    aaaa-pc当前关联用户coreldraw11名    :    aaa用户网络域名    :    aaa-pc系统已运行时间(毫秒)    :    3227500web程序核心框架版本    :    3.1.0是否在交互模式中运行    :    true分区磁盘    :    d:\, e:\, f:\, g:\, h:\, x:\系统目录    :    x:\windows\system32机器资源信息:当前进程已使用物理内存    :    20020当前进程已占耗cpu时间    :    328.125系统所有进程各种使用的内存    :    system.collections.generic.keyvaluepair`2[system.string,system.int64][]系统已使用内存    :    5988340系统所有环境变量:visualstudioversion    :    16.0commonprogramfiles(x86)    :    x:\program files (x86)\common files

还可以使用(string, keyvaluepair<string, object>[]) getmachineinfo()等,string 返回此类型信息的说明。

linux

nuget 搜索czgl.systeminfo.linux安装。

在这个库中,linux 资源信息包括 进程计量,内存计量,cpu计量,虚拟内存计量,各种进程运行信息计量。

要通过实例化dynamicinfo才能获取。

有 5 个对象用于映射相应信息。

tasks:用于统计进程数量,处于不同状态下的进程数。cpustate:cpu 使用情况,cpu 各种负载信息。mem:物理内存和缓存使用情况。swap:虚拟内存使用情况。pidinfo:一个进程的运行资源信息。

他们都有一个 issuccess 属性,用来判断是否能正常获取到 linux 的信息。

实例化获取对象

            dynamicinfo info = new dynamicinfo();

直接使用

可以通过方法获取到相应的对象。

            var item = info.gettasks();            console.writeline("系统中共有进程数    :" + item.total);            console.writeline("正在运行的进程数    :" + item.running);

批量获取

以下是批量获取的示例,每个属性和属性值生成一个键值对,可以批量获取信息列表。

如果当前系统是中文,会输出中文备注。

            // 获取进程统计            keyvaluepair<string, object>[] a = info.getreftasks();            // 获取cpu资源统计            keyvaluepair<string, object>[] b = info.getrefcpustate();            // 获取内存统计            keyvaluepair<string, object>[] c = info.getrefmem();            // 获取虚拟内存统计            keyvaluepair<string, object>[] d = info.getrefswap();            dictionary<int, pidinfo> dic = info.getpidinfo();            console.writeline("\n进程统计:\n");            foreach (var item in a)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\ncpu资源统计:\n");            fo没了你我把哭当成了笑reach (var item in b)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\n内存统计:\n");            foreach (var item in c)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\n获取虚拟内存统计:\n");            foreach (var item in d)            {                console.writeline($"{item.key}    :    {item.value}");            }            console.writeline("\n\n 各个进程使用的资源:\n");            console.writeline("  进程id  进程名称  所属用户    优化级  高低优先级  虚拟内存   物理内存   共享内存 进程状态  占用系统cpu(%)   占用内存(%d) ");            foreach (var item in dic)            {  幼儿健康              console.writeline($"{item.key}  {item.value.command}  {item.value.ur}  {item.value.pr}  " +                                  $"{item.value.nice}  {item.value.virt}  {item.value.res}  {item.value.shr}  " +                                  $"{item.value.state}  {item.value.cpu}  {item.value.mem}");            }        }

输出

进挣钱最快的方法程统计:total    :    93running    :    1sleeping    :    59stopped    :    0zombie    :    0cpu资源统计:urspace    :    1sysctl    :    0.6ni    :    0idolt    :    98.3waitio    :    0.1hardwareirq    :    0softwareinterrupts    :    0内存统计:total    :    1009048ud    :    334040free    :    85408buffers    :    589600canud    :    675008获取虚拟内存统计:total    :    0ud    :    0free    :    0availmem    :    505744

到此这篇关于.net core使用czgl.systeminfo库获取主机运行资源的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com

本文发布于:2023-04-04 17:55:25,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/1db35c4dc1f1e8582e3cc04468502d07.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:.NET Core使用CZGL.SystemInfo库获取主机运行资源.doc

本文 PDF 下载地址:.NET Core使用CZGL.SystemInfo库获取主机运行资源.pdf

标签:信息   进程   系统   内存
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图