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

指定CPU

-C 或 --cpu 选项:可以指定程序运行在哪个 CPU 核心上。例如,perf record -C 0 ./programper stat -C 0 ./program将程序运行在 CPU 核心 0 上。

-a 或 --all-cpus 选项:可以让程序在所有可用的 CPU 核心上运行。例如,perf record -a ./programper stat -a ./program 将程序运行在所有 CPU 核心上。
通过指定或限制 CPU,可以确保程序使用相同的 CPU 资源,从而更准确地对比运行时长。

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

重复

-r <次数>或–repeat=<次数>:指定重复执行性能统计的次数。可以获得多个采样结果的平均值。
perf stat -r 5 ./my_program这条命令将会对./my_program程序进行五次性能统计。

可加--table 打印每轮的更多信息(每次的程序执行持续时间)

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!"
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值