Перейти к содержимому

Справится ли один поток с миллиардом строк?

nubskr

0:00 / 0:00

Справится ли один поток с миллиардом строк?

18 491 просмотр · 2 недели назад
nubskr
2,62 тыс. подписчиков
18 491 просмотр · 2 недели назад
Смотрите больше видео о создании программ с нуля:    • Building from Scratch   В этом видео я решаю задачу «Billion Row Challenge» (1BRC), используя Zig и однопоточный режим. «Billion Row Challenge» — это задача по оптимизации производительности программирования, в которой программа обрабатывает текстовый файл, содержащий миллиард измерений температуры. Каждая строка содержит название метеостанции и температуру, и цель состоит в том, чтобы вычислить минимальную, среднюю и максимальную температуру для каждой станции. Входной файл, используемый в этом видео, составляет около 14 ГБ, и задача допускает до 10 000 различных названий метеостанций. Я начинаю с простой однопоточной реализации, а затем оптимизирую её шаг за шагом. Я использую профилирование, чтобы определить, где программа фактически тратит время, анализирую стоимость операций с плавающей запятой и операций с хеш-таблицей, заменяю анализ температуры целочисленной арифметикой, использую mmap для доступа к файлу и измеряю, как каждое изменение влияет на производительность. Видео посвящено системному программированию, оптимизации производительности, профилированию, файловому вводу-выводу, хеш-таблицам, разбору целых чисел, mmap, Linux perf, Zig и эффективной обработке очень больших текстовых файлов. 00:00:00 Что такое «Задача миллиарда строк»? 00:00:50 Создание наивной версии 00:08:20 Отслеживание статистики 00:22:16 Давайте проведём бенчмаркинг 00:25:18 Это вообще правильно? 00:40:07 Профилирование узких мест 00:45:08 Числа с плавающей запятой — зло 01:00:30 Бенчмаркинг целочисленной версии 01:02:42 Может ли mmap нас спасти? 01:10:59 Насколько далеко может зайти один поток? #zig #systemsprogramming