Re[13]: Разумность 16 байтных IP-адресов - ведь глупость сделали
От: B0FEE664  
Дата: 12.11.24 17:20
Оценка: :)
Здравствуйте, Shmj, Вы писали:

S>>>Напиши на C++ поиск по IP-адресам из черного списка. Сначала напиши для 8-байтных адресов (а это делается нейтивным типом), потом для 16 байт. Сравни скорость работы.

BFE>>Зачем? Скорости QSet<QHostAddress> не хватает?

S>Скорости всегда мало — представь что запросов миллионы в секунду. И каждый IP нужно как-то обработать. Естественно нейтивно поддерживаемый процессором тип будет на порядки быстрее.


Ответ от ChatGPT:

6. Алгоритм CAM (Content-Addressable Memory)
CAM — это специальная память, используемая в маршрутизаторах для поиска совпадений в один такт, что делает её крайне быстрой.
Адрес назначения пакета вводится в CAM, и она сразу возвращает префикс с наибольшей длиной совпадения.


От себя добавлю, что если для поиска использовать B-Tree с ключом в байт, то разница между 8-байтовым адресом и 16 байтовым адресом будет всего 8 операций сложения и 8 операций сравнения, что не выглядит чем-то из-за чего стоит переживать.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.