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

Насколько быстро Python может обработать 1 миллиард строк данных?

Doug Mercer

0:00 / 0:00

Насколько быстро Python может обработать 1 миллиард строк данных?

284 194 просмотра · 2 года назад
Doug Mercer
14,9 тыс. подписчиков
284 194 просмотра · 2 года назад
Чтобы бесплатно попробовать все предложения Brilliant в течение целых 30 дней, посетите сайт https://brilliant.org/DougMercer. Вы также получите скидку 20% на годовую премиум-подписку. ————————————————————————————————— Запишитесь на индивидуальное обучение на сайте https://dougmercer.dev —————————————————————————————————— Задание «1 миллиард строк» ​​— это увлекательное испытание, в котором вы сможете проверить, насколько быстро можно обработать большой текстовый файл и вычислить сводную статистику. Сообщество программистов разработало несколько удивительно умных решений. В этом видео я расскажу о некоторых из лучших стратегий написания высокопроизводительного кода на Python. Я начну с простейшего подхода и постепенно перейду к JIT-компиляции, многопроцессорной обработке и отображению памяти. В итоге у меня получилась реализация на чистом Python, которая всего на порядок медленнее, чем высокооптимизированный победитель конкурса Java. Кроме того, я показываю два гораздо более простых, но столь же производительных решения, использующих библиотеку Polars DataFrame и DuckDB (SQL-базу данных в памяти). На практике стоит использовать именно их, поскольку они невероятно быстрые и простые в использовании. Если вы хотите попробовать ещё больше ускорить процесс, код можно найти здесь: https://github.com/dougmercer-yt/1brc. Ссылки ------------------ Главная задача - https://github.com/gunnarmorling/1brc Ifnesi - https://github.com/ifnesi/1brc/tree/main Booty - https://github.com/booty/ruby-1-billion/ Решение Дэнни ван Кутена на языке C, запись в блоге - https://www.dannyvankooten.com/blog/2... Отличная запись в блоге о DuckDB - https://rmoff.net/2024/01/03/1%EF%B8%... Дуэль pypy против Cpython, запись в блоге - https://jszafran.dev/posts/how-pypy-i... Главы ---------------- 0:00 Вступление 1:09 Начнём с простого 2:55 Постараемся ускориться 10:48 Сторонние библиотеки 13:17 А как насчёт Java или C? 14:17 Спонсор 16:04 Заключение Музыка ---------- "4" от HOME, выпущено по лицензии CC BY 3.0 DEED, https://home96.bandcamp.com/album/res... Купите их музыку! Раскрытие информации ----------------- Это видео спонсировано Brilliant. #python #datascience #pypy #polars #duckdb #1brc