Хороший инструмент профилирования производительности F #

Может ли кто-нибудь порекомендовать инструмент профилирования производительности с хорошей поддержкой 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

Я получаю следующее дерево вызовов:

CallTree

Когда я просматриваю Microsoft.FSharp.Core.FSharpFunc`2.Invoke (0) в деталях функции, я вижу: Function Details

Я понимаю, что то, что я вижу, основано на базовой реализации скомпилированного кода, и хотя я могу следить за этим, это сложно.

Есть ли у кого-нибудь опыт использования других инструментов профилирования с F # и лучше ли они справляются с сопоставлением с исходным кодом F #?

18
задан pad 1 November 2011 в 15:35
поделиться