我有一个多线程的Haskell程序,它使用System.Process.readProcess
调用外部程序,并且经常这样做。我该如何衡量绩效? (决定我是否应该改进我的程序,或者是外部程序。)"外部时间"显示在配置文件(+ RTS -p)或事件日志(threadscope图片)?
答案 0 :(得分:0)
您可以使用ProcMon执行此任务。
在您的流程名称上添加过滤器,仅选择'显示流程和主题活动'你可以确切地看到哪个更耗时。您甚至可以保存和解析日志以进行长时间监控。
我还建议你使用另一种方法解决这个问题:
这样你就可以摆脱不断产生/杀死子进程所浪费的开销。
答案 1 :(得分:0)
您是否考虑过使用Criterion,一个Haskell微基准测试库?
此库提供了一种强大而简单的方法来衡量软件性能。它既提供了执行和分析基准测试的框架,也提供了一组驱动程序功能,可以轻松构建和运行基准测试,并分析其结果。