动态捕获CPU和内存使用情况

gag*_*eet 6 c++ shell performance memory-management cpu-usage

我正在运行一个shell脚本来执行一个c ++应用程序,它测量api的性能.我可以捕获api的延迟(返回给定参数集的值所花费的时间),但我也希望以5-10秒的间隔捕获cpu和内存使用.

有没有办法在不影响系统性能的情况下执行此操作,并且在同一个脚本中也是如此?我找到了许多例子,可以在外面(独立地)执行我们正在运行的脚本; 但不是我们可以在同一个脚本中执行的操作.

Dra*_*sha 1

我建议使用“ time ”命令和“ vmstat ”命令。第一个将给出可执行文件执行的 CPU 使用情况,第二个将给出系统的 CPU/内存/IO 的定期(即每秒一次)转储。

例子:

time dd if=/dev/zero bs=1K of=/dev/null count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 0.738194 seconds, 1.4 GB/s
0.218u 0.519s 0:00.73 98.6%     0+0k 0+0io 0pf+0w <== that's time result
Run Code Online (Sandbox Code Playgroud)