Тестирование скорости исходного кода (29.01.2017). |
![]() |
2017 - Январь | |||
29.01.2017 12:07 | |||
Алгоритм родился после тестирования быстрой сортировки по Шеллу: - создать массив Double на 16 миллионов элементов; - заполнить его рэндомными значениями, но чтобы само наполнение массива всегда получалось одно и то же. Я использовал формулу параллельного соединения сопротивлений с определенным набором номиналов - там ну совсем разные по номиналу значения рождались; - начать сортировать массив любым способом сортировки. В случае неизменности массива и алгоритма сортировки будет получаться одинаковое время выполнения в секундах; - в цикл функции сортировки встроить тестируемый код. Разница между исходным временем выполнения сортировки и текущим есть время работы тестируемого кода. Можно взять и более 16 миллионов значений: это еще больше увеличит точность вычислений; - не использовать дебаггер: гуляющая погрешность 2-5%; - процессу присвоить приоритет реального времени. На деле, тестируя функции Visual Basic v.6.0, удалось получить такие данные: - If bDirection Xor (dTemp < dArray(k)) Then быстрее, чем If (dTemp >= dArray(k) And bDirection = True) Or (dTemp < dArray(k) And bDirection = False) Then на 31.4%; - bDirection быстрее, чем bDirection = True на 4.8%; - = False быстрее, чем Not True на 6.5%. |
|||
Обновлено ( 29.01.2017 19:51 ) |