Рассмотрено два алгоритма поиска максимума и минимума в скользящем окне.
В однои из алгоритмов используется приоритентная очередь smoothWindowUsePriorityQueeu, в другом наивая реализация поиска smoothWindowPrimitiveImplementation.
Проведены тесты производительности алгоритмов для случаев:
- размер окна остаётся постоянным (6 отсчётов), объём данных изменяется;
- объём данных фиксирован (выборка 4096), размер окна изменяется.
Пример результата производительности для случая 1.
| Размер выборки | smoothWindowUsePriorityQueeu, мкс | smoothWindowPrimitiveImplementation, мкс |
|---|---|---|
| 8 | 9.56 | 0.968 |
| 16 | 32.2 | 3.51 |
| 32 | 79.1 | 8.94 |
| 64 | 173 | 21.0 |
| 128 | 388 | 44.0 |
| 256 | 737 | 84.5 |
| 512 | 1831 | 172 |
| 1024 | 3029 | 346 |
| 2048 | 6066 | 704 |
| 4096 | 12163 | 1385 |
| 8192 | 24532 | 2880 |
| 16384 | 49605 | 5660 |
| 32768 | 95639 | 11111 |
Пример результата производительности для случая 2.
| Размер окна | smoothWindowUsePriorityQueeu, мкс | smoothWindowPrimitiveImplementation, мкс |
|---|---|---|
| 8 | 14191 | 1550 |
| 16 | 24138 | 2054 |
| 32 | 41785 | 2870 |
| 64 | 78746 | 4253 |
| 128 | 15083 | 6911 |