Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах

Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#. В целом, эффективное использование вычислительных ресурсов, включая процессор, является одним из главных аспектов разработки программного обеспечения. В этой статье мы рассмотрим несколько ключевых подходов и стратегий оптимизации нагрузки на CPU в языке программирования C#.

https://habr.com/ru/articles/976414/

#оптимизация #cpu #net #c# #unity #алгоритмы #параллелизм #циклы

Оптимизация загрузки CPU в C# (и немного в Unity): ключевые подходы и стратегии на примерах

Оптимизация CPU в приложениях на C# Всем привет! Сегодня хотелось бы затронуть такую тему, как оптимизация CPU для ваших приложений на C#.   В целом, эффективное использование вычислительных...

Хабр

[Перевод] Почему Erlang до сих пор король отказоустойчивых систем

Задумывались ли вы когда-нибудь, как построить самое стабильное приложение в мире? Какими свойствами оно должно обладать и какие архитектурные подходы делают это возможным? Впечатляет, что приложения вроде Discord и WhatsApp выдерживают миллионы одновременных пользователей, тогда как другие задыхаются уже на нескольких тысячах. Сегодня посмотрим, как Erlang позволяет обрабатывать огромную нагрузку и при этом держать систему живой и стабильной. К архитектуре Erlang

https://habr.com/ru/companies/otus/articles/974876/

#высоконагруженные_системы #erlang #отказоустойчивость #архитектура_приложений #масштабирование #распределённые_системы #параллелизм

Почему Erlang до сих пор король отказоустойчивых систем

Привет! Задумывались ли вы когда-нибудь, как построить самое стабильное приложение в мире? Какими свойствами оно должно обладать и какие архитектурные подходы делают это возможным? Впечатляет, что...

Хабр

Три способа менять один объект из нескольких потоков. Больше нет

Три способа менять один объект из нескольких потоков. Больше нет Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor… Когда читаешь про многопоточность, кажется, что способов — десятки, и каждый требует отдельного изучения. На самом деле их ровно три . Всё остальное — реализации и комбинации. Эта статья — попытка навести порядок в голове. После неё вы сможете: за 5 секунд классифицировать любой подход к конкурентности; понимать, почему Erlang выбрал акторы, а Java предлагает synchronized ; не изобретать велосипеды и не зацикливаться на «единственно правильном» решении; проектировать многопоточный код, держа в голове простую модель

https://habr.com/ru/articles/974198/

#параллелизм #параллельное_программирование

Три способа менять один объект из нескольких потоков. Больше нет

Mutex, CAS, акторы, STM, CRDT, иммутабельность, MVCC, Disruptor… Когда читаешь про многопоточность, кажется, что способов — десятки, и каждый требует отдельного изучения. На самом деле их ровно три ....

Хабр

Передачи данных в воркеры JavaScript

Передача данных между воркерами в JavaScript, не так проста и имеет массу особенностей завязанных на реализации потоков в языке. Хотите узнать о том какие ограничения накладывает архитектура многопоточки JS и как эти ограничения безопасно обойти? Хочу!

https://habr.com/ru/articles/965584/

#воркеры #javascript #nodejs #параллелизм #многопоточность

Передачи данных в воркеры JavaScript

В предыдущей статье мы подробно рассмотрели настойку воркеров через аргументы передаваемые в конструктор класса Worker . В данной статье мы рассмотрим нюансы обмена данными между потоками. Все примеры...

Хабр

Как работает компьютер. Простая статья для начинающих программистов

В этой статье изложено всё, что нужно знать об устройстве компьютера с точки зрения программиста, а именно: для чего нужен тактовый генератор, регистры, кэши и виртуальная память; что такое архитектура процессора; что такое машинный код и код ассемблера; чем отличается компиляция в машинный код в C, C++ или Rust от компиляции в байт-код виртуальной машины в языках типа Java и C#; в чём их отличие от интерпретируемых языков вроде JavaScript или Python; что такое динамические и статические библиотеки (.dll/.so, .lib/.a); что такое фреймворк; что такое API и web-API; и что собой представляет параллельное программирование с использованием многоядерных процессоров, векторных регистров и видеокарт.

https://habr.com/ru/articles/964572/

#процессор #кэш #регистр #виртуальная_память #компиляция #интерпретаторы #параллелизм #gpu #векторные_операции #api

Как работает компьютер. Простая статья для начинающих программистов

В этой статье изложено всё, что нужно знать об устройстве компьютера с точки зрения программиста. А именно: для чего нужен тактовый генератор, регистры, кэши и виртуальная память что такое архитектура...

Хабр

