Задать вопрос
65536
@65536

Как максимально быстро создать хэш, полностью идентифицирующий массив?

Использую витающий в воздухе вариант

function jmd5($input)
{
    return md5(json_encode($input));
}


Что-то подсказывает, что есть и более низкоуровневое решение. Часто используется в километровых циклах и заметно замедляет.
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Может взять и попробовать xxHash?
Name 		Speed 		Quality 	Author
xxHash 		5.4 GB/s 	10 		Y.C.
MurmurHash 3a 	2.7 GB/s 	10 		Austin Appleby
SBox 		1.4 GB/s 	9 		Bret Mulvey
Lookup3 	1.2 GB/s 	9 		Bob Jenkins
CityHash64 	1.05 GB/s 	10 		Pike & Alakuijala
FNV 		0.55 GB/s 	5 		Fowler, Noll, Vo
CRC32 		0.43 GB/s 	9 	
MD5-32 		0.33 GB/s 	10 		Ronald L.Rivest
SHA1-32 	0.28 GB/s 	10
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Полностью идентифицирующий - никак, потому что при любом хешировании могут возникать коллизии.

Конечно, есть более быстрые алгоритмы, чем md5, но чем короче хеш, тем больше вероятность коллизий.
(сравнительные тесты 1, 2, 3)

Хинт: serialize разве не быстрее, чем json_encode?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы