(REPL based profiler targeting F#). Now it works in ScriptCS as well. I havn't written up documentation on it yet but the methods are below. If people want to give it a try.
shows a run. (in this case eventstore is being profiled using mono --profile=peye:mode=connect EventStore.ClusterNode.exe)
void StartListening()
void StartListeningOn(IPEndPoint endPoint)
void ConnectTo(IPEndPoint endPoint)
//helper methods (they are just linq statements over Profiler.Data.Methods/Types)
IEnumerable<MethodInformation> MostTimeMethods()
IEnumerable<MethodInformation> MostTimeUnderMethods()
IEnumerable<MethodInformation> HighestAfferentMethods()
IEnumerable<MethodInformation> HighestEfferentMethods()
IEnumerable<MethodInformation> MostCalledMethods()
IEnumerable<MethodInformation> MostActualAllocatingMethods()
IEnumerable<MethodInformation> MostAllocatingMethods()
IEnumerable<MethodInformation> ExceptionThrowingMethods()
IEnumerable<TypeInformation> MostAllocatedTypes()
IEnumerable<TypeInformation> MostThrownTypes()
event EventHandler<MethodEnteredEventArgs> MethodEntered
event EventHandler<MethodCalledEventArgs> MethodCalled
event EventHandler<MethodLeftEventArgs> MethodLeft
event EventHandler<ObjectAllocatedEventArgs> ObjectAllocated
event EventHandler<ExceptionThrownEventArgs> ExceptionThrown
event EventHandler<GCEventArgs> GCStart
event EventHandler<GCCompletedEventArgs> GCCompleted
event EventHandler<GCEventArgs> GCEnd
void EnableAllocationTracking()
void DisableAllocationTracking()
void EnableExceptionTracking()
void DisableExceptionTracking()
void EnableMethodTracking()
void DisableMethodTracking()
void EnableGCTracking()
void DisableGCTracking()
void AddIncludeFilter(string includeExpression)
void AddExcludeFilter(string excludeExpression)
void RemoveIncludeFilter(string includeExpression)
void RemoveExcludeFilter(string excludeExpression)
void ResetInternalProfilerSession()
void ResetData()