window bat cmd 获取cpu 利用率(使用率) 方式收集

window bat cmd 获取cpu 利用率(使用率)跟 性能计数器一致,方式收集

1. typeperf (1秒一输出)

typeperf "processor(_total)\% processor time"

若是只要执行一次,末尾添加  -sc 1,如下:

typeperf "processor(_total)\% processor time" -sc 1

2. powershell

Powershell "Get-Counter '\Processor(*)\% Processor Time' | Select -Expand Countersamples |Select InstanceName, CookedValue"
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -Continuous

3.wmic

wmic cpu get loadpercentage

5. bat 

@echo off
for /f "tokens=2 delims==" %%a in ('wmic path Win32_PerfFormattedData_PerfOS_Processor get PercentProcessorTime /value^|findstr "PercentProcessorTime"') do (
set UseCPU=%%a
)
echo CPU使用率:%UseCPU%%%
pause

获取到跟任务管理器不大一样,性能监视器(perfmon)又是一致的。

cmd 输入 perfmon 监视项选择 Processor Time

.Net 有 PerformanceCounter

注意事项:

net core web 部署在iis 的话,需要更改程序池标识 ApplicationPoolIdentity --> LocalSystem

否则 bat cmd 之类不会返回结果

参考链接

1. How to monitor CPU and network utilization

2.md脚本实现查看当前cpu占用

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在 WPF 中,可以使用 System.Diagnostics 命名空间下的 PerformanceCounter 类和 System.Windows.Threading 命名空间下的 DispatcherTimer 类来获取系统 CPU 利用率,并实现每秒更新。具体步骤如下: 1. 引入 System.Diagnostics 和 System.Windows.Threading 命名空间: ``` using System.Diagnostics; using System.Windows.Threading; ``` 2. 创建 PerformanceCounter 对象: ``` PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); ``` 其中,第一个参数 "Processor" 表示 CPU 监视器,第二个参数 "% Processor Time" 表示 CPU 使用率,第三个参数 "_Total" 表示所有 CPU 核心的总体使用率。 3. 创建 DispatcherTimer 对象: ``` DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(1); ``` 其中,TimeSpan.FromSeconds(1) 表示每隔 1 秒触发一次 Tick 事件。 4. 绑定 Tick 事件处理方法: ``` timer.Tick += new EventHandler(OnTimerTick); ``` 5. 实现 Tick 事件处理方法,读取并更新 CPU 使用率: ``` void OnTimerTick(object sender, EventArgs e) { float cpuUsage = cpuCounter.NextValue(); Console.WriteLine("CPU 使用率:{0}%", cpuUsage); } ``` 注意,第一次调用 NextValue 方法获取的是 0,因为需要先获取一次初始值,之后才能获取正确的 CPU 使用率。 6. 启动 Timer: ``` timer.Start(); ``` 完整示例代码如下: ``` using System; using System.Diagnostics; using System.Windows; using System.Windows.Threading; public partial class MainWindow : Window { private PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); public MainWindow() { InitializeComponent(); // 获取初始值 cpuCounter.NextValue(); // 创建 Timer DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromSeconds(1); timer.Tick += new EventHandler(OnTimerTick); timer.Start(); } void OnTimerTick(object sender, EventArgs e) { // 获取 CPU 使用率 float cpuUsage = cpuCounter.NextValue(); Console.WriteLine("CPU 使用率:{0}%", cpuUsage); } } ``` 注意,由于 WPF 应用程序是单线程的,因此不需要将 PerformanceCounter 对象定义为静态变量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值