首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信号: SIGUSR1 :信号处理程序:测量执行时间?

问信号: SIGUSR1 :信号处理程序:测量执行时间?
EN

Stack Overflow用户
提问于 2014-08-26 18:36:37
回答 1查看 574关注 0票数 1

我使用linux信号(特别是SIGUSR1和SIGUSR2)将信号从内核空间(linux内核模块)发送到用户空间(一个使用内核模块的应用程序)。这些信号得到了正确的处理,功能运行良好。

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

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

我也尝试过使用Ftrace("nop" tracer, function_profile_enabled),但也不起作用。

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

EN

回答 1

Stack Overflow用户

发布于 2014-08-26 18:43:39

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

另请仔细阅读signal(7)。

我不会使用信号进行内核<->用户空间通信。在Linux上,我建议使用带有netlink(3)函数的netlink(7) (或者在内核模块中提供一个设备来实现这种通信)。您可以使用一些事件循环来处理这些(例如,使用poll(2) ...)

另请参阅strace(1);它为syscall提供了简陋的计时工具...

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25503714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档