ubuntu程序性能分析

这篇具有很好参考价值的文章主要介绍了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次,你可以输入以下命令:文章来源地址https://www.toymoban.com/news/detail-792590.html

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

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

到了这里,关于ubuntu程序性能分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包