|
|
|
Микробенчмарки в .Net
|
|||
|---|---|---|---|
|
#18+
Я джавист. И в нашей среде есть решение для микробенчмарков, разработанное энтузиастами - JMH . Оно очень крутое. И не дает заоптимизировать код бенчмарка, и JIT греет, и амортизирует накладные расходы правильно. В общем, очень крутая штука, которой можно качественно измерять что угодно, вплоть до стоимости конкретных чтений/записей. Сейчас мне надо написать быстрый код на .Net, и мне надо провести ряд экспериментов в критичных участках кода. Например, что будет быстрее - записать int по байту в поток, или же записать в поток один раз через BitConverter. Или - записать данные в поток одним проходом, аллоцировав для этого несколько дополнительных объектов, или же записать часть данных, а потом сделать пару Seek в потоке, но без аллокаций. Или понять, насколько дорого боксинг/анбоксинг и приведение типов через указатели. Ну и т.д.. Есть ли в .Net что-то аналогичное JMH в Java для проведения честных микробенчмарков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2014, 00:27 |
|
||
|
Микробенчмарки в .Net
|
|||
|---|---|---|---|
|
#18+
cdtyjv, лично я самостоятельно делаю замеры с помощью класса Stopwatch . В то же время перед мной никогда не стояла задача делать это массово и максимально надежно. Посмотри следующие решения: BenchmarkDotNet + статья-введение ; фреймворк от Джона Скита. В его библиотеке NodaTime можно посмотреть пример использования ; MeasureIt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2014, 04:44 |
|
||
|
|

start [/forum/topic.php?fid=20&gotonew=1&tid=1402788]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
60ms |
get topic data: |
8ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 353ms |

| 0 / 0 |
