在 Erlang 中分析链接驱动程序
如何分析链接端口驱动程序? OTP 工具(fprof
等)显然只能分析 Erlang 代码,而且我没有 C 可执行文件可以提供给 gprof
。
How can I profile a linked-in port driver? OTP tools (fprof
, etc.) apparently only profile Erlang code, and I don't have a C executable file to feed to gprof
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
难道您不能只分析
erl
可执行文件,然后将其获取到gprof
工具吗?我很确定 Erlang 开发人员就是这样做的。Can't you just profile the
erl
executable and then get that to thegprof
tool? I am pretty sure this is how it is done by the Erlang devs anyway.只要链接的端口驱动程序是动态加载到 erl 进程中的 .so 库(在 Linux 上),您可以运行 valgrind --tool=callgrind --callgrind-out-file=file.out erl (请参阅文档中的其他选项对于 callgrind),然后从 erl shell 执行一些测试,退出 shell 并在 KCachegrind 等工具中加载 file.out
as far as linked-in port driver is .so library that is dynamically loaded into erl process (on linux) you can run valgrind --tool=callgrind --callgrind-out-file=file.out erl (see other options in docs for callgrind), then execute some tests from erl shell, exit from shell and load file.out in some tool like KCachegrind