Telegram Group & Telegram Channel
Недавно я наткнулся на интересный вызов — обработать файл размером 12 ГБ, содержащий 1 миллиард строк формата <stationName>;<temperature>\n, с целью агрегировать минимальное, максимальное и среднее значения температуры для каждой станции. В своем блоге Jacky Efendi поделился своим опытом решения этой задачи с использованием Node.js, достигнув ускорения примерно в 30 раз по сравнению с базовой реализацией.

Jacky начал с базового подхода, используя встроенные модули Node.js для построчного чтения файла и хранения агрегированных данных в структуре Map(). Затем он провел профилирование кода с помощью Clinic.js Flame, чтобы определить узкие места производительности. Основное время выполнения занимала функция StringPrototypeSplit, используемая для разделения строк.

Для оптимизации Jacky предложил несколько улучшений:

1. Сокращение вызовов StringPrototypeSplit: уменьшение количества вызовов этой функции для повышения эффективности.
2. Более быстрые преобразования Buffer в числа: оптимизация процесса преобразования данных из буфера в числовые значения.
3. Параллелизация обработки: распределение работы между несколькими потоками или процессами для ускорения обработки больших объемов данных.

https://jackyef.com/posts/1brc-nodejs-learnings

✍️ @nodejs_lib



tg-me.com/nodejs_lib/338
Create:
Last Update:

Недавно я наткнулся на интересный вызов — обработать файл размером 12 ГБ, содержащий 1 миллиард строк формата <stationName>;<temperature>\n, с целью агрегировать минимальное, максимальное и среднее значения температуры для каждой станции. В своем блоге Jacky Efendi поделился своим опытом решения этой задачи с использованием Node.js, достигнув ускорения примерно в 30 раз по сравнению с базовой реализацией.

Jacky начал с базового подхода, используя встроенные модули Node.js для построчного чтения файла и хранения агрегированных данных в структуре Map(). Затем он провел профилирование кода с помощью Clinic.js Flame, чтобы определить узкие места производительности. Основное время выполнения занимала функция StringPrototypeSplit, используемая для разделения строк.

Для оптимизации Jacky предложил несколько улучшений:

1. Сокращение вызовов StringPrototypeSplit: уменьшение количества вызовов этой функции для повышения эффективности.
2. Более быстрые преобразования Buffer в числа: оптимизация процесса преобразования данных из буфера в числовые значения.
3. Параллелизация обработки: распределение работы между несколькими потоками или процессами для ускорения обработки больших объемов данных.

https://jackyef.com/posts/1brc-nodejs-learnings

✍️ @nodejs_lib

BY Node JS




Share with your friend now:
tg-me.com/nodejs_lib/338

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Start with a fresh view of investing strategy. The combination of risks and fads this quarter looks to be topping. That means the future is ready to move in.Likely, there will not be a wholesale shift. Company actions will aim to benefit from economic growth, inflationary pressures and a return of market-determined interest rates. In turn, all of that should drive the stock market and investment returns higher.

Why Telegram?

Telegram has no known backdoors and, even though it is come in for criticism for using proprietary encryption methods instead of open-source ones, those have yet to be compromised. While no messaging app can guarantee a 100% impermeable defense against determined attackers, Telegram is vulnerabilities are few and either theoretical or based on spoof files fooling users into actively enabling an attack.

telegram from pl


Telegram Node JS
FROM USA