You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中跨Unix和Windows平台获取当前CPU使用率百分比?

跨平台R语言获取当前CPU使用率的可靠实现方式

以下是两种无需依赖Python、跨平台兼容的纯R实现方案,可解决Windows/Unix(Linux/macOS)下的CPU使用率获取需求:

方案一:使用processx包结合系统命令

processx包比基础的system()函数更稳定,能更安全地处理系统命令输出,避免格式解析错误。

library(processx)

get_cpu_usage <- function() {
  if (.Platform$OS.type == "windows") {
    # Windows平台调用wmic获取CPU负载
    cmd_result <- processx::run("wmic", args = c("cpu", "get", "loadpercentage"), stdout = TRUE)
    # 提取并清洗输出数据
    cpu_percent <- as.numeric(trimws(strsplit(cmd_result$stdout, "\n")[[1]][2]))
  } else {
    # Unix/Linux/macOS平台使用mpstat(需sysstat工具包,多数系统默认预装)
    cmd_result <- processx::run("mpstat", args = c("-P", "ALL", "1", "1"), stdout = TRUE)
    # 提取所有CPU核心的平均空闲率,计算总使用率
    cpu_avg_lines <- grep("Average:", cmd_result$stdout, value = TRUE)[-1]
    idle_rates <- sapply(strsplit(cpu_avg_lines, "\\s+"), function(x) as.numeric(x[12]))
    cpu_percent <- 100 - mean(idle_rates)
  }
  return(cpu_percent)
}

# 调用示例
get_cpu_usage()

优势:

  • 纯R依赖,无需额外安装Python;
  • 针对不同平台的系统命令做了适配,输出解析更严谨;
  • Unix平台用mpstat比top的输出格式更统一,避免不同系统版本的格式差异。

方案二:使用ps包(R原生跨平台进程监控工具)

ps包是R生态中维护活跃的进程监控库,支持直接获取系统级CPU时间数据,通过时间差计算使用率,结果更准确。

library(ps)

get_cpu_usage_ps <- function() {
  # 第一次采样CPU时间数据
  cpu_initial <- ps_system_cpu()
  # 等待1秒让系统产生可测量的CPU时间变化
  Sys.sleep(1)
  # 第二次采样
  cpu_final <- ps_system_cpu()
  
  # 计算总CPU时间和空闲时间的差值
  total_time_diff <- sum(cpu_final$times) - sum(cpu_initial$times)
  idle_time_diff <- cpu_final$times["idle"] - cpu_initial$times["idle"]
  
  # 计算CPU使用率百分比
  cpu_percent <- 100 * (total_time_diff - idle_time_diff) / total_time_diff
  return(cpu_percent)
}

# 调用示例
get_cpu_usage_ps()

优势:

  • 完全基于R原生API,无需调用外部系统命令;
  • 跨平台兼容性强,无需针对不同系统写分支逻辑;
  • 计算逻辑更底层,结果精度和可靠性更高。

对比现有方案的问题

  • 你之前用的Windowswmic命令方案:依赖base::system()处理输出,容易受系统语言、换行格式影响,processx能更好地规避这类问题;
  • reticulate+psutil方案:需要预先安装Python和psutil库,依赖链较长,在无Python环境的机器上无法使用;
  • benchmarkme包:仅能获取CPU硬件参数(如核心数、主频),不支持实时使用率监测。

内容的提问来源于stack exchange,提问作者Masoud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:20:52