分析框架中的函数

Posted

技术标签:

【中文标题】分析框架中的函数【英文标题】:Profiling a function in framework 【发布时间】:2013-07-09 21:13:55 【问题描述】:

我使用了一些框架,发现某些函数(例如 Rebuild(param1, param2) )有时运行很慢。

如何收集有关每个函数调用的信息(用于检测最长的调用和参数)?

不建议修改源代码或调用框架外的函数。

【问题讨论】:

不用独立的外部工具就好了。 【参考方案1】:

我建议你非常困 (http://www.codersnotes.com/sleepy)。这是一个非常易于使用的分析工具。

它将显示函数中传递的时间。 (在函数中传递的包含和排除时间都以秒和应用程序执行的百分比给出) 您还将拥有函数的调用堆栈。 还有一些您自己会发现的东西。

您只需运行它并将其附加到您要分析的进程。它不需要(重新)编译任何源代码。

【讨论】:

【参考方案2】:

我的第一个想法可能是使用代码覆盖工具(例如gcov)来检查哪些代码路径在某些测试情况下受到压力,在这些情况下您会观察到这种行为。

额外注入的分析代码(多少次调用具有 CPU 时间配置文件,例如 GPROF)将有助于进一步找出瓶颈。

这两种技术都不会侵入任何源代码,但需要使用某些编译器标志 (GCC) 重新编译。

我很确定 MS Visual Studio 会提供类似的工具。

【讨论】:

以上是关于分析框架中的函数的主要内容,如果未能解决你的问题,请参考以下文章

linux设备驱动之misc驱动框架源码分析

laravel框架总结 -- 路径分析

LCD驱动分析字符设备驱动框架分析

论文写作中的分析框架与模型有啥区别

2016.3.3(Spark框架预览,Scala部分应用函数闭包高阶函数,关于语义分析的一些心得)

shuffle和sort分析