производительность — PHP hash_pbkdf2 занимает на порядки больше времени в экземплярах AWS

Мы хотели сравнить функцию hash_pbkdf2 в PHP, чтобы выбрать подходящее количество итераций для нашего приложения.

Когда я запустил свой скрипт тестирования на экземпляре m4.large AWS, он потребовался на пять порядков дольше, чем на моем ноутбуке.

В этом Gist показан скрипт, который я использую, и результаты, которые я получаю от экземпляра m4.large (под нагрузкой), экземпляра t2.micro (с полным кредитованием ЦП и без нагрузки) и трех разных скоростных ноутбуков Intel i7.

https://gist.github.com/roberthl/301a3fb0a32baf057806

Вы можете увидеть 100 000 итераций <200 мс на ноутбуках i7, но всего одна итерация занимает много времени на экземплярах AWS.

Я включил версии PHP и бенчмарк OpenSSL, который показывает, что sha256 занимает сравнимое количество времени как на экземплярах AWS, так и на ноутбуке i7 (и элементарный бенчмарк PHP-хеш-функции также показал это), предполагая, что это определенно связано к операции PBKDF2.

Что вызывает это, и как я могу ускорить это?

1

Решение

Обратите внимание, что экземпляры AWS используют самую старую версию PHP из всего вашего GIST. Это не может быть здорово.

Если вы можете, найдите портативный PHP-продукт недавнего урожая и установите и сравните его.

Кроме того, вы можете сравнить различные реализации PBKDF2 с мой репозиторий Github, включая версии на базе PolarSSL, OpenSSL и Crypto ++, все с идентичными интерфейсами для командной строки и исходного кода.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]