Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Parallel C++. Часть 2
Часть 1 https://t.me/cpp_lib/835
Vectorization
SIMD Intrinsics
Unsafe Math Optimizations
Thread Affinity
Memory Ordering in x86 Processors
Thread Sanitizer
OpenMP
OpenMP Synchronization
OpenMP Reduction
OpenMP Single Directive
источник
#cpp #programming
👉 @cpp_lib
Часть 1 https://t.me/cpp_lib/835
Vectorization
SIMD Intrinsics
Unsafe Math Optimizations
Thread Affinity
Memory Ordering in x86 Processors
Thread Sanitizer
OpenMP
OpenMP Synchronization
OpenMP Reduction
OpenMP Single Directive
источник
#cpp #programming
👉 @cpp_lib
❤2👍2
Шпаргалка по модели памяти С++11
Модель памяти представляет из себя спецификацию допустимого поведения многопоточных программ, работающих с разделяемой памятью (shared memory) [1]. Наиболее примитивной моделью является последовательная согласованность, где все инструкции из всех потоков образуют общий порядок, согласованный с порядком выполнения программы в каждом потоке [2].
Одной из наиболее важных фич C++11 является модель памяти, поддерживающая параллелизм, которая позволяет писать многопоточные программы, не полагаясь на различные расширения для конкретных целевых платформ.
https://people.cs.pitt.edu/~xianeizhang/notes/cpp11_mem.html
#cpp #programming
👉 @cpp_lib
Модель памяти представляет из себя спецификацию допустимого поведения многопоточных программ, работающих с разделяемой памятью (shared memory) [1]. Наиболее примитивной моделью является последовательная согласованность, где все инструкции из всех потоков образуют общий порядок, согласованный с порядком выполнения программы в каждом потоке [2].
Одной из наиболее важных фич C++11 является модель памяти, поддерживающая параллелизм, которая позволяет писать многопоточные программы, не полагаясь на различные расширения для конкретных целевых платформ.
https://people.cs.pitt.edu/~xianeizhang/notes/cpp11_mem.html
#cpp #programming
👉 @cpp_lib
👍3
Как мы анализируем потребление памяти нативными приложениями (C++, Windows, Linux)
Технологическая платформа 1С:Предприятие – это большой программный продукт (только на С++ - более 10 миллионов строк кода, а есть ещё Java и JavaScript). Подробнее про устройство платформы можно прочитать тут.
В процессе эксплуатации решений, созданных на платформе 1С:Предприятие, мы иногда сталкивались с тем, что в определенных сценариях потребление памяти процессами платформы казалось нам избыточным. К сожалению, простых способов выяснить, так ли это в действительности, для столь большого приложения у нас не было. Поэтому мы начали искать специализированные инструменты, которые могли бы помочь нам в анализе использования памяти, потребляемой нашими приложениями.
О том, какие инструменты мы пробовали использовать, почему они нам не подошли и как мы в итоге решили задачу анализа использования памяти – ниже.
https://habr.com/ru/companies/1c/articles/761012/
#cpp #programming
👉 @cpp_lib
Технологическая платформа 1С:Предприятие – это большой программный продукт (только на С++ - более 10 миллионов строк кода, а есть ещё Java и JavaScript). Подробнее про устройство платформы можно прочитать тут.
В процессе эксплуатации решений, созданных на платформе 1С:Предприятие, мы иногда сталкивались с тем, что в определенных сценариях потребление памяти процессами платформы казалось нам избыточным. К сожалению, простых способов выяснить, так ли это в действительности, для столь большого приложения у нас не было. Поэтому мы начали искать специализированные инструменты, которые могли бы помочь нам в анализе использования памяти, потребляемой нашими приложениями.
О том, какие инструменты мы пробовали использовать, почему они нам не подошли и как мы в итоге решили задачу анализа использования памяти – ниже.
https://habr.com/ru/companies/1c/articles/761012/
#cpp #programming
👉 @cpp_lib
👍2
Блеск и нищета std::format
Сравнительно недавно в stdlib плюсов появилось форматирование строк «как в питоне», а точнее, как в библиотеке fmt. И я, как смелый и отчаянный, решил этим воспользоваться. Возможно, аксакалы и настоящие разработчики скажут, что я всё делаю не так, и вообще не то, но я буду рад такой критике, если она поможет легче жить ;)
Итак, приступим. Вам понадобится свежий компилятор и стдлиб. На cppreference зеленеют красивые надписи (since C++20), круто! 2020-й уже давно прошёл, да и в мейкфайлах/vcxproj мы везде давно ставим --std=c++20, кто посмелее — даже больше. Статьи про std::format выходят уже несколько лет, и даже переводы на хабре есть [1], [2]. Значит, сейчас зафигачим маленький инклюдик, пройдёмся sed -e '...' по исходникам, и всё будет в шоколаде.
https://habr.com/ru/articles/763784/
#cpp #programming
👉 @cpp_lib
Сравнительно недавно в stdlib плюсов появилось форматирование строк «как в питоне», а точнее, как в библиотеке fmt. И я, как смелый и отчаянный, решил этим воспользоваться. Возможно, аксакалы и настоящие разработчики скажут, что я всё делаю не так, и вообще не то, но я буду рад такой критике, если она поможет легче жить ;)
Итак, приступим. Вам понадобится свежий компилятор и стдлиб. На cppreference зеленеют красивые надписи (since C++20), круто! 2020-й уже давно прошёл, да и в мейкфайлах/vcxproj мы везде давно ставим --std=c++20, кто посмелее — даже больше. Статьи про std::format выходят уже несколько лет, и даже переводы на хабре есть [1], [2]. Значит, сейчас зафигачим маленький инклюдик, пройдёмся sed -e '...' по исходникам, и всё будет в шоколаде.
https://habr.com/ru/articles/763784/
#cpp #programming
👉 @cpp_lib
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Минимально жизнеспособный декларативный графический интерфейс на языке C++
https://ossia.io/posts/minimum-viable/
#cpp #programming
👉 @cpp_lib
https://ossia.io/posts/minimum-viable/
#cpp #programming
👉 @cpp_lib
🔥8👍1
Вглубь std::unordered_map: магические числа
Все любители кодокопания заканчивают либо хорошо, либо плохо. Мне повезло. Поэтому я решила написать свою первую статью.
Как всё начиналось
Мой друг игрался со вставкой в unordered_map и заметил странную закономерность в изменении параметра bucket_count с ростом числа элементов в таблице.
https://habr.com/ru/articles/765760/
#cpp #programming
👉 @cpp_lib
Все любители кодокопания заканчивают либо хорошо, либо плохо. Мне повезло. Поэтому я решила написать свою первую статью.
Как всё начиналось
Мой друг игрался со вставкой в unordered_map и заметил странную закономерность в изменении параметра bucket_count с ростом числа элементов в таблице.
https://habr.com/ru/articles/765760/
#cpp #programming
👉 @cpp_lib
👍5
Media is too big
VIEW IN TELEGRAM
С++ для начинающих: советы по улучшению кода
Когда только начинаешь свой путь в программировании, бывают моменты, когда понимаешь, что не хватает практических советов от более опытных специалистов. Что нужно делать, а что точно нет? Как улучшить свой код? Мы решили взять на себя эту роль и сдедали для вас подборку с полезными рекомендациями для C++ разработчиков.
00:00 Интро
00:09 Совет 1
00:34 Совет 2
01:00 Совет 3
01:23 Совет 4
01:48 Совет 5
02:21 Совет 6
02:36 Совет 7
03:44 Совет 8
04:54 Заключение
источник
#cpp #programming
👉 @cpp_lib
Когда только начинаешь свой путь в программировании, бывают моменты, когда понимаешь, что не хватает практических советов от более опытных специалистов. Что нужно делать, а что точно нет? Как улучшить свой код? Мы решили взять на себя эту роль и сдедали для вас подборку с полезными рекомендациями для C++ разработчиков.
00:00 Интро
00:09 Совет 1
00:34 Совет 2
01:00 Совет 3
01:23 Совет 4
01:48 Совет 5
02:21 Совет 6
02:36 Совет 7
03:44 Совет 8
04:54 Заключение
источник
#cpp #programming
👉 @cpp_lib
👍4🥱1
Media is too big
VIEW IN TELEGRAM
Instant Messaging App in C++
Код-ревью простенького чатика, написанного самим же автором видео.
0:00 - Intro
1:06 - Building the code
2:38 - Running all the projects
7:18 - Project architecture
7:52 - How I write APIs
10:20 - Walnut-Networking API overview
11:49 - Removing external header includes from our own headers
17:50 - What are pointers really
20:00 - Type forward declarations
24:00 - Walnut::Server API and code overview
30:03 - Walnut::Client API and code overview
30:57 - Network utility functions
32:44 - Client connection status
https://github.com/TheCherno/Walnut-Chat
источник
#cpp #programming
👉 @cpp_lib
Код-ревью простенького чатика, написанного самим же автором видео.
0:00 - Intro
1:06 - Building the code
2:38 - Running all the projects
7:18 - Project architecture
7:52 - How I write APIs
10:20 - Walnut-Networking API overview
11:49 - Removing external header includes from our own headers
17:50 - What are pointers really
20:00 - Type forward declarations
24:00 - Walnut::Server API and code overview
30:03 - Walnut::Client API and code overview
30:57 - Network utility functions
32:44 - Client connection status
https://github.com/TheCherno/Walnut-Chat
источник
#cpp #programming
👉 @cpp_lib
👍4
Раскрытие возможностей управления памятью в языке C++
До создания компании Educative я работал в Facebook и Microsoft. Основным направлением моей работы там было использование языка C++. Я изучил язык C++ в самом начале своей карьеры программиста. Однако только работая в Microsoft, я по-настоящему понял, что такое управление памятью в языке C++, и все возможности, которые оно дает.
https://dev.to/fahimulhaq/uncovering-the-power-of-memory-management-in-c-3bm9
#cpp #programming
👉 @cpp_lib
До создания компании Educative я работал в Facebook и Microsoft. Основным направлением моей работы там было использование языка C++. Я изучил язык C++ в самом начале своей карьеры программиста. Однако только работая в Microsoft, я по-настоящему понял, что такое управление памятью в языке C++, и все возможности, которые оно дает.
https://dev.to/fahimulhaq/uncovering-the-power-of-memory-management-in-c-3bm9
#cpp #programming
👉 @cpp_lib
👍5
C++ и космические технологии
В сегодняшней публикации мы поговорим о новом новшестве в мире C++ - операторе "спейсшип" (spaceship aka three-way comparison), он же тройное сравнение.
Устраивайтесь поудобнее, взлетаем.
Итак, оператор
Что же он делает?
Обычный оператор сравнения вроде
https://habr.com/ru/articles/766976/
#cpp #programming
👉 @cpp_lib
В сегодняшней публикации мы поговорим о новом новшестве в мире C++ - операторе "спейсшип" (spaceship aka three-way comparison), он же тройное сравнение.
Устраивайтесь поудобнее, взлетаем.
Итак, оператор
<=>
появился в C++20.Что же он делает?
Обычный оператор сравнения вроде
<
берет на вход два значения, тестирует на них корректность заданного бинарного отношения и возвращает булево значение, обозначающее результат проверки.https://habr.com/ru/articles/766976/
#cpp #programming
👉 @cpp_lib
👍2🔥2🤔1
Коллекция библиотек C++ HTTP, включающая простой в использовании HTTP-сервер.
https://cpp.libhunt.com/proxygen-alternatives
#cpp #programming
👉 @cpp_lib
https://cpp.libhunt.com/proxygen-alternatives
#cpp #programming
👉 @cpp_lib
👍5
Суперклей ABI, или Как применять C++ где угодно
Меня зовут Михаил, я backend-разработчик в SimbirSoft. Время от времени я сталкиваюсь с понятием «двоичный», он же «бинарный» интерфейс приложений, или просто ABI (application binary interface). Все найденные мной материалы на эту тему были либо очень скудны, либо вели к многостраничным эпопеям, которые напоминали сборную солянку из описания, например, архитектуры процессора x86, сдобренную стандартом С++.
Но потом я наткнулся на перевод публикации Тита Винтерса в рабочей группе 21 (WG21) — комитета по стандартизации языка C++. В ней он поднимает вопрос поддержки обратной бинарной совместимости. Значит, вопрос актуальный — это и стало мотивацией для написания этой статьи. В ней я сфокусируюсь на примерах и практике использования С++ в других языках программирования. Материал будет полезен middle+ и senior-разработчикам, а также всем, кто хочет сделать гибкий, долгоживущий, легко настраиваемый под заказчика продукт.
Так что заваривайте чай, запасайтесь быстрыми углеводами — вас ждёт увлекательное погружение в мир низкоуровневого программирования. Начнём с теории, затем рассмотрим несколько практических примеров.
https://habr.com/ru/companies/simbirsoft/articles/742486/
#cpp #programming
👉 @cpp_lib
Меня зовут Михаил, я backend-разработчик в SimbirSoft. Время от времени я сталкиваюсь с понятием «двоичный», он же «бинарный» интерфейс приложений, или просто ABI (application binary interface). Все найденные мной материалы на эту тему были либо очень скудны, либо вели к многостраничным эпопеям, которые напоминали сборную солянку из описания, например, архитектуры процессора x86, сдобренную стандартом С++.
Но потом я наткнулся на перевод публикации Тита Винтерса в рабочей группе 21 (WG21) — комитета по стандартизации языка C++. В ней он поднимает вопрос поддержки обратной бинарной совместимости. Значит, вопрос актуальный — это и стало мотивацией для написания этой статьи. В ней я сфокусируюсь на примерах и практике использования С++ в других языках программирования. Материал будет полезен middle+ и senior-разработчикам, а также всем, кто хочет сделать гибкий, долгоживущий, легко настраиваемый под заказчика продукт.
Так что заваривайте чай, запасайтесь быстрыми углеводами — вас ждёт увлекательное погружение в мир низкоуровневого программирования. Начнём с теории, затем рассмотрим несколько практических примеров.
https://habr.com/ru/companies/simbirsoft/articles/742486/
#cpp #programming
👉 @cpp_lib
👍2
Детектор Судного дня или как я разработал датчик радиации для Home Assistant
В начале 2023 года, во многих СМИ появилась информация, что стрелки часов Судного дня перевели на десять секунд. Сейчас они замерли на отметке 90 секунд до полуночи, и теперь часы показывают самый высокий уровень риска ядерной катастрофы за всю историю проекта. Эта информация побудила меня создать устройство для мониторинга фоновой радиации — мог бы написать я, но на самом деле, всё началось гораздо раньше и об этом расскажу далее.
Однажды вечером, в 2015 году, мне захотелось посмотреть статистику фоновой радиации в регионе где я проживаю, зашел на мой любимый проект под названием «Народный мониторинг» и начал искать близлежащие датчики, которые могли бы измерять фоновую радиацию. На моё удивление, я не обнаружил подобных датчиков. Ладно, не беда, сказал я себе, ведь я живу в регионе, где есть государственные предприятия атомной энергетики, на их сайте должна же быть публичная информация об уровне фонового излучения. Зашел на сайт, да, действительно, есть статистика по уровню фонового излучения, где на графике показана прямая линия без намека на динамику, естественно, данный результат меня не устроил и я решил собирать статистику самостоятельно, разработав свое устройство.
https://habr.com/ru/companies/timeweb/articles/767094/
#cpp #programming
👉 @cpp_lib
В начале 2023 года, во многих СМИ появилась информация, что стрелки часов Судного дня перевели на десять секунд. Сейчас они замерли на отметке 90 секунд до полуночи, и теперь часы показывают самый высокий уровень риска ядерной катастрофы за всю историю проекта. Эта информация побудила меня создать устройство для мониторинга фоновой радиации — мог бы написать я, но на самом деле, всё началось гораздо раньше и об этом расскажу далее.
Однажды вечером, в 2015 году, мне захотелось посмотреть статистику фоновой радиации в регионе где я проживаю, зашел на мой любимый проект под названием «Народный мониторинг» и начал искать близлежащие датчики, которые могли бы измерять фоновую радиацию. На моё удивление, я не обнаружил подобных датчиков. Ладно, не беда, сказал я себе, ведь я живу в регионе, где есть государственные предприятия атомной энергетики, на их сайте должна же быть публичная информация об уровне фонового излучения. Зашел на сайт, да, действительно, есть статистика по уровню фонового излучения, где на графике показана прямая линия без намека на динамику, естественно, данный результат меня не устроил и я решил собирать статистику самостоятельно, разработав свое устройство.
https://habr.com/ru/companies/timeweb/articles/767094/
#cpp #programming
👉 @cpp_lib
👍4