Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 453 сообщений
Cообщения с меткой

многопоточность - Самое интересное в блогах

«  Предыдущие 30 Следующие 30  »
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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Пособие по программированию модулей ядра Linux. Ч.5

Четверг, 08 Сентября 2022 г. 16:00 (ссылка)



Пятая часть последней версии руководства по написанию модулей ядра от 2 июля 2022 года. В ней мы разберемся, как в ядре реализована совместная работа процессов и потоков, узнаем, какую роль в этом играет режим ожидания (sleep), рассмотрим возможные способы избежания коллизий и взаимных блокировок, а также познакомимся с назначением и использованием атомарных операций. Читать дальше →

https://habr.com/ru/post/686596/?utm_source=habrahabr&utm_medium=rss&utm_campaign=686596

Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Приёмы высокоуровневой векторизации на примере Card Raytracer

Понедельник, 29 Августа 2022 г. 15:10 (ссылка)

Хочу рассказать о том, как занимался оптимизацией card raytracer - минимального рейтрейсера, код которого умещается на визитке.

Точнее, это развёрнутая для лучшей читабельности версия, которая в форумной ветке
использовалась как тест скорости разных языков.

Когда я наткнулся на эту ветку, я как раз изучал компиляторы Cи, и конечно немедленно вознамерился всех порвать обогнать. В результате действительно обогнал, но с нарушением правил - слегка поправив структуру данных.

Тем не менее, это хороший пример того, как можно "заточить" код под векторизацию, с сохранением читабельности и умеренным ростом объёма и сложности. Я расскажу, какие есть варианты векторизации, как перестроить код и данные, и наконец, как переложить на компилятор черновую работу по кодогенерации - используется автовекторизация, векторные расширения и совсем немного интринсики.

Наверное, статья в большей степени полезна новичкам, но и опытные разработчики (по привычке с 2000-го года пишущие SIMD-код интринсиками) могут найти что-то новое.

Компилятор - в основном Clang, можно GCC, в конечном итоге я адаптировал и под MSVC.

Читать далее

https://habr.com/ru/post/685228/?utm_source=habrahabr&utm_medium=rss&utm_campaign=685228

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Холостые циклы в Java

Среда, 10 Августа 2022 г. 11:00 (ссылка)

Привет, сегодня поговорим о тонкостях реализации холостых циклов (холостого ожидания) в Java. Эта задача встречается нечасто: за девять с небольшим лет работы я столкнулся с ней лишь пару раз. Тем не менее, тема видится интересной и по ней есть что сказать, так что добро пожаловать! Исходный код примеров доступен здесь.

Читать далее

https://habr.com/ru/post/674116/?utm_source=habrahabr&utm_medium=rss&utm_campaign=674116

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Быстро сжимаем, быстро пишем и читаем! На Java

Четверг, 04 Августа 2022 г. 14:20 (ссылка)

В ходе разработки IDE 1С:Enterprise Development Tools у нас возникла необходимость быстро оперировать с довольно большими (несколько гигабайтов) объемами данных. Если не вдаваться в детали: при интерактивной работе пользователя с IDE при переключении с одной ветки репозитория на другую нам нужно сохранить текущее состояние проекта и загрузить состояние проекта из новой ветки. Детали (и объяснение – почему счет идет на гигабайты) — в конце статьи, непосредственно к Java это отношения не имеет, кому интересно – прочтет. Ну а что касается Java, то задача выглядит так: быстро сохранить несколько гигабайт информации на диск и быстро считать несколько гигабайт информации с диска. Как мы решали эту задачу, с какими трудностями столкнулись и как их преодолели – под хабракатом.



image
Читать дальше →

https://habr.com/ru/post/680838/?utm_source=habrahabr&utm_medium=rss&utm_campaign=680838

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

Практическое использование JCStress

Вторник, 12 Июля 2022 г. 17:08 (ссылка)

Приветствую, в этой статье рассмотрим фреймворк JCStress, созданный для тестирования многопоточного кода и применим его для решения практических задач.

Цель данной статьи - показать читателям использование JCStress не только в лабораторных работах для демонстрации эффектов связанных с JMM, но и для доказательства правильности преобразований кода. Тренироваться будем на кошках JDK.

Читать далее

https://habr.com/ru/post/673624/?utm_source=habrahabr&utm_medium=rss&utm_campaign=673624

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Во что вам обойдется конкурентная обработка. Иерархия проблем

Понедельник, 13 Июня 2022 г. 07:48 (ссылка)

https://habr.com/ru/post/671042/?utm_source=habrahabr&utm_medium=rss&utm_campaign=671042

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_habr

[Перевод] Простое руководство по атомарности в C++

Четверг, 09 Июня 2022 г. 10:00 (ссылка)

Часто возникает путаница с тем, что же понимается в компьютерных науках под «атомарностью». Как правило, атомарность – это свойство процесса, означающее, что он совершается за один шаг или операцию. Но в языке C++ атомарность определяется гораздо более специфичным образом. На самом деле, при использовании std::atomic с классами и типами еще не гарантируется, что весь код будет подлинно атомарным. Хотя, атомарные типы и входят в состав языка C++, сами атомарные операции должны поддерживаться на уровне того аппаратного обеспечения, на котором работает программа. Эта статья – простое руководство, помогающее понять, что же представляет собой атомарность в C++.

Читать далее

https://habr.com/ru/post/670456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=670456

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
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

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

«  Предыдущие 30 Следующие 30  »

<многопоточность - Самое интересное в блогах

Страницы: 1 [2] 3 4 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda