gpt4 book ai didi

c - Linux : Signal : SIGUSR1 : Signal Handler : Measuring execution time?

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

我正在使用 linux 信号(特别是 SIGUSR1SIGUSR2)从内核空间(linux 内核模块)向用户空间(使用内核的应用程序)发送信号模块)。这些信号得到妥善处理,功能运行良好。

现在我想测量信号处理程序的执行时间(最好以纳秒或微秒为单位)。

我试过使用 gprof 但它没有显示信号处理程序的执行时间。除此之外,它以秒为单位显示执行时间。

我也尝试过使用 Ftrace("nop"tracer, function_profile_enabled) 但这也没有用。

如何测量信号处理程序的执行时间?

最佳答案

对于用户空间程序,请阅读 time(7)然后使用 clock_gettime(2)CLOCK_REALTIME 来测量时间。不要指望纳秒级的精度。

也仔细阅读signal(7) .

我不会将信号用于内核 <-> 用户空间通信。在 Linux 上,我建议使用 netlink(7)netlink(3)功能(或在您的内核模块中提供用于该通信的设备)。你可以有一些事件循环来处理这些(例如 poll(2) ...)

另见 strace(1) ;它具有用于系统调用的粗略计时工具...

关于c - Linux : Signal : SIGUSR1 : Signal Handler : Measuring execution time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503714/

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