В процессе реализации одного алгоритма столкнулся с тем, что незначительные правки вносят существенные коррективы в скорость его работы.
Сделал небольшую правку кода, чтобы увидеть, какой алгоритм быстрее и запустил их параллельно. Справа от двоеточия - количество обработанных элементов каждым из алгоритмов.
Processed #1: 1403
Processed #2: 7194
Processed #1: 2759
Processed #2: 10303
Processed #1: 3987
Processed #2: 12644
Processed #1: 5387
Processed #2: 14638
Алгоритм №2, который в начале показал очень хорошие результаты, в итоге оказался значительно медленнее конкурента.
Processed #1: 107894
Processed #2: 81434
Processed #1: 108407
Processed #2: 81740
Processed #1: 109066
Processed #2: 82076
И чем дальше, тем медленнее.
Processed #1: 303164
Processed #2: 155779
Processed #1: 303673
Processed #2: 155949
Processed #1: 304138
Processed #2: 156123
Так как алгоритмы отличаются реализацией, но используют те же структуры данных, следующий шаг - найти такую структуру данных, которая быстрее работает с алгоритмом №1.
Сделал небольшую правку кода, чтобы увидеть, какой алгоритм быстрее и запустил их параллельно. Справа от двоеточия - количество обработанных элементов каждым из алгоритмов.
Processed #1: 1403
Processed #2: 7194
Processed #1: 2759
Processed #2: 10303
Processed #1: 3987
Processed #2: 12644
Processed #1: 5387
Processed #2: 14638
Алгоритм №2, который в начале показал очень хорошие результаты, в итоге оказался значительно медленнее конкурента.
Processed #1: 107894
Processed #2: 81434
Processed #1: 108407
Processed #2: 81740
Processed #1: 109066
Processed #2: 82076
И чем дальше, тем медленнее.
Processed #1: 303164
Processed #2: 155779
Processed #1: 303673
Processed #2: 155949
Processed #1: 304138
Processed #2: 156123
Так как алгоритмы отличаются реализацией, но используют те же структуры данных, следующий шаг - найти такую структуру данных, которая быстрее работает с алгоритмом №1.
No comments:
Post a Comment