2012-04-06 2 views
7

Я новичок в языке F #, и в настоящее время я делаю короткое исследование производительности F #. Итак, что бы я хотел сделать, это сравнить мой код F #. Я уже нашел класс секундомера, который был довольно очевиден, но что касается остальной части теста, я не нашел четких результатов.Как измерить использование ЦП и памяти кода F #?

Что я хотел бы сделать, это узнать память и использование процессора F # при его запуске. Есть ли здесь кто-нибудь, кто мог бы дать мне несколько советов о том, как это сделать?

+0

возможно дубликат [Измерение времени выполнения в F #] (http://stackoverflow.com/questions/ 4528355/measure-time-of-execution-in-f) – vcsjones

+0

@Marcus - вы хотите измерить память и процессор? Какие другие счетчики вы хотите проверить? – Gangadhar

+2

@vcsjones Он просит использовать память - не то же самое, что и время выполнения. Я не думаю, что это обман. –

ответ

9

Для быстрого прототипирования, директива времени FSI обеспечивает хорошие признаки:

#if INTERACTIVE 
#time "on" 
#endif 

Он печатает что-то вроде:

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

Помимо времени выполнения, другие статистические данные показывают количество мусора, собранных в трех уровнях GC поколения, которые полезны для понимания использования памяти в ваших программах.

Для серьезного бенчмаркинга вы должны использовать Visual Studio profiler, который обеспечивает подсчет функций, время и распределение памяти, и т. Д., И даже использовать сторонние профили памяти. Вы можете найти некоторые намеки на использование этих профилировщиков в моем ответе на Good F# Performance Profiling Tool.

+0

Просто имейте в виду, что fsi 32-разрядный, даже если вы находитесь на 64-битной ОС. –

+8

@JohnReynolds: Это не обязательно так. F # 3.0 имеет новый 64-битный 'fsi', больше информации [здесь] (http://blogs.msdn.com/b/fsharpteam/archive/2012/02/29/introducing-visual-f-3-0 -beta.aspx). – pad

Смежные вопросы