Несколько способов повысить производительность алгоритма поиска максимального значения в последовательности:
- Использовать SSE MMX. 1 Этот набор команд позволяет, например, сравнивать одновременно 4 пары чисел за одну инструкцию. 1 Эффект будет заметен при количестве данных от 1000 штук. 1
- Применять встроенные в ЦП операции большей разрядности над данными меньшей разрядности. 1 Например, 32-битные или 64-битные операции над 8-битными числами. 1
- Отказаться от цикла. 1 Если количество элементов в цикле внутри алгоритма — константа и оно малое, то можно составить условную структуру для поиска максимума без цикла. 1
- Распараллелить поиск. 12 Если данных более 10 000, то распараллеленный поиск (с использованием нескольких ядер процессора) даёт результат лучше, чем линейный. 1
- Использовать инструкции SIMD. 3 Например, для поиска максимального значения можно применить SSE4-инструкцию PMAXSD, которая оперирует двумя множествами из четырёх упакованных 32-разрядных целых чисел и отыскивает максимальное значение в каждой паре чисел в двух множествах. 3
Выбор метода зависит от конкретных условий и требований к производительности.