Может ли кто-нибудь порекомендовать инструмент профилирования производительности с хорошей поддержкой F #?
Я использовал профилировщик Visual Studio 2010, но обнаружил несколько проблем при использовании F # . Похоже, что я профилирую байт-код после отражения, чем исходный F #.
Например, при профилировании следующего слегка надуманного примера:
let Add a b =
a + b
let Add1 = Add 1
let rec MultiAdd count =
match count with
| 1 -> 1
| _ -> (Add1 1) + (MultiAdd (count - 1))
MultiAdd 10000 |> ignore
Я получаю следующее дерево вызовов:
Когда я просматриваю Microsoft.FSharp.Core.FSharpFunc`2.Invoke (0) в деталях функции, я вижу:
Я понимаю, что то, что я вижу, основано на базовой реализации скомпилированного кода, и хотя я могу следить за этим, это сложно.
Есть ли у кого-нибудь опыт использования других инструментов профилирования с F # и лучше ли они справляются с сопоставлением с исходным кодом F #?