| Генератор хаотичных данных 369ГБ/с v.1.0 (10.11.2026). |
|
| 2026 - Ноябрь | |||
| 10.11.2026 00:00 | |||
Основанный на умной парадигме "генератор в генераторе в генераторе", получился настолько высокоскоростным - что на порядок уделал один из самых быстрых алгоритмов XORShift128+. Все генераторы в составном генераторе - можно использовать в других целях - получился комплект генераторов, по сути. Этот проект, при создании, - вышел слишком рутинный и тупой - в версии 1.0 возможны незначительные ошибки; и не уверен, что хватит сил на версию 1.1. Коэффициент энтропии Шеннона 7.01 (6.8-7.2) для всех данных и 6.64 (6.5-6.8) для блоков 512Б (физический размер сектора накопителей) - делает его практически криптостойким (до 7.5 - чуть-чуть не хватило). 369ГБ/с - на 1 потоке 3.57ГГц, EXE собран в режиме дебага, 152ГБ/с - в режиме релиза (особенность среды программирования: не все функции в релизе быстрее, чем в дебаге). Есть и другой метод генерации: 2.991ГБ/с или 3.397ГБ/с - если нужен хаос, а не псевдохаос, - добавится время, но коэффициенты Шеннона выше (7.4 и 6.8). Хаос в хаосе - если эту функцию ещё и вызывать random(255) раз. Вторая парадигма: использование long double как генератор мусора (хаотичное поведение мантиссы, псевдохаотичное - целой части). Сначала массив long double заполняется медленной функцией 0.695ГБ/с или 0.739ГБ/с (коэффициенты Шеннона 6.4 и 6.1). Есть функция перезаполнения массива, в 4 раза быстрее, другим мусором (2.991ГБ/с и 3.397ГБ/с) - если нужен хаос, а не псевдохаос, - добавится время, но коэффициенты Шеннона выше (7.4 и 6.8). Третья парадигма: движение указателя по этому заранее заполненному быстрому большому массиву с мусором - псевдохаос, но бешеная скорость. Придётся заплатить пониженными коэффициентами Шеннона 7.01 (6.8-7.2) для всех данных и 6.64 (6.5-6.8) для блоков 512Б. Получился генератор с максимально возможной порцией, чтобы коэффициенты Шеннона сохранить, - 512Б. Указатель получил, взял мусор любым способом (memcpy, прямая запись в файл и т.д.) - и так в своём цикле. В исходниках - проект, в нём есть функции наглядной скорости и примера работы. Также в начале CPP-файла - подробное описание: почему, что и как. Самое максимальное значение скорости - было получено в правильных условиях: - корректное расположение QueryPerfomanceFrequency в коде. Счёт идёт на единицы пикосекунд/байт - решения измерения скорости должны быть чрезмерно корректными: каждая зараза пытается влезть и уменьшить результат (в данном случае - Turbo Boost); - без усреднения 10 измерений по 4млрд вызовов. С усреднением будет где-то 340-350ГБ/с; - выход из виртуальной машины в реальную ОС; - запуск на свободном именно несистемном потоке. В исходниках есть и изначальные генераторы, с которых парадигма оборачивания одного генератора другим и началась, - их тоже можно использовать в других параллельных интересах. Также оставлен функционал расчёта и множественного усреднения коэффициентов Шеннона. Скачать (1.25МБ). Функция расчёта энтропии Шеннона - полностью исправна. |
|||
| Обновлено ( 10.11.2026 17:32 ) |