Я джавист. И в нашей среде есть решение для микробенчмарков, разработанное энтузиастами -
JMH. Оно очень крутое. И не дает заоптимизировать код бенчмарка, и JIT греет, и амортизирует накладные расходы правильно. В общем, очень крутая штука, которой можно качественно измерять что угодно, вплоть до стоимости конкретных чтений/записей.
Сейчас мне надо написать быстрый код на .Net, и мне надо провести ряд экспериментов в критичных участках кода. Например, что будет быстрее - записать int по байту в поток, или же записать в поток один раз через BitConverter. Или - записать данные в поток одним проходом, аллоцировав для этого несколько дополнительных объектов, или же записать часть данных, а потом сделать пару Seek в потоке, но без аллокаций. Или понять, насколько дорого боксинг/анбоксинг и приведение типов через указатели. Ну и т.д..
Есть ли в .Net что-то аналогичное JMH в Java для проведения честных микробенчмарков?