F#交互式和性能分析器

Vag*_*lov 12 profiler f# f#-interactive

F#Interactive(以及一般的REPL样式工具)是性能分析的理想入口.有什么比选择代码块并将其直接发送到将返回性能分析报告的分析器更容易的事情.不幸的是,现有的分析器看起来没有REPL支持:您必须将分析器附加到进程或指定可执行文件或Web应用程序以进行分析.

我最终要做的是将代码块包装到单元测试中的配置文件,然后针对NUnit命令行会话执行配置文件.但这是我们现在用F#做的最好的事情吗?

Bri*_*ian 9

问题是什么?

你知道这个#time命令吗?例如

#time "on"
for i in 1..1000000 do
    let r = f(i)
    ignore r
Run Code Online (Sandbox Code Playgroud)

这给了F#交互输出像

--> Timing now on
Real: 00:00:00.000, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
Run Code Online (Sandbox Code Playgroud)

在任何情况下,我认为简单地将代码放在应用程序中并针对应用程序运行配置文件比NUnit测试更好.无论哪种方式,是的,将代码粘贴到新应用程序并在发布模式下编译可能需要额外30秒的时间.但是,我很乐意为获得Visual Studio提供的丰富的分析信息付出代价.理想情况下,体验可能更好,但我怀疑你今天(或明天)会找到任何REPL友好的分析工具.