1.6Kпросмотров
39.0%от подписчиков
9 марта 2026 г.
📷 ФотоScore: 1.8K
Да это ваш CS никому не нужен! А тем временем мой студент Максим (Т-Банк) делится своими кейсами с работы: Помнишь говорил про задачу, что у нас event-loop забивался при сериализации json'a в строку?
Коллега с ней больше двух недель копался, чё только не перепробовал.
Сегодня руководитель попросил меня заменить его по задачке т.к. он уже на ней подвыгорать начал и в целом свежий взгляд не помешал бы
Переписал парсинг на поточный + применил зелёные потоки и на втором скрине можно увидеть улучшения)) ... В итоге щас переписал все функции генерации сэмплов на генераторы, поток с сериализацией сразу направил в body fetch'а, а в go принимаю до N сэмплов и отправляю их сразу в sage Как итог
1) Го теперь почти не ест памяти, только CPU time на обработку протобафа
2) Нода тоже по памяти теперь никуда не вылезает, чисто CPU time и расходы на хранение лейблов в реджистри пром-клиента
3) GC и ELL стали работать адекватно даже не на bun, а на чистой ноде т.к. теперь GC не надо всю json вычищать, а только чанки
Отличное подтверждение тезиса: «Кто хочет действовать, тот ищет возможности, кто не хочет — ищет причины» Сократ А что конкретно применил здесь Максим? Никакой магии: поточная обработка данных и кооперативная многозадачность. Давно известные и широко применяемые далеко за пределами JS техники. В JS применять такой подход удобнее всего используя генераторы. Я даже записывал 11 лет назад (вот время летит 🙈) короткий демонстративный ролик по этой теме на YouTube. И, разумеется, этой теме посвящено несколько отдельных лекций на моем курсе по CS. А в этот четверг я хочу провести ОТКРЫТЫЙ УРОК с примером возможной реализации библиотеки для кооперативной многозадачности. Это будет Live-код секция, где мы за два часа с нуля напишем свой планировщик и API для создания зеленых потоков с использованием генераторов. Чтобы попасть на лекцию нужно предварительно зарегистрироваться. Запись тоже будет. [Регистрация] До встречи в четверг!