Оптимизация асинхронных операций в .NET
Таблица 1 - Результаты тестирования реализаций функции Аккермана
Метод | Число рек. вызовов | m | n | Средн. арифм., нс. | Станд. откл., нс. | Кол-во сборок мусора в Gen0 на 1000 операций | Кол-во выделяемой памяти в куче за 1 вызов метода, байт |
Baseline | 4 | 1 | 1 | 3,506 | 0,0902 | - | - |
ValueTask | 76,036 | 2,2531 | - | - | |||
IValueTaskSource | 378,316 | 11,3795 | 0,0877 | 368 | |||
Task | 50,700 | 1,0317 | - | - | |||
Baseline | 6 | 1 | 2 | 7,313 | 0,0782 | - | - |
ValueTask | 106,601 | 6,3150 | - | - | |||
IValueTaskSource | 503,147 | 28,4584 | 0,1354 | 568 | |||
Task | 65,809 | 2,1491 | - | - | |||
Baseline | 8 | 1 | 3 | 8,576 | 0,2664 | - | - |
ValueTask | 136,545 | 3,2220 | - | - | |||
IValueTaskSource | 678,346 | 19,3167 | 0,1831 | 768 | |||
Task | 89,820 | 2,4432 | - | - | |||
Baseline | 14 | 2 | 1 | 18,519 | 0,6279 | - | - |
ValueTask | 270,178 | 7,9779 | - | - | |||
IValueTaskSource | 1221,201 | 29,1151 | 0,3242 | 1360 | |||
Task | 163,981 | 5,7236 | - | - | |||
Baseline | 27 | 2 | 2 | 36,497 | 0,6551 | - | - |
ValueTask | 482,350 | 11,3347 | - | - | |||
IValueTaskSource | 3009,284 | 60,8933 | 0,6599 | 3376 | |||
Task | 352,306 | 7,8184 | - | - | |||
Baseline | 44 | 2 | 3 | 57,001 | 0,7175 | - | - |
ValueTask | 814,358 | 28,9962 | - | - | |||
IValueTaskSource | 4343,942 | 172,8679 | 1,5030 | 6296 | |||
Task | 569,717 | 13,4053 | 0,0515 | 216 | |||
Baseline | 106 | 3 | 1 | 135,360 | 1,1921 | - | - |
ValueTask | 1961,375 | 62,9385 | - | - | |||
IValueTaskSource | 10705,974 | 446,4759 | 4,0436 | 16937 | |||
Task | 1534,464 | 40,6479 | 0,3777 | 1584 | |||
Baseline | 541 | 3 | 2 | 674,350 | 5,9826 | - | - |
ValueTask | 9459,547 | 181,8086 |
|
| |||
IValueTaskSource | 66247,500 | 5013,7841 | 21,8506 | 91701 | |||
Task | 9222,128 | 378,4115 | 4,7455 | 19872 | |||
Baseline | 2432 | 3 | 3 | 3293,043 | 44,9792 | - | - |
ValueTask | 44116,709 | 1783,5449 | - | - | |||
IValueTaskSource | 414282,242 | 17464,7995 | 96,6797 | 416848 | |||
Task | 46579,047 | 1897,1332 | 30,3345 | 126864 |
