|
rss_habr
Приручаем многопоточность в Node.js (часть 2: очередь, каналы и координатор)Понедельник, 26 Сентября 2022 г. 08:45 (ссылка)
В первой части статьи мы остановились на моменте, когда с помощью распределения задач между потоками по алгоритму Round-robin мы добились-таки ускорения работы приложения за счет многопоточности. Но вот неприятность: такой алгоритм очень неравномерно нагружает потоки и не полностью утилизирует их возможности - пока кто-то простаивает, другой уже копит очередь. Как это можно обойти? Читать далееhttps://habr.com/ru/post/689406/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689406
rss_habr
Приручаем многопоточность в Node.js (часть 1: базовые концепты)Среда, 21 Сентября 2022 г. 11:30 (ссылка)
Продолжаем серию статей, посвященных разным прикладным концептуальным решениям, которые могут существенно "прокачать" производительность вашего Node.js-приложения. В прошлой статье мы рассмотрели реализацию эффективной очереди на основе "эластичного" кольцевого буфера, а в этой попробуем разобраться с особенностями использования модуля Worker threads в Node.js - какие проблемы внедрения многопоточности будут нас ждать при попытках сделать код более производительным, и узнаем, как их можно обойти, применяя типовые концепты. Начнем с достаточно типовой задачи: мы получаем некоторые сообщения, и нам их надо как-то обработать. В качестве тестового примера сгенерируем эти сообщения самостоятельно, и посмотрим, за какое минимальное время мы сможем вычислить SHA-256-хэш для каждого из них. Читать далееhttps://habr.com/ru/post/689144/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689144
rss_habr
[Перевод] Пособие по программированию модулей ядра Linux. Ч.5Четверг, 08 Сентября 2022 г. 16:00 (ссылка)
https://habr.com/ru/post/686596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=686596
rss_habr
Приёмы высокоуровневой векторизации на примере Card RaytracerПонедельник, 29 Августа 2022 г. 15:10 (ссылка)
Хочу рассказать о том, как занимался оптимизацией card raytracer - минимального рейтрейсера, код которого умещается на визитке. https://habr.com/ru/post/685228/?utm_source=habrahabr&utm_medium=rss&utm_campaign=685228
rss_habr
[Перевод] 9 причин перейти с Python на GoПонедельник, 15 Августа 2022 г. 16:16 (ссылка)
Переход на новый язык — это всегда большой шаг. Особенно, если этим языком владеет только один член команды. В начале этого года мы поменяли основной язык программирования в Stream — с Python на Go. В этой статье я приведу 9 причин почему — и 3 минуса, выявленных в процессе. Кодить на Python не брошу, но посмотрюhttps://habr.com/ru/post/682084/?utm_source=habrahabr&utm_medium=rss&utm_campaign=682084
rss_habr
Холостые циклы в JavaСреда, 10 Августа 2022 г. 11:00 (ссылка)
Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать, так что добро пожаловать! Исходный код примеров доступен здесь. Читать далееhttps://habr.com/ru/post/674116/?utm_source=habrahabr&utm_medium=rss&utm_campaign=674116
rss_habr
Быстро сжимаем, быстро пишем и читаем! На JavaЧетверг, 04 Августа 2022 г. 14:20 (ссылка)
В ходе разработки IDE 1С:Enterprise Development Tools у нас возникла необходимость быстро оперировать с довольно большими (несколько гигабайтов) объемами данных. Если не вдаваться в детали: при интерактивной работе пользователя с IDE при переключении с одной ветки репозитория на другую нам нужно сохранить текущее состояние проекта и загрузить состояние проекта из новой ветки. Детали (и объяснение – почему счет идет на гигабайты) — в конце статьи, непосредственно к Java это отношения не имеет, кому интересно – прочтет. Ну а что касается Java, то задача выглядит так: быстро сохранить несколько гигабайт информации на диск и быстро считать несколько гигабайт информации с диска. Как мы решали эту задачу, с какими трудностями столкнулись и как их преодолели – под хабракатом. https://habr.com/ru/post/680838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=680838
rss_habr
[Перевод] В условиях параллелизма обнуление памяти замедляетсяСреда, 20 Июля 2022 г. 11:20 (ссылка)
Взявшись исследовать некоторые непонятки с производительностью в Chrome, я обнаружил, что Microsoft распараллелили обнуление памяти, и иногда работа из-за этого сильно замедляется. В Windows 11 такое замедление можно частично побороть, но в последних версиях Windows Server — где этот фактор наиболее важен — баг живее всех живых. Но есть и хорошие новости: по-видимому, проблема актуальна только на тех машинах, где много процессоров. Под «много» я понимаю «96 или более». Поэтому вашего ноутбука проблема не касается. И даже 96-процессорные машины могут сталкиваться с ней не так часто. Но я нашел и другие факторы, из-за которых может быть спровоцирована такая неэффективность, если сложится подходящая ситуация — и обомлел. Вы бы посмотрели, как разбазаривается мощность ЦП. Окей – давайте перейдем к деталям. Читать далееhttps://habr.com/ru/post/677872/?utm_source=habrahabr&utm_medium=rss&utm_campaign=677872
rss_habr
[Перевод] Go sync/singleflight: устранение дублирования идентичных запросовПонедельник, 18 Июля 2022 г. 11:36 (ссылка)
Довелось столкнуться с чрезмерной нагрузкой на базу данных при холодном старте проекта, а порой и при устаревании кэша. Анализ проблемы показал, что из тысяч популярных запросов несколько вызывались на порядок чаще других. Настолько часто, что за время построения кэша после первого пришедшего запроса успевало прилететь еще десятки идентичных запросов и все они паралельно нещадно грузили базу данных. Проблему в тот раз удалось решить не самым красивым образом. Поэтому, когда намедни столкнулся с похожим кейсом уже на Go-стеке, первым делом отправился в Google, чтобы не наступать на прежние грабли. К своей радости обнаружил подходящий пакет singleflight (ссылка на оф документацию), предоставляющий механизм подавления повторяющихся вызовов. Подробную информацию о пакете нашел только на англоязычных ресурсах, что и побудило меня опубликовать перевод наиболее интересной из них на Хабре. Читать далееhttps://habr.com/ru/post/677444/?utm_source=habrahabr&utm_medium=rss&utm_campaign=677444
rss_habr
Практическое использование JCStressВторник, 12 Июля 2022 г. 17:08 (ссылка)
Приветствую, в этой статье рассмотрим фреймворк JCStress, созданный для тестирования многопоточного кода и применим его для решения практических задач. Цель данной статьи - показать читателям использование JCStress не только в лабораторных работах для демонстрации эффектов связанных с JMM, но и для доказательства правильности преобразований кода. Тренироваться будем на https://habr.com/ru/post/673624/?utm_source=habrahabr&utm_medium=rss&utm_campaign=673624
rss_habr
[Перевод] Во что вам обойдется конкурентная обработка. Иерархия проблемПонедельник, 13 Июня 2022 г. 07:48 (ссылка)
rss_habr
[Перевод] Простое руководство по атомарности в C++Четверг, 09 Июня 2022 г. 10:00 (ссылка)
Часто возникает путаница с тем, что же понимается в компьютерных науках под «атомарностью». Как правило, атомарность – это свойство процесса, означающее, что он совершается за один шаг или операцию. Но в языке C++ атомарность определяется гораздо более специфичным образом. На самом деле, при использовании https://habr.com/ru/post/670456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=670456
rss_habr
[Перевод] Создание бессерверных API с помощью Node.js и AWS LambdaСреда, 01 Июня 2022 г. 18:14 (ссылка)
AWS Lambda существует уже несколько лет, и она остается самым популярным способом экспериментировать с технологией serverless. Если вы не знакомы с serverless, то это модель разработки, в которой управление, предоставление и масштабирование серверов абстрагируется от разработки приложений. Серверы существуют в бессерверном (serverless) мире, но они полностью управляются облачным провайдером, что позволяет разработчикам сосредоточиться на упаковке своего кода для деплоя. AWS Lambda — это разновидность функции как услуги (FaaS), которая позволяет выполнять код по требованию в ответ на предварительно сконфигурированные события или запросы. Эта статья познакомит вас с AWS Lambda и поможет создать и развернуть функции Lambda с помощью Node.js и AWS SAM. Давайте приступим! Читать далееhttps://habr.com/ru/post/669118/?utm_source=habrahabr&utm_medium=rss&utm_campaign=669118
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |