最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.NET?Core使用CZGL.SystemInfo庫(kù)獲取主機(jī)運(yùn)行資源

 更新時(shí)間:2022年02月24日 09:22:56   作者:癡者工良  
這篇文章介紹了.NET?Core使用CZGL.SystemInfo庫(kù)獲取主機(jī)運(yùn)行資源的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

簡(jiǎn)介

CZGL.SystemInfo 是一個(gè)支持 Windows 和 Linux 的資源信息獲取庫(kù),用于獲取系統(tǒng)環(huán)境、機(jī)器資源信息、系統(tǒng)資源使用情況。

Nuget 搜索 CZGL.SystemInfo 即可安裝。

類庫(kù)中每一個(gè)屬性和方法,我都加上了注釋,調(diào)用時(shí)可以看得到。

平臺(tái)通用

CZGL.SystemInfo 命名空間下,有個(gè) EnvironmentInfo 靜態(tài)類,用于獲取各種信息。

CZGL.SystemInfo.Info 命名空間中,有三個(gè)類型,用于獲取和記錄不同類型的信息。

MachineRunInfo 用來(lái)獲取機(jī)器運(yùn)行使用的資源信息;

SystemPlatformInfo 用來(lái)獲取系統(tǒng)平臺(tái)信息;

SystemRunEvnInfo 獲取系統(tǒng)屬性信息;

EnvironmentInfo.GetEnvironmentVariables() 用于獲取系統(tǒng)所有的環(huán)境變量。

獲取某個(gè)屬性信息

你可以這樣使用

            // new實(shí)例獲取
            MachineRunInfo m = new MachineRunInfo();
            Console.WriteLine("當(dāng)前進(jìn)程已用內(nèi)存" + m.ThisUsedMem);

上面三個(gè)類型中,都有一個(gè)靜態(tài)實(shí)例,也可以這樣使用

            Console.WriteLine("當(dāng)前進(jìn)程已用內(nèi)存" + MachineRunInfo.Instance.ThisUsedMem);

MachineRunInfo 、SystemPlatformInfo 、 SystemRunEvnInfo 三個(gè)類型,直接使用屬性即可輸出信息。

獲取所有屬性信息

如果你想一次性輸出到控制臺(tái)或者做一個(gè)統(tǒng)計(jì),可以使用 EnvironmentInfo 中的方法來(lái)快速生成信息。

如果當(dāng)前系統(tǒng)是中文,會(huì)輸出中文備注。

            // 注意,一些資源的單位都是 kb

            // 獲取系統(tǒng)平臺(tái)信息
            KeyValuePair<string, object>[] a = env.GetSystemPlatformInfoValue();
            // 獲取系統(tǒng)運(yùn)行屬性信息
            KeyValuePair<string, object>[] b = env.GetSystemRunInfoValue();
            // 獲取機(jī)器資源信息
            KeyValuePair<string, object>[] c = env.GetMachineInfoValue();
            // 獲取系統(tǒng)所有環(huán)境變量
            KeyValuePair<string, object>[] d = env.GetEnvironmentVariables();

打印示例

            Console.WriteLine("\n系統(tǒng)平臺(tái)信息:\n");
            foreach (var item in a)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\n系統(tǒng)運(yùn)行屬性信息:\n");
            foreach (var item in b)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\n機(jī)器資源信息:\n");
            foreach (var item in c)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\n系統(tǒng)所有環(huán)境變量:\n");
            foreach (var item in d)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

輸出(部分顯示)

系統(tǒng)平臺(tái)信息:

運(yùn)行框架    :    .NET Core 3.1.0
操作系統(tǒng)    :    Microsoft Windows 10.0.17763
操作系統(tǒng)版本    :    Microsoft Windows NT 6.2.9200.0
平臺(tái)架構(gòu)    :    X64


系統(tǒng)運(yùn)行屬性信息:

機(jī)器名稱    :    aaaa-PC
當(dāng)前關(guān)聯(lián)用戶名    :    aaa
用戶網(wǎng)絡(luò)域名    :    aaa-PC
系統(tǒng)已運(yùn)行時(shí)間(毫秒)    :    3227500
Web程序核心框架版本    :    3.1.0
是否在交互模式中運(yùn)行    :    True
分區(qū)磁盤    :    D:\, E:\, F:\, G:\, H:\, X:\
系統(tǒng)目錄    :    X:\windows\system32


機(jī)器資源信息:

當(dāng)前進(jìn)程已使用物理內(nèi)存    :    20020
當(dāng)前進(jìn)程已占耗CPU時(shí)間    :    328.125
系統(tǒng)所有進(jìn)程各種使用的內(nèi)存    :    System.Collections.Generic.KeyValuePair`2[System.String,System.Int64][]
系統(tǒng)已使用內(nèi)存    :    5988340


系統(tǒng)所有環(huán)境變量:

VisualStudioVersion    :    16.0
CommonProgramFiles(x86)    :    x:\Program Files (x86)\Common Files

還可以使用 (string, KeyValuePair<string, object>[]) GetMachineInfo() 等,string 返回此類型信息的說(shuō)明。

Linux

Nuget 搜索 CZGL.SystemInfo.Linux 安裝。

在這個(gè)庫(kù)中,Linux 資源信息包括 進(jìn)程計(jì)量,內(nèi)存計(jì)量,CPU計(jì)量,虛擬內(nèi)存計(jì)量,各種進(jìn)程運(yùn)行信息計(jì)量。

要通過(guò)實(shí)例化 DynamicInfo 才能獲取。

有 5 個(gè)對(duì)象用于映射相應(yīng)信息。

  • Tasks:用于統(tǒng)計(jì)進(jìn)程數(shù)量,處于不同狀態(tài)下的進(jìn)程數(shù)。
  • CpuState:CPU 使用情況,CPU 各種負(fù)載信息。
  • Mem:物理內(nèi)存和緩存使用情況。
  • Swap:虛擬內(nèi)存使用情況。
  • PidInfo:一個(gè)進(jìn)程的運(yùn)行資源信息。

他們都有一個(gè) IsSuccess 屬性,用來(lái)判斷是否能正常獲取到 Linux 的信息。

實(shí)例化獲取對(duì)象

            DynamicInfo info = new DynamicInfo();

直接使用

可以通過(guò)方法獲取到相應(yīng)的對(duì)象。

            var item = info.GetTasks();
            Console.WriteLine("系統(tǒng)中共有進(jìn)程數(shù)    :" + item.Total);
            Console.WriteLine("正在運(yùn)行的進(jìn)程數(shù)    :" + item.Running);

批量獲取

以下是批量獲取的示例,每個(gè)屬性和屬性值生成一個(gè)鍵值對(duì),可以批量獲取信息列表。

如果當(dāng)前系統(tǒng)是中文,會(huì)輸出中文備注。

            // 獲取進(jìn)程統(tǒng)計(jì)
            KeyValuePair<string, object>[] a = info.GetRefTasks();

            // 獲取CPU資源統(tǒng)計(jì)
            KeyValuePair<string, object>[] b = info.GetRefCpuState();

            // 獲取內(nèi)存統(tǒng)計(jì)
            KeyValuePair<string, object>[] c = info.GetRefMem();

            // 獲取虛擬內(nèi)存統(tǒng)計(jì)
            KeyValuePair<string, object>[] d = info.GetRefSwap();

            Dictionary<int, PidInfo> dic = info.GetPidInfo();

            Console.WriteLine("\n進(jìn)程統(tǒng)計(jì):\n");
            foreach (var item in a)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\nCPU資源統(tǒng)計(jì):\n");
            foreach (var item in b)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\n內(nèi)存統(tǒng)計(jì):\n");
            foreach (var item in c)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\n獲取虛擬內(nèi)存統(tǒng)計(jì):\n");
            foreach (var item in d)
            {
                Console.WriteLine($"{item.Key}    :    {item.Value}");
            }

            Console.WriteLine("\n\n 各個(gè)進(jìn)程使用的資源:\n");
            Console.WriteLine("  進(jìn)程Id  進(jìn)程名稱  所屬用戶    優(yōu)化級(jí)  高低優(yōu)先級(jí)  虛擬內(nèi)存   物理內(nèi)存   共享內(nèi)存 進(jìn)程狀態(tài)  占用系統(tǒng)CPU(%)   占用內(nèi)存(%d) ");

            foreach (var item in dic)
            {
                Console.WriteLine($"{item.Key}  {item.Value.Command}  {item.Value.User}  {item.Value.PR}  " +
                                  $"{item.Value.Nice}  {item.Value.VIRT}  {item.Value.RES}  {item.Value.SHR}  " +
                                  $"{item.Value.State}  {item.Value.CPU}  {item.Value.Mem}");
            }
        }

輸出

進(jìn)程統(tǒng)計(jì):

Total    :    93
Running    :    1
Sleeping    :    59
Stopped    :    0
Zombie    :    0


CPU資源統(tǒng)計(jì):

UserSpace    :    1
Sysctl    :    0.6
NI    :    0
Idolt    :    98.3
WaitIO    :    0.1
HardwareIRQ    :    0
SoftwareInterrupts    :    0


內(nèi)存統(tǒng)計(jì):

Total    :    1009048
Used    :    334040
Free    :    85408
Buffers    :    589600
CanUsed    :    675008


獲取虛擬內(nèi)存統(tǒng)計(jì):

Total    :    0
Used    :    0
Free    :    0
AvailMem    :    505744

到此這篇關(guān)于.NET Core使用CZGL.SystemInfo庫(kù)獲取主機(jī)運(yùn)行資源的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家

相關(guān)文章

  • Blazor數(shù)據(jù)綁定用法

    Blazor數(shù)據(jù)綁定用法

    這篇文章介紹了Blazor數(shù)據(jù)綁定的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • .Net行為型設(shè)計(jì)模式之狀態(tài)模式(State)

    .Net行為型設(shè)計(jì)模式之狀態(tài)模式(State)

    這篇文章介紹了.Net行為型設(shè)計(jì)模式之狀態(tài)模式(State),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • WPF框架Prism中ViewModelLocator用法介紹

    WPF框架Prism中ViewModelLocator用法介紹

    這篇文章介紹了WPF框架Prism中ViewModelLocator的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • ASP.NET Core中的Options選項(xiàng)模式

    ASP.NET Core中的Options選項(xiàng)模式

    這篇文章介紹了ASP.NET Core中的Options選項(xiàng)模式,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • .Net使用XtraGrid控件綁定數(shù)據(jù)

    .Net使用XtraGrid控件綁定數(shù)據(jù)

    這篇文章介紹了.Net使用XtraGrid控件綁定數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • ASP.NET中FileUpload文件上傳控件應(yīng)用實(shí)例

    ASP.NET中FileUpload文件上傳控件應(yīng)用實(shí)例

    本文主要介紹FileUpload文件上傳控件在實(shí)際開發(fā)中經(jīng)常遇到的問(wèn)題并給出解決方法,希望對(duì)大家有所幫助。
    2016-04-04
  • ASP.NET MVC中_ViewStart.cshtml作用介紹

    ASP.NET MVC中_ViewStart.cshtml作用介紹

    這篇文章介紹了ASP.NET MVC中_ViewStart.cshtml的作用,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 部署ASP.NET?Core程序到Linux系統(tǒng)

    部署ASP.NET?Core程序到Linux系統(tǒng)

    這篇文章介紹了部署ASP.NET?Core程序到Linux系統(tǒng)的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03
  • 詳解ABP框架中的數(shù)據(jù)過(guò)濾器與數(shù)據(jù)傳輸對(duì)象的使用

    詳解ABP框架中的數(shù)據(jù)過(guò)濾器與數(shù)據(jù)傳輸對(duì)象的使用

    ABP框架是一個(gè)基于ASP.NET的Web開發(fā)框架,這里我們來(lái)詳解ABP框架中的數(shù)據(jù)過(guò)濾器與數(shù)據(jù)傳輸對(duì)象的使用,需要的朋友可以參考下
    2016-06-06
  • .NET4.0版本中基于任務(wù)的異步模式(TAP)

    .NET4.0版本中基于任務(wù)的異步模式(TAP)

    這篇文章介紹了.NET4.0版本中基于任務(wù)的異步模式(TAP),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

镇平县| 酒泉市| 新竹市| 仁化县| 屯门区| 乐安县| 博罗县| 商南县| 射洪县| 余干县| 登封市| 什邡市| 宁都县| 冀州市| 辽阳县| 永春县| 新源县| 临城县| 克拉玛依市| 泌阳县| 河南省| 盐山县| 曲麻莱县| 昔阳县| 明水县| 周至县| 会理县| 漯河市| 同江市| 龙江县| 涿鹿县| 于田县| 聊城市| 左云县| 柞水县| 娱乐| 丹棱县| 正宁县| 广平县| 新化县| 广汉市|