Библиотека С# С++
10.4K subscribers
168 photos
8 videos
179 files
159 links
https://t.me/+WgGTjeH0p1NjMDFi - ссылка на канал
По всем вопросам- @workakkk

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci- C# академия

@pythonlbooks- python книги📚

РКН: clck.ru/3Fmvsw
Download Telegram
🏎️ Сравнение производительности C++20

ComPPare — это инструмент для бенчмаркинга и валидации производительности различных реализаций функций на C++20. Он позволяет сравнивать время выполнения и проверять результаты для разных платформ, таких как CPU, OpenMP и CUDA, что упрощает портирование функций.

🚀 Основные моменты:
- Заголовочный файл, легко интегрируется в проекты.
- Поддержка любых функций, работающих на хосте.
- Подробная информация о времени выполнения и накладных расходах.
- Встроенная проверка ошибок для распространенных типов данных.

📌 GitHub: https://github.com/funglf/ComPPare

#cpp
🔥3👍1
Forwarded from C++ Academy
🔥 Полезный репозиторий, который представляет собой коллекцию популярных заблуждений, ложных утверждений и неправильных представлений о технологиях, которые часто встречаются в программировании и в области разработки программного обеспечения!

🔐 Лицензия: CC0-1.0

🔗 Ссылка: *клик*

@cpluspluc
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
📬 Как построить лёгкую in-memory шину сообщений на .NET Channels - отличный разбор.

В статье показано, как без внешних брокеров организовать событийную архитектуру внутри приложения, используя System.Threading.Channels. Быстро, минималистично и эффективно.

🔗 Читать здесь: milanjovanovic.tech/blog/lightweight-in-memory-message-bus-using-dotnet-channels

#dotnet #csharp #architecture #messaging #inmemory```
3🔥1
🖥 Статья: Грязные трюки C++ из userver и Boost!

🌟 Когда мы пишем какой‑то код для userver и для таких сложных проектов, как Boost, периодически мы сталкиваемся с нестандартными проблемами.

И эти нестандартные проблемы требуют нестандартных решений.

Вот о таких решениях мы сегодня и поговорим.

А именно:

Посмотрим, как работают исключения на платформе Linux x86, и сделаем с ними что‑то интересное.

Залезем ещё глубже под капот исключений и сделаем их ещё быстрее.

Сделаем висячую ссылку на невалидный объект, и всё будет хорошо.

А под конец то, что все любим, — погрузимся в шаблонное метапрограммирование.

🔗 Читать дальше: *клик*
🔗 Код из статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍1
Готовы с нуля создавать телекоммуникационные решения для беспроводных мобильных сетей и сопутствующих услуг? 🧑‍💻

Отправляйте резюме до 19 октября и присоединяйтесь к команде YADRO Телеком!

Как получить оффер за 3 дня? Листайте карточки выше — все подробности там!

💙 Оставляйте заявку — мы ждём именно вас!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🎶 Библиотека для музыкальных векторов и алгоритмов

Vectors — это C++ библиотека для представления и манипуляции музыкальными структурами, такими как гаммы, аккорды и ритмы. Она предлагает мощные инструменты для музыкальных теоретиков и разработчиков, интересующихся алгоритмической музыкой.

🚀 Основные моменты:
- Унифицированные классы векторов для позиций, интервалов и бинарных паттернов
- Генераторы ритмов и мета-операторы для музыкальных объектов
- Матричные операции для анализа музыкальных структур
- Поддержка циклической и модульной арифметики
- Расчеты расстояний и схожести между музыкальными векторами

📌 GitHub: https://github.com/sivabenepoivediamo/vectors
2
Прочитал у Вани Ходора, бэкендера из Лавки, пост про спекулятивное исполнение. Speculative execution — это мощный паттерн, где система предугадывает ваше следующее действие, заранее выполняя вычисления или подгружая данные.

В системном мире мы с этим живём постоянно. Процессоры уже десятилетиями предсказывают ветки кода, чтобы не простаивать. И именно поэтому они такие быстрые. Однако за эту высокую скорость пришлось платить — именно такой ценой появились уязвимости вроде Spectre. Даже железо может переусердствовать с догадками.

В прикладных системах то же самое:
спекуляция делает интерфейсы «мгновенными», но за кулисами идёт реальный перерасход. Предзагрузил слишком много — серверы греются, а пользователи даже не дошли до этой функции.

Я бы сказал так:

> спекулятивное исполнение — это ставка на интуицию машины.
> хорошо, когда она угадывает желания пользователя, плохо — когда начинает гадать.

В C++ подобные вещи ощущаются буквально: лишние вычисления, преждевременные аллокации, работа с кэшем — всё это цена «догадок». Если не знаешь, ради чего ускоряешь, то, скорее всего, просто сжигаешь ресурсы.

Speculative execution — крутой инструмент, но использовать его стоит только там, где задержка реально убивает UX или бизнес-метрику. В остальных случаях лучше просто сделать код лаконичным и быстрым.
3
Forwarded from Machinelearning
Ошеломляющий контраст: одна NVIDIA ($4.6 трлн) сейчас стоит дороже, чем все банки США и Канады вместе ($4.2 трлн) 🫧

@ai_machinelearning_big_data


#nvidia
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3🥰1
🧩 Почему Databento не переписали feed-handler на Rust

Кратко:
- Контекст: реальный поток 14 млн сообщений/с и задержки <100 мкс. Требовались native-язык, простая параллельность и минимум общей памяти.
- Итог: для переписывания feed-handler выбрали C++23, а не Rust — из-за нескольких «больно на практике» паттернов.

Где Rust мешал именно под их кейс:
1) Повторное использование буфера
Хотели выделять буфер вне цикла и переиспользовать на итерациях без копий. Ссылки + времена жизни → конфликт с borrow-checker, хотя логически данные не переживают итерацию.

2) Самоссылочные структуры (self-referential structs)
Базовый паттерн «владение состоянием в объекте + подкомпоненты держат ссылки» в Rust упирается в модель заимствования. Обходные пути — RC/Arc или протаскивать ссылки аргументами — добавляют оверхед/шум. В C++ — просто порядок полей и правила перемещения/копирования.

3) Компиляционные дженерики
Шаблоны C++ гибче (partial specialization, fold-expr, constexpr). В Rust те же идеи требуют trait-интерфейсов и шаблонного «лесовоздства». На десятках версий структур получается много шаблонного кода или макросов.

Нет, это не «Rust плох»:
- У Databento уже много Rust в проде: кодеки DBN, realtime-шлюзы, клиентская библиотека. Инструменты cargo, диагностика компилятора и безопасность — огромный плюс.
- Но под данный «узкий» участок C++ дал:
кодо-реюз со старой базы, тонкий контроль ресурсов, гибкие шаблоны и прямая экспертиза команды.

Вывод:
- В их финтех-стеке оба языка уместны: Rust — где важны безопасность и современная экосистема, C++ — где критичны сам паттерн владения/памяти и совместимость с существующим кодом. Поле меняется: C++ получает compile-time reflection, Rust развивает Polonius — решения всегда прагматичны под задачу.

https://databento.com/blog/why-we-didnt-rewrite-our-feed-handler-in-rust
3