-
-
[原创]D Profile 开源性能分析工具
-
发表于:
2014-12-21 18:37
7958
-
D Profile 是一个win32/64 CPU, memory 性能分析工具, Windows上一直缺乏合适的,轻量级的强大的性能分析工具,本意以VS 2008的profiler为蓝本,设计一个较为完备的profiler, 特别的添加对内存的性能分析,就有了这个工具。我自己的体验是这个工具应该不比大多数商业版profiler差,
甚至更好。具体代码看:fe2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6^5N6$3I4S2L8W2)9J5c8X3c8H3M7X3!0X3K9h3I4W2M7W2!0q4c8W2!0n7b7#2)9^5b7%4u0W2j5h3c8E0k6g2!0q4x3#2)9^5x3q4)9^5x3W2!0q4y4g2)9&6b7W2!0m8x3q4!0q4y4q4!0n7z5q4!0n7b7g2!0q4z5q4!0n7c8W2)9&6z5g2!0q4z5g2)9^5y4#2)9^5b7#2!0q4y4q4!0n7z5q4)9^5c8q4!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4q4!0n7b7W2)9^5b7W2!0q4y4#2!0n7b7W2)9^5c8q4!0q4y4W2)9^5x3q4)9^5c8g2!0q4y4q4!0n7z5g2)9^5z5q4!0q4z5q4!0n7c8W2)9&6b7W2!0q4z5q4!0m8x3g2)9^5b7#2!0q4y4W2)9^5x3q4!0m8y4#2!0q4z5q4)9^5x3#2!0n7c8q4!0q4y4g2)9^5z5q4)9^5y4W2!0q4y4W2)9&6c8g2)9&6x3q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4g2!0n7x3g2)9&6y4g2!0q4y4#2!0m8y4q4!0n7b7g2!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4q4!0n7z5q4!0m8b7g2!0q4y4g2!0n7y4#2!0m8y4g2!0q4y4g2)9^5y4g2!0n7y4#2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4q4!0n7b7W2)9^5b7W2!0q4y4#2!0n7b7W2)9^5c8q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2)9&6y4g2)9^5y4g2!0q4z5q4!0n7y4q4!0n7y4q4!0q4y4q4!0n7b7g2)9&6b7W2!0q4y4W2)9^5z5q4!0m8b7g2!0q4y4g2)9&6b7W2!0n7c8g2!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4#2!0m8c8g2)9^5x3q4!0q4y4g2)9^5c8q4)9&6y4g2!0q4y4q4!0n7b7W2)9^5b7W2!0q4y4#2!0n7b7W2)9^5c8q4!0q4x3#2)9^5x3q4)9^5x3W2!0q4y4g2)9^5y4g2!0n7x3#2!0q4y4q4!0n7b7g2)9^5c8g2!0q4y4g2!0m8y4W2)9^5x3W2!0q4y4q4!0n7c8q4)9&6y4g2!0q4y4g2)9^5z5q4)9^5y4W2!0q4y4W2)9&6c8g2)9&6x3q4!0q4y4W2)9^5x3q4!0m8y4#2!0q4z5q4)9^5x3#2!0n7c8q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4#2!0n7c8q4)9&6x3g2!0q4y4q4!0n7z5q4)9^5b7g2!0q4y4g2!0n7c8g2)9^5z5q4!0q4y4g2!0m8y4q4)9&6b7g2!0q4y4W2)9&6y4W2)9^5y4#2!0q4y4#2!0m8b7W2!0m8x3q4!0q4c8W2!0n7b7#2)9^5b7#2!0q4y4W2!0m8c8q4!0m8y4q4!0q4y4g2!0n7y4#2!0m8y4g2!0q4y4g2)9^5y4g2!0n7y4#2!0q4y4#2)9&6b7g2)9^5y4l9`.`.
大多数概念计数器和VS的很类似,不表。
CPU 性能分析:
1, IPs On CPU

2, Function

3, Module

4, Thread

5, CallTree

6, FlameGraph

7, History

内存性能分析:
1, Oustanding Allocation ( 可能的内存泄露)

2, Heap Allocation by Module

3, Heap Allocation by CallTree

4, Heap Allocation by FlameGraph

这个工具缺少lock, io 的分析,不过在这个框架上扩展也是较为容易的。
dprofiler采用动态attach,detach的方式工作,不需要recompile code,
只需要匹配的pdb,这一点已经优于绝大多数的开源profiler。
希望能对你有用,也不枉了几年化的心血,呵呵。
另外,dprofiler的核心引擎和我的另一个开源工具dprobe类似,不过专门为了做profiling作了裁剪,去掉了很多不安全的工作方式。有兴趣可以对照看看。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课