我想进一步提高现有Erlang程序的效率.首先,我想确定瓶颈,然后决定进一步优化的位置.
我试过了fprof,但它只提供有关总运行时间和平均运行时间的信息.我最希望看到一个类似于fprof输出的日志,但是关于函数和进程的平均和总内存使用情况.
对于初学者来说,分析单个模块就足够了,它不会产生进程,只会调用它的函数.这已经有所帮助,因为我可以将程序分离到不同的模块进行测试.
典型的可疑点是,正在处理更大的列表.
这里的用法++已经通过lists:reverse([Head|Tail])类似的语法解决了.
我也在考虑使用ETS表而不是列表来处理超过几百个元素的情况.
先感谢您!
我想跟踪erlang模块中的所有函数dbg:tpl,但其中一个内部函数占用了跟踪文件的95%.然后我想只排除那个单一的功能,发现它并不像我想象的那么容易.
我知道在跟踪时,参数有很好的模式匹配可能性.
是否有类似的可能性为函数应用模式匹配?
eg.: {'=/=', '$2', function_name}
我也对开箱即用的解决方案持开放态度!
谢谢!