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: |

The seemingly negative pandemic effects and resource/product shortages are encouraging and allowing organizations to innovate and change.The news of cash-rich organizations getting ready for the post-Covid growth economy is a sign of more than capital spending plans. Cash provides a cushion for risk-taking and a tool for growth.

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

telegram from ru


Telegram Node JS
FROM USA