根据不同参数对脚本性能和 CPU/RAM 消耗进行基准测试

根据不同参数对脚本性能和 CPU/RAM 消耗进行基准测试

我有一个图像处理 shell 脚本,可以提供不同的参数集,这些参数集都会为我产生有效的输出。由于此脚本将在云上运行,因此我试图确定资源(CPU/RAM)使用率最低的参数集。有什么工具可以用来进行基准测试吗?我正在寻找可以给我脚本使用的总 CPU 周期或任何其他相关数据/指标以供比较的东西。

操作系统:Ubuntu 20.04,Shell:BASH

我正在寻找的示例:

magical-benchmark-tool -c pdftoppm -png test.pdf test

输出

time (seconds)   processor cycles   max memory used (MB)    mean memory used (MB)
--------------   ----------------   --------------------    --------------------
19               1253               250                     128

谢谢你!

答案1

您没有指定使用哪个 shell,因此我假设使用 Bash。


对于 CPU 使用率,您可以使用strace

strace -c script.sh

对于简单的 Hello World 脚本

#!/bin/bash
echo "Hello World"

输出

Hello World
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 17.70    0.000253          14        18           mmap
 11.69    0.000167          20         8           openat
  9.59    0.000137           9        14           rt_sigaction
  7.35    0.000105          13         8           fstat
  6.30    0.000090          15         6           mprotect
  5.60    0.000080          10         8           close
  5.32    0.000076          12         6           read
  5.11    0.000073          14         5           stat
  4.90    0.000070          70         1           execve
  3.50    0.000050          10         5           rt_sigprocmask
  2.59    0.000037          37         1           write
  2.24    0.000032          10         3           lseek
  2.24    0.000032          10         3           brk
  2.10    0.000030          10         3         2 ioctl
  1.89    0.000027           9         3         1 fcntl
  1.40    0.000020          20         1           munmap
  1.40    0.000020          20         1         1 access
  1.33    0.000019           9         2           getpid
  1.26    0.000018           9         2           prlimit64
  0.77    0.000011          11         1           dup2
  0.70    0.000010          10         1           sysinfo
  0.70    0.000010          10         1           getppid
  0.70    0.000010          10         1           arch_prctl
  0.63    0.000009           9         1           uname
  0.63    0.000009           9         1           getuid
  0.63    0.000009           9         1           getgid
  0.63    0.000009           9         1           getpgrp
  0.56    0.000008           8         1           geteuid
  0.56    0.000008           8         1           getegid
------ ----------- ----------- --------- --------- ----------------
100.00    0.001429                   108         4 total

对于内存,您可以使用top
运行时,按o并键入例如COMMAND=bash以显示COMMAND等于的列中的条目bash

相关内容