GFree_Wind 发表于 2015-06-05 11:16

分享一个内核性能测试工具

目前工作是基于OpenWrt开发,经常要改善代码性能,但是OpenWrt又不支持perf。所以查找性能瓶颈时,就比较麻烦。
于是利用业余时间写了个小工具,用于定位性能瓶颈的。编码,测试,加文档(README)大概花了3个小时左右,后面会根据自己的需求(或者大家的需求)进行改善。

这个是链接地址https://github.com/gfreewind/unit_perf

大家多提宝贵意见,觉得还行的话,就给赞个星星。

nswcfd 发表于 2015-06-05 17:24

谢谢分享!
请教monitor point name对应一个什么实体?一个模块 or 一个函数?

GFree_Wind 发表于 2015-06-05 17:39

回复 2# nswcfd

一个监控点,内部用于索引。

   

GFree_Wind 发表于 2015-06-05 18:59

回复 2# nswcfd

简单的说,
1. add_monitor_point:用于创建一个monitor point;
2. 在想监控的代码起始位置,执行start_monitor;
3. 在监控代码的结束未知,执行end_monitor;


   

镇水铁牛 发表于 2015-06-06 07:29

start_monitor参数name可以直接用函数名宏替换,嵌入到所有要跟踪函数的入口和出口?
另外line245,忘记释放内存了。

GFree_Wind 发表于 2015-06-06 20:44

回复 5# 镇水铁牛

嗯,用宏确实是好建议,已采纳。错误处理忘记释放内存,也已修正。

关于这个问题“嵌入到所有要跟踪函数的入口和出口?”,目前确实是这样。
不过这个我觉得也可以接受。

因为当需要跟踪所有函数时,这时候就应该使用perf或者其它profile工具了。
这个小工具主要用于:
1. Perf不支持的环境;
2. 代码只占整个儿系统的一小部分,使用Perf等可能无法得到期望的结果;
3. 可能只分析一段代码而不是一个函数;比如一个函数的某几行代码;


   

Godbach 发表于 2015-06-07 00:19

回复 1# GFree_Wind

好东西,赞高兄!


   

GFree_Wind 发表于 2015-06-07 08:18

回复 7# Godbach

多谢赵兄了。帮我点个星星?

这个算不上什么好东西,是一个还算有用的小工具吧。

我已经在工作中用起来了,这样有什么问题或者需求,也就随手添加了。


   

Godbach 发表于 2015-06-07 15:20

回复 8# GFree_Wind

好的,我没怎么用 github,回头搞起。


   

GFree_Wind 发表于 2015-06-07 17:59

回复 9# Godbach

github还是有不少好东西的。

另外自己的工具代码放到github上,也很方便


   
页: [1] 2
查看完整版本: 分享一个内核性能测试工具