我正在尝试解压缩一个巨大的 .gz 文件。我想知道是否有一种方法可以分析此命令以获取命令执行时的 CPU 利用率
我正在寻找这样的东西
gunzip file.gz | profileTheCommand
答案1
将输出通过管道传输gunzip
到分析工具不会让您走得太远,因为gunzip
不会输出太多运行时信息。
不过,您可以使用标准的 Linux 分析工具,例如perf
。查看以下教程:https://perf.wiki.kernel.org/index.php/Tutorial
例如,以下是解压约 100 MB 文件的配置文件统计信息:
$ perf stat -B tar xJf ghc-8.0.2-x86_64-deb8-linux.tar.xz
Performance counter stats for 'tar xJf ghc-8.0.2-x86_64-deb8-linux.tar.xz':
14959.293532 task-clock (msec) # 0.737 CPUs utilized
340822 context-switches # 0.023 M/sec
0 cpu-migrations # 0.000 K/sec
2401 page-faults # 0.161 K/sec
<not supported> cycles
<not supported> instructions
<not supported> branches
<not supported> branch-misses
20.299894777 seconds time elapsed
根据您的内核版本,您可能会看到略有不同的输出。另请注意,perf
可能无法编译以了解特定 CPU 中发生的所有事件。这就是<not supported>
上面的消息的内容。
答案2
瓶颈可能是读/写,而不是 CPU。无论如何,时间(1)应该说明一切。