[Перевод] Почему асинхронный Python не такой популярный?

Недавно на Youtube появилась документалка о Python . Примерно в середине ленты есть драматический эпизод о том, как переход от Python 2 к 3 разделил сообщество (спойлер: в конечном итоге этого не случилось ). Первые версии Python 3 (3.0-3.4) в основном делали упор на стабильность и упрощение перехода пользователей с версии 2.7. В 2015 была выпущена версия 3.5 с новой фичей: ключевыми словами async и await для выполнения корутин . Миновало десять лет и девять релизов, через считанные недели выпустят финальную версию Python 3.14. Пока все отвлеклись на фичи разноцветного REPL в 3.14, в release notes появились серьёзные заявления, связанные с конкурентностью и параллелизмом.

https://habr.com/ru/articles/943878/

#конкурентность #параллелизм #gil #async #await #asyncio

Почему асинхронный Python не такой популярный?

Недавно на Youtube появилась документалка о Python . Примерно в середине ленты есть драматический эпизод о том, как переход от Python 2 к 3 разделил сообщество (спойлер:  в конечном итоге этого...

Хабр

Всё про BlockingCollection и фичи с ними

Привет, Хабр! В .NET живёт старый, понятный инструмент для конкурентной обработки — BlockingCollection<T> . Коллекция, которая упрощает модель producer–consumer, даёт строгую ограниченную вместимость и предсказуемую блокировку при пустоте или переполнении. Да, у нас есть Channel<T> , есть TPL Dataflow, есть миллион самодельных очередей на SemaphoreSlim . Но когда нужны простые правила и железный backpressure без BlockingCollection по-прежнему закрывает задачи хорошо.

https://habr.com/ru/companies/otus/articles/943164/

#c# #конкурентность #многопоточность #очередь_задач #параллелизм #управление_потоками #отказоустойчивость

Всё про BlockingCollection и фичи с ними

Привет, Хабр! В .NET живёт старый, понятный инструмент для конкурентной обработки — BlockingCollection<T> . Коллекция, которая упрощает модель producer–consumer, даёт строгую ограниченную...

Хабр

Я объявляю «войну» интеллекту… человеческому. Часть 1

Это не мы такие – жизнь такая. Это не я объявляю «войну», а искусственный интеллект (ИИ), который является главным участником беседы. Я лишь «передатчик» и в малой мере - интервьюер. А ИИ, отвечая на вопросы, своим корректным поведением, логикой, знаниями, рассуждением и выводами подает пример «интеллекту человеческому». Вам, прочитавшим диалог, не будет ли стыдно за поведение, за свои выводы, за отношение к таким же, как вы… Вольно или нет, но ИИ объявляет «войну» серости и хамству, высокомерию и чванству, низкой культуре и безграмотности. Всему тому, что, порой, приводит к самой настоящей войне. Будьте добрее, вежливее, логичнее, уважительнее и «войны» отступят, т.к. в них не будет смысла. Вместо них будет… А, что будет, - «жизнь покажет и жизнь рассудит». Короче, – давайте жить дружно!

https://habr.com/ru/articles/940208/

#ии #автоматное_программирование #esp32 #c++ #параллелизм

Я объявляю «войну» интеллекту… человеческому. Часть 1. (из цикла бесед с ИИ)

Предисловие Это не мы такие – жизнь такая. Это не я объявляю «войну», а искусственный интеллект (ИИ), который является главным участником беседы. Я лишь «передатчик» и в малой мере - интервьюер. А ИИ,...

Хабр

Распределенные системы: распространенные ошибки и сложности

​Сложность распределённых систем — важная проблема. В этой статье разработчики компании DST Global рассмотрят типы сложности, с которыми вы можете столкнуться, и эффективные тактики их решения.

#DST #DSTGlobal #ДСТ #ДСТГлобал #Распределенныесистемы #Монолитная #архитектура #микросервисы #ACID #базаданных #NoSQL #Cassandra #стратегия #Параллелизм

Источник: https://dstglobal.ru/club/1099-raspredelennye-sistemy-rasprostranennye-oshibki-i-slozhnosti

Efficient Computer: программируем по кафелю

Экспериментируем с компилятором для новой не Фон-Неймановской архитектуры, обещающей повышение энергоэффективности в 100 раз.

https://habr.com/ru/articles/931536/

#iot #edge #энергоэффективность #параллелизм #архитектура

Efficient Computer: программируем по кафелю

Efficient Computer — стартап из Питтсбурга, основанный в 2022 году командой исследователей из Университета Карнеги-Меллона. Между прочим, именно Университет Карнеги-Меллона является основным...

Хабр