gpt4 book ai didi

c - 如何在 Linux 多线程环境中测量函数的总执行时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:33 24 4
gpt4 key购买 nike

我想测量在 Linux 中花费在 C 函数上的总时间。不同线程可能同时调用该函数,花费的时间应该加在一起。我如何从 Linux 进行这种测量?我查看了 clock() 函数并计算了函数开始和结束之间的差异。

我在 Stackoverflow 的这个线程中找到了一个使用 clock() 的解决方案: How to measure total time spent in a function?

但据我了解,这还包括在测量期间来自线程的 CPU 处理执行一些其他功能。这是一个正确的假设吗?

在 Linux 中是否有其他方法可以进行这种测量?

最佳答案

您的问题表明您正在使用 Linux。

您可以使用 getrusage(2)使用 RUSAGE_THREAD 参数进行系统调用,这将为您提供当前运行线程的累积统计信息。

通过比较 ru_utimeru_stime 中的内容,在函数运行前后,您应该能够确定函数在 CPU 中累积了多少时间时间,对于当前正在运行的线程。

起泡、冲洗、重复所有线程,然后将它们加起来。

关于c - 如何在 Linux 多线程环境中测量函数的总执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43232157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com