测量C代码执行时间(Linux)

5
我想使用Linux来测量C代码段的执行时间。 我在代码段开始时取一个时间戳,在结束时再取一个时间戳。 但是我不知道如何保护代码免受IRQ和高优先级任务的上下文切换的影响。程序在用户空间运行! 代码段很短,所以不要担心会卡住系统。 有人知道这种保护的简单解决方案吗?

你正在尝试解决哪个有意义的问题? - autistic
当你将鼠标悬停在“time-mea..”标签上时,请注意,没有关注者。有一些测试和性能标签拥有更多的关注者。祝好运。 - shellter
1
用户空间代码无法执行此类操作。可能,您能做的最好的事情就是测量10000次并取平均值。另一种方法是模拟CPU。此外,您还可以测量其他东西而不仅仅是时间。 - Powerslave
此外,如果可用,使用CLOCK_PROCESS_CPUTIME_IDCLOCK_THREAD_CPUTIME_IDclock_gettime函数。 - Daniel Fischer
命令行选项可接受吗?请尝试使用 time <program> [args]/usr/bin/time -v <program> [args] - GRAYgoose124
1个回答

3

您可以使用getrusage(2)来获取CPU时间,而不仅仅是测量实际时间。这应该能够让您得到想要的答案,而不必诉诸于阻止其他程序运行等可疑行为。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接