Один случайный базовый тест Миллера-Рабина, реализованный в GMP, среднее из нескольких простых чисел и нескольких прогонов.i4770K @ 4,3 ГГц, GMP 6.0.0a.Для чисел под 64-битными времена могут быть быстрее с использованием не-GMP реализации (с x86_64 asm mulmod).Эта реализация, похоже, следует большинству других реализаций C + GMP достаточно близко по производительности (для тех же чисел, mpz_sprp mpz_aprcl работает в паре процентов времени ниже).Использование нестандартных вызовов API для выполнения математики Монтгомери может быть быстрее (а может и нет).
- 20 цифр: 1,1 сШ
- 40 цифр: 3,4 сС
- 80 цифр: 14 сШ
- 200 цифр: 0,11 мС
- 400 цифр: 0,65 мС
- 800 цифр: 4,7 мС
- 1200 цифр: 15 мС
- 1600 цифр: 31 мс
- 2000 цифр: 53 мс
- 4000 цифр: 310 мс
При хорошей реализации, BPSW (база 2MR + [дополнительный] сильный тест Лукаса) в ~ 3 раза дороже одного МР теста.Реализация тестов Lucas значительно отличается по производительности.Тест Фробениуса стоит в 2,5 раза дороже одного МР теста.