Toot

Written by Несерьёзный Выдумщик on 2025-01-28 at 23:05

Генерировать большие объёмы случайных данных, буквально гигабайты в секунду? Когда нужны просто большие несжимаемые массивы.

Например, для генерации сетевого трафика или заполнения накопителей данных (HDD, SSD, NVMe) или образов дисков виртуальных машин.

Один из наиболее простых и много раз проверенных вариантов:

...

x ^= x >> 12;

x ^= x << 25;

x ^= x >> 27;

var random = x * 0x2545F4914F6CDD1DULL;

... отдаём random потребителю

... сохраняем вместо 12345

x = random;

Это частный случай хорошо известного подхода, вполне корректный и стоящий в одном ряду со многими другими

Нет смысла вычитывать данных из /dev/random. Или насиловать процессор генераторами псевдослучайных чисел из стандартной библиотеки своего тулчейна.

Они потому и низкопроизводительные, что управляют распределением. Например, выдавая нормальное распределение случайных величин — стандартное распределение, Гаусса — Лапласа, с математическим ожиданием μ = 0 и стандартным отклонением σ = 1.

А получать большие массивы данных в виде псевдослучайной последовательности с периодом 2^64 можно и гораздо более простыми способами.

При разных прогонах можно использовать одно и то же начальное значение. Тогда генерируются одинаковые гигабайты данных, обеспечивающие воспроизводимость с повторяемостью, но и без необходимости их где-то сохранять.

[#]programming #программирование #софт #трудовыебудни

=> More informations about this toot | View the thread | More toots from grumb@idealists.su

Mentions

Tags

=> View programming tag | View программирование tag | View софт tag | View трудовыебудни tag

Proxy Information
Original URL
gemini://mastogem.picasoft.net/toot/113908484507246328
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
220.193463 milliseconds
Gemini-to-HTML Time
1.693457 milliseconds

This content has been proxied by September (3851b).