ubuntu程序性能分析

文章目录

    • time
    • perf
    • valgrind
    • ubuntu 重复执行命令

在Ubuntu上,可以使用一些工具来测量两段程序的计算量,如下所示:

time

  1. time命令:time命令可以用于测量程序的执行时间。在终端中运行以下命令来执行程序并测量其执行时间:

    time ./program
    

    这将输出程序的执行时间,包括用户时间、系统时间和实际时间。
    在运行的程序之前加 time 最后得出三个时间 real、 user、 sys。

    • real是程序的实际运行时间。从程序开始到程序执行结束时所消耗的时间,包括CPU的用时和所有延迟程序执行的因素的总和。
    • sys是内核态的时间。
    • user是用户态的时间。
      单核情况,real远远大于user和sys之和。

CPU用时被划分为user和sys两块。user表示程序本身,以及它所调用的库中的子例程使用的时间。sys是由程序直接或间接调用的系统调用执行的时间。

perf

  1. perf命令:perf命令是一个强大的性能分析工具,可以用于测量程序的各种指标,如CPU周期、缓存命中率等。在终端中运行以下命令来使用perf命令测量程序的计算量:

    perf stat ./program
    

    这将输出程序的各种性能指标,包括CPU周期、指令数等。

  • task-clock (msec): 事件表示目标任务真正占用处理器的时间,单位是毫秒。也称任务执行时间
    cpu处理task所消耗的时间,表示目标任务真正占用处理器的时间,单位ms,CPUs utilized表示cpu使用率, 该值越高代表程序是CPU bound(计算密集型)而非IO bound(I/O密集型)
  • XXX seconds time elapsed:系程序持续时间

https://www.cnblogs.com/wx170119/p/11855263.html
https://zhuanlan.zhihu.com/p/445260558

valgrind

  1. valgrind工具:valgrind是一个用于调试和性能分析的工具集,其中包括了多个工具,如memcheck、cachegrind等。可以使用cachegrind工具来测量程序的缓存命中率。在终端中运行以下命令来使用cachegrind工具测量程序的计算量:

    valgrind --tool=cachegrind ./program
    

    这将输出程序的缓存命中率和其他相关信息。

以上工具可以帮助测量程序的计算量,并提供各种性能指标和分析结果。可以根据具体需求选择合适的工具进行测量。

ubuntu 重复执行命令

在Ubuntu中,可以使用for循环来重复执行一条指令50次。:
打开终端(Terminal)。
输入以下命令并按Enter键打开一个新的行:

for i in {1..50}; do <你的指令>; done

将 <你的指令> 替换为想要重复执行的指令。按Enter键执行该命令,指令将会被重复执行50次。

例如,如果想要重复执行echo "Hello, World!"指令50次,你可以输入以下命令:

for i in {1..50}; do echo "Hello, World!"; done
``

这样,echo "Hello, World!"指令将会被重复执行50次,每次输出"Hello, World!"

你可能感兴趣的:(算法)