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

如何在命令行中循环执行mrjob脚本以测试不同核心数性能?

用命令行循环执行mrjob性能测试的方法

当然可以!不用每次手动重复输入命令太省心了,根据你使用的操作系统和Shell环境,这里有几种直接在命令行写循环的方案:

Linux/macOS(Bash Shell)

如果用的是Bash(大部分Linux发行版和macOS默认Shell),可以用for循环遍历你要测试的核心数:

基础循环执行

for cores in 1 2 3 4 5; do
  python example_script.py --num-cores $cores
done

这个命令会依次用1核、2核……5核运行你的脚本。

保存输出到日志文件(推荐)

如果需要记录每次测试的输出和性能数据,可以把结果重定向到单独的日志文件,方便后续分析:

for cores in 1 2 3 4 5; do
  echo "=== Starting test with $cores cores at $(date) ===" > output_${cores}cores.log
  python example_script.py --num-cores $cores >> output_${cores}cores.log 2>&1
done

这里2>&1是把错误输出也同步写入日志文件,避免遗漏报错信息。

Windows环境

命令提示符(Cmd)

在Cmd里用for循环的写法是:

for %c in (1, 2, 3, 4, 5) do python example_script.py --num-cores %c

注意:如果是写在批处理(.bat)文件里,要把%c改成%%c。

PowerShell

PowerShell的写法更灵活,用管道和ForEach-Object:

1..5 | ForEach-Object {
  python example_script.py --num-cores $_
}

同样可以保存日志:

1..5 | ForEach-Object {
  "=== Starting test with $_ cores at $(Get-Date)" | Out-File "output_${_}cores.log" -Append
  python example_script.py --num-cores $_ | Out-File "output_${_}cores.log" -Append
}

小提示

  • 如果不需要连续的核心数(比如测试1、3、5核),只要修改循环里的数字列表就行,比如Bash里改成for cores in 1 3 5; do ...
  • 如果脚本运行时间较长,可以在循环里加入时间记录,方便后续统计每个核心数下的运行耗时。

内容的提问来源于stack exchange,提问作者F.D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:05:48