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

NEWS: Telegram supports Facetime video calls NOW!

Secure video calling is in high demand. As an alternative to Zoom, many people are using end-to-end encrypted apps such as WhatsApp, FaceTime or Signal to speak to friends and family face-to-face since coronavirus lockdowns started to take place across the world. There’s another option—secure communications app Telegram just added video calling to its feature set, available on both iOS and Android. The new feature is also super secure—like Signal and WhatsApp and unlike Zoom (yet), video calls will be end-to-end encrypted.

The SSE was the first modern stock exchange to open in China, with trading commencing in 1990. It has now grown to become the largest stock exchange in Asia and the third-largest in the world by market capitalization, which stood at RMB 50.6 trillion (US$7.8 trillion) as of September 2021. Stocks (both A-shares and B-shares), bonds, funds, and derivatives are traded on the exchange. The SEE has two trading boards, the Main Board and the Science and Technology Innovation Board, the latter more commonly known as the STAR Market. The Main Board mainly hosts large, well-established Chinese companies and lists both A-shares and B-shares.

telegram from ye


Telegram Node JS
FROM USA