2013-01-09 105 views
2

我试图用eprof剖析一个Erlang应用程序。结果表明,大部分时间都花在字典模块中虽然我最感兴趣的分析模块不直接使用字典,它的依赖做到这看起来有点像这样:EProf Erlang剖析

A-- B - dict 
|- C - dict 

A是正在运行的进程(一个gen_server)并使用模块B和C都使用字典。我怎样才能知道哪个模块最多使用字典?

+0

你可以尝试调整两个模块,而不是使用orddict的一个例子吗?如果你尝试每种方式(B/dict + C/orddict,然后B/orddict + C/dict),你可能有足够的信息来回答这个问题。 – macintux

+0

有趣的方法,但我设法解决这个问题,而不使用fprof来更改代码,它显示了函数(包括调用)和其他有用的东西(如gc和进程暂停)所花费的总时间。如果任何人有任何其他要添加的问题,请保留此问题。 –

+0

你可以尝试使用[this escript](https://github.com/isacssouza/erlgrind)我写到将fprof输出转换为callgrind输出,并用kcachegrind或类似的东西将其可视化。 – Isac

回答