|
|
rss_habr
Размышление об Active Object в контексте Qt6. Часть 2.6Понедельник, 23 Января 2023 г. 17:59 (ссылка)
В предыдущей части цикла я описал способ вызова слота посредством очереди обработки сигнально-слотовых соединений Qt (она же очередь событий). Но совсем забыл про такую штуку, как QMetaObject::invokeMethod. А ведь эта штука позволяет добиться такого же эффекта (вызов метода в потоке-владельце QObject), но без необходимости создания сигнала. Читать далееhttps://habr.com/ru/post/712328/?utm_source=habrahabr&utm_medium=rss&utm_campaign=712328
rss_habr
Размышление об Active Object в контексте Qt6. Часть 3. HttpManagerВоскресенье, 15 Января 2023 г. 10:47 (ссылка)
Во всех предыдущих статьях мы рассматривали лишь самый простой пример — сериализованный вывод сообщений на экран в отдельном потоке. Пришло время, наконец, сделать что-то более реальное и существенное, пусть и не очень сложное. И этим будет менеджер http запросов. Читать далееhttps://habr.com/ru/post/710656/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710656
rss_habr
Размышление об Active Object в контексте Qt6. Часть 2.5Суббота, 14 Января 2023 г. 07:29 (ссылка)
Статья выпущена как дополнение к предыдущей и показывает, как можно сделать Active object, работающий асинхронно в среде Qt, но при этом не использующий события. Читать далееhttps://habr.com/ru/post/710550/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710550
rss_habr
Размышление об Active Object в контексте Qt6. Часть 2Пятница, 13 Января 2023 г. 05:52 (ссылка)
Пришло время написать вторую часть статьи. На этот раз мы рассмотрим нечто, к чему вы скорее всего придёте, работая над многопоточным кодом с использованием Qt. Читать далееhttps://habr.com/ru/post/710368/?utm_source=habrahabr&utm_medium=rss&utm_campaign=710368
rss_habr
Современные возможности C++ и проверенные паттерны: активный объект, внешний полиморфизм и корутиныПонедельник, 09 Января 2023 г. 11:21 (ссылка)
В этой статье я покажу, как внешний полиморфизм (реализация полиморфного поведения вне объекта, для которого такое поведение требуется) помогает писать красивые и чистые программы, и расскажу о некоторых базовых и продвинутых способах реализации. Примером будет служить старый добрый паттерн многопоточного программирования “активный объект”. В конце я покажу, как просто реализовать этот паттерн с помощью корутин из стандарта C++20, и как вы можете использовать их, чтобы сделать активный объект еще лучше, добавив в него настоящие асинхронные функции. Читать далееhttps://habr.com/ru/post/709436/?utm_source=habrahabr&utm_medium=rss&utm_campaign=709436
rss_habr
[Перевод] Как можно ускорить Python сегодняСуббота, 31 Декабря 2022 г. 13:00 (ссылка)
Один только третий пункт позволил увеличить быстродействие в 12 раз притом, что четвёртый позволяет добиться ещё большего за счёт ускорителя. Эти простые техники могут оказаться бесценными при работе с Python, когда требуется добиться дополнительного ускорения программы. Описанные здесь приёмы позволяют нам уверенно продвигаться вперёд без длительного ожидания результатов. Читать дальше → https://habr.com/ru/post/708358/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708358
rss_habr
Многопоточность на фронте: абсурд или прекрасное архитектурное решение?Воскресенье, 28 Ноября 2022 г. 01:48 (ссылка)
Веб-сайты уже давно перестали напоминать простые листы с текстовой информацией. Сейчас это полнофункциональные приложения, порой с очень сложной и тяжелой логикой. А чем больше логики и чем сложнее она становится, тем сильнее сайт начинает замедляться, что, естественно, не нравится пользователям. Сейчас это решают разными способами, например с помощью ленивой подгрузки, а более рисковые пробуют применять микрофронты или виджетные системы. Однако есть еще один вектор, на который пока никто не обращает внимания: использование многопоточности в браузере. Практически во всех областях IT-разработки весь мир перешел на использование многопоточности: мобильные приложения, бэкенд, прикладное программирование. И даже процессоры развиваются в сторону увеличения количества ядер. Но на фронте многопоточность используют нечасто, и эта тема до сих пор почему-то не очень популярна, особенно в ру-сообществе. Сегодня я постараюсь это исправить, открыв для вас фантастический мир многопоточности в браузере. Читать далееhttps://habr.com/ru/post/701914/?utm_source=habrahabr&utm_medium=rss&utm_campaign=701914
rss_habr
Как работать с процессами и потоками в PythonСреда, 23 Ноября 2022 г. 10:50 (ссылка)
Раскрывать тему параллельного или асинхронного программирования непросто. Во-первых, она перегружена терминологией и трудна для понимания. Как правило, тонкости и особенности работы с языками усваиваются, лишь когда столкнешься с ними на практике. Во-вторых, в контексте Python тоже много своих подводных камней. Но сегодня почти любой современный web-сервис сталкивается с необходимостью многопоточности или асинхронности. Поскольку это многопользовательская среда, мы хотим направить всю процессорную мощность не на ожидание, а на решение прикладных задач бизнеса, чтобы все пользователи во время получили необходимые данные. Эта статья будет полезна тем разработчикам, которые хотят выполнять больше работы за одно и то же время и задействовать все ресурсы своего железа. Проще говоря, делать больше при этом обходиться меньшими ресурсами. Пусть железо работает, а не простаивает. Читать далееhttps://habr.com/ru/post/701020/?utm_source=habrahabr&utm_medium=rss&utm_campaign=701020
rss_habr
[recovery mode] Уменьшение размера файла в СУБД Ред База Данных / Firebird без операции backup & restoreСреда, 02 Ноября 2022 г. 16:59 (ссылка)
Добрый день. Меня зовут Сергей, я работаю системным архитектором в компании "РЕД СОФТ". Как я уже писал в прошлой статье, одна из проблем при эксплуатации СУБД Ред База Данных и Firebird — это уменьшение размер файла, выполнить которое возможно исключительно через backup и restore. Это долгие операции и даже при всех возможных оптимизациях будут занимать несколько часов или даже суток. В большинстве случаев нет необходимости в уменьшении размера БД. Свободное место будет использоваться при вставке данных, а также для хранения старых, но ещё активных версий данных (В Firebird используется механизм MVCC). Однако в некоторых случаях это сделать полезно (или вам просто очень хочется). Читать далееhttps://habr.com/ru/post/697102/?utm_source=habrahabr&utm_medium=rss&utm_campaign=697102
rss_habr
Как работать с атомарными типами данных в C++Вторник, 25 Октября 2022 г. 12:01 (ссылка)
Насколько популярна сегодня тема атомарных данных, настолько же она обширна для одной статьи. Можно подробно останавливаться на разных аспектах атомарности: например, анализировать memory ordering, рассуждать о lock-free алгоритмах с использованием атомиков или исследовать производительность атомиков на разных платформах. Под катом мы рассмотрим некоторые базовые принципы работы с атомарными типами данных в языке C++. А именно: осветим работу с атомарными данными, основные операции с ними в стандартной библиотеке C++, а также некоторые аспекты использования атомиков с пользовательскими типами данных. Читать далееhttps://habr.com/ru/post/694284/?utm_source=habrahabr&utm_medium=rss&utm_campaign=694284
rss_habr
Приручаем многопоточность в Node.js (часть 5: автомасштабирование под нагрузку)Четверг, 20 Октября 2022 г. 10:45 (ссылка)
В прошлых частях цикла мы: - рассмотрели базовые концепты работы с многопоточностью в JavaScript на примере среды Node.js; - научились формировать общую очередь и каналы обмена данными и сигналами, чтобы более эффективно управлять загрузкой потоков; - использовали разделяемую память и Atomics-операции как самое быстрое средство обмена большими блоками данных; - и создали отдельный поток-координатор, чтобы устранить негативное влияние синхронного кода в основном потоке исполнения на загрузку потоков вспомогательных. В сегодняшней, заключительной, части я продемонстрирую, как все эти механики вместе позволяют сделать эффективный микросервис, автоматически подстраивающийся под изменения входящей нагрузки. В данном случае эффективность - это не про максимально возможную скорость обработки каждой отдельной задачи, а про сбалансированное использование аппаратных ресурсов с учетом тех ограничений, на которые мы готовы пойти. Особенно актуально это для различных "облачных" размещений, где оплата идет за фактически потребленные CPU и RAM. Читать далееhttps://habr.com/ru/post/693738/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693738
rss_habr
Многопоточность Java. #неОпятьАСнова #javaJunior #javaCoreЧетверг, 14 Октября 2022 г. 00:36 (ссылка)
Тезисно про многопоточность в Java. Читать далееhttps://habr.com/ru/post/693244/?utm_source=habrahabr&utm_medium=rss&utm_campaign=693244
rss_habr
Приручаем многопоточность в Node.js (часть 4: координатор против синхронного кода)Вторник, 04 Октября 2022 г. 15:50 (ссылка)
В предыдущей части мы научились эффективно передавать данные вспомогательным потокам из основного через разделяемую память, используя Но мы рассматривали все-таки идеальную ситуацию, когда основной поток больше ничем не занимался, кроме обмена с "подчиненными" уже заранее готовыми данными. В реальных же приложениях такое встречается достаточно редко - обычно эти самые данные приходится готовить непосредственно перед передачей. И, бывает, в этом участвует существенная доля синхронного кода, что для JavaScript крайне неприятно, но иногда неизбежно - например, при вычислении регулярных выражений. Давайте оценим, насколько синхронные операции "роняют" производительность нашего тестового приложения. И узнаем, как можно в разы улучшить ее, "скрестив ужа с ежом", используя выделенный поток-координатор из позапрошлой части статьи совместно с разделяемой памятью. Читать далееhttps://habr.com/ru/post/691352/?utm_source=habrahabr&utm_medium=rss&utm_campaign=691352
rss_habr
Приручаем многопоточность в Node.js (часть 3: разделяемая память, атомарные операции и блокировки)Четверг, 29 Сентября 2022 г. 09:55 (ссылка)
В предыдущей части мы остановились на мысли, что минимизировать простой вспомогательных потоков нашего приложения можно, если заставить их самих получать себе задачи, не дожидаясь, пока их загрузит кто-то другой со стороны. Но тут возникает две проблемы: 1. как эффективно доставить данные в обрабатывающий поток 2. как распределять задачи между активными потоками, чтобы ничего не пропустить, но и дважды не обработать В этом нам как раз и помогут два рассматриваемых в этой статье концепта работы с многопоточностью: разделяемая (shared) память и потокобезопасные (thread-safe, Atomics) операции над ней. Читать далееhttps://habr.com/ru/post/689864/?utm_source=habrahabr&utm_medium=rss&utm_campaign=689864
|
LiveInternet.Ru |
Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат О проекте: помощь|контакты|разместить рекламу|версия для pda |