2012-04-06 22 views
7

Jestem nowy w języku F # i obecnie robię krótkie badania na temat wydajności F #. To, co chciałbym zrobić, to porównać mój kod F #. Znalazłem już klasę Stopwatch, co było dość oczywiste, ale jeśli chodzi o resztę tego, co powinieneś być w stanie przetestować, nie znalazłem wyraźnych tropów.Jak zmierzyć wykorzystanie procesora i pamięci przez kod F #?

Co chciałbym zrobić, to dowiedzieć się użycia pamięci i procesora w kodzie F #, gdy go uruchomię. Czy jest tu ktoś, kto mógłby mi doradzić, jak to zrobić?

+0

możliwe duplikat [miarą czasu wykonania w F #] (http://stackoverflow.com/questions/ 4528355/measure-time-of-execution-in-f) – vcsjones

+0

@Marcus - czy chcesz zmierzyć pamięć i procesor? Jakie są pozostałe liczniki, które chcesz sprawdzić? – Gangadhar

+2

@vcsjones On pyta o użycie pamięci - nie to samo co czas wykonania. Nie sądzę, żeby to był dupek. –

Odpowiedz

9

Do szybkiego prototypowania, dyrektywa rozrządu FSI zapewnia dobre wskazania:

#if INTERACTIVE 
#time "on" 
#endif 

To wypisuje coś takiego:

Real: 00:00:00.199, CPU: 00:00:00.120, GC gen0: 0, gen1: 0, gen2: 0 

Obok czasu realizacji, inne statystyki pokazują ilości śmieci zebrane w trzech poziomach generacyjny GC, który pomaga zrozumieć użycie pamięci w twoich programach.

Do poważnych testów porównawczych należy użyć Visual Studio profiler, który zapewnia liczenie wywołań funkcji, pomiar czasu i pamięci, itp. Lub nawet korzysta z profilerów pamięci innych firm. Możesz znaleźć wskazówki dotyczące używania tych profilerów w mojej odpowiedzi na Good F# Performance Profiling Tool.

+0

Pamiętaj, że fsi jest 32-bitowe, nawet jeśli używasz 64-bitowego systemu operacyjnego. –

+8

@ John Reynolds: To niekoniecznie musi być prawda. F # 3.0 ma nowe 64-bitowe 'fsi', więcej informacji jest [tutaj] (http://blogs.msdn.com/b/fsharpteam/archive/2012/02/29/introducing-visual-f-3-0 -beta.aspx). – pad

Powiązane problemy