• kernel CONFIG_FRACE


    编写应用程序时,如果查看函数的实际执行效率,就可以选择开启内核的CONFIG_FTRACE选项。

    上层通过perf-tools配合,就可以查看指定程序的调用情况。

    root@vmuser:~/tmp/perf-tools# ./bin/uprobe -s p:/root/a.out:signalHandler


    a.out-21789 [000] d... 82183.441301: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.441302: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.442297: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.442298: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.443293: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.443294: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.444301: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.444302: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.445298: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.445299: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.446296: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.446296: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.447294: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.447294: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.448294: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.448295: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.449294: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.449295: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.450293: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.450293: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.451294: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.451295: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.452296: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.452296: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.453295: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.453295: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb97>
    a.out-21789 [000] d... 82183.454293: signalHandler: (0x5629c1e966da)
    a.out-21789 [000] d... 82183.454293: <user stack trace>
    => <00005629c1e966da>
    => <00007f54b1fecb^C
    Ending tracing...

  • 相关阅读:
    MongoDB安装与配置
    关于dependencies和devDependencies的理解
    npm常用指令小记
    git ssh配置
    浅谈sharding jdbc
    浅谈分布式数据库
    web容量规划
    mysql in()后子查询优化
    负载均衡架构
    领域驱动设计-3-模型的管理
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/13233724.html
Copyright © 2020-2023  润新知