powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Микробенчмарки в .Net
2 сообщений из 2, страница 1 из 1
Микробенчмарки в .Net
    #38676064
cdtyjv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я джавист. И в нашей среде есть решение для микробенчмарков, разработанное энтузиастами - JMH . Оно очень крутое. И не дает заоптимизировать код бенчмарка, и JIT греет, и амортизирует накладные расходы правильно. В общем, очень крутая штука, которой можно качественно измерять что угодно, вплоть до стоимости конкретных чтений/записей.

Сейчас мне надо написать быстрый код на .Net, и мне надо провести ряд экспериментов в критичных участках кода. Например, что будет быстрее - записать int по байту в поток, или же записать в поток один раз через BitConverter. Или - записать данные в поток одним проходом, аллоцировав для этого несколько дополнительных объектов, или же записать часть данных, а потом сделать пару Seek в потоке, но без аллокаций. Или понять, насколько дорого боксинг/анбоксинг и приведение типов через указатели. Ну и т.д..

Есть ли в .Net что-то аналогичное JMH в Java для проведения честных микробенчмарков?
...
Рейтинг: 0 / 0
Микробенчмарки в .Net
    #38676102
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjv, лично я самостоятельно делаю замеры с помощью класса Stopwatch . В то же время перед мной никогда не стояла задача делать это массово и максимально надежно. Посмотри следующие решения:
BenchmarkDotNet + статья-введение ;

фреймворк от Джона Скита. В его библиотеке NodaTime можно посмотреть пример использования ;

MeasureIt
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Микробенчмарки в .Net
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]