#полезное
😎 Чувак только что закончил свою систему анимации на C и оказалось, что она примерно в 14 раз быстрее, чем система анимации в unity.
Причём он её даже не оптимизировал — возможно, можно сделать ещё быстрее
Пара цифр:
🟠 1500 персонажей
🟠 7.3 миллиона треугольников каждый кадр
🟠 Среднее время кадра (движок на C): ~28 мс
🟠 Среднее время кадра (
Он использует однотредовую CPU-анимацию (так же, как Unity). Без GPU-инстансинга и VAT — каждый меш отрисовывается отдельным draw call
👉 Новости 👉 База вопросов
Причём он её даже не оптимизировал — возможно, можно сделать ещё быстрее
Пара цифр:
@unity): ~400 мсОн использует однотредовую CPU-анимацию (так же, как Unity). Без GPU-инстансинга и VAT — каждый меш отрисовывается отдельным draw call
"Сейчас я упираюсь в пропускную способность GPU, что логично с учётом используемой реализации skinning'а.
Думаю, переход на GPU skinning даст мощный прирост производительности, но сначала придётся портировать рендеринг на WebGPU"
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1😈1
#статьи
😘 Планирование задач на CPU
В этой статье рассматривается планирование на уровне процессора, соответствующие алгоритмы и практическая демонстрация
источник
👉 Новости 👉 База вопросов
В этой статье рассматривается планирование на уровне процессора, соответствующие алгоритмы и практическая демонстрация
источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
😜 Producer-Consumer на C с использованием многопоточности
Продюсеры добавляют данные в общий буфер, а консюмеры их обрабатывают. Мьютексы обеспечивают потокобезопасность
👉 Новости 👉 База вопросов
Продюсеры добавляют данные в общий буфер, а консюмеры их обрабатывают. Мьютексы обеспечивают потокобезопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес #Cplus
🤔 Сколько ключевых слов в С++?
В С++ существует 95 зарезервированных ключевых слов, которые имеют специальное значение и не могут быть переопределены или перегружены.
👉 Новости 👉 База вопросов
В С++ существует 95 зарезервированных ключевых слов, которые имеют специальное значение и не могут быть переопределены или перегружены.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
👍 Создай собственную мини-ОС на C
Для этого нужно загрузиться в пользовательское ядро, полностью написанное на C, без использования операционной системы. Именно так настоящие операционные системы создаются с нуля
👉 Новости 👉 База вопросов
Для этого нужно загрузиться в пользовательское ядро, полностью написанное на C, без использования операционной системы. Именно так настоящие операционные системы создаются с нуля
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1😈1
#полезное
😊 От нуля до main(): как написать загрузчик с нуля
Нашёл отличное руководство по тому, как работают загрузчики и как создать свой собственный с нуля — с разбором карт памяти, линковочных скриптов, стартового кода и многого другого.
источник
👉 Новости 👉 База вопросов
Нашёл отличное руководство по тому, как работают загрузчики и как создать свой собственный с нуля — с разбором карт памяти, линковочных скриптов, стартового кода и многого другого.
источник
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Cplus
🤔 В чем разница между структурой и классом в С++?
Основное различие между структурой и классом в С++ заключается в области доступности членов по умолчанию. В структуре члены имеют публичный доступ, а в классе - приватный. В остальном они схожи и могут содержать функции и данные.
👉 Новости 👉 База вопросов
Основное различие между структурой и классом в С++ заключается в области доступности членов по умолчанию. В структуре члены имеют публичный доступ, а в классе - приватный. В остальном они схожи и могут содержать функции и данные.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
#полезное
👋 Реализация раскраски графа
Алгоритм раскраски графа с использованием жадного подхода для назначения цветов вершинам, гарантируя, что соседние узлы не имеют одинакового цвета
👉 Новости 👉 База вопросов
Алгоритм раскраски графа с использованием жадного подхода для назначения цветов вершинам, гарантируя, что соседние узлы не имеют одинакового цвета
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
👋 std::stacktrace
👉 Новости 👉 База вопросов
std::stacktrace (C++23) позволяет получить стек вызовов прямо во время выполнения. Это полезно для логирования, отладки, генерации crash-репортов и встроенных диагностик — прямо в продакшене.Please open Telegram to view this post
VIEW IN TELEGRAM
❤2😈1
#Собес #Cplus
🤔 Что такое inline-функция в С++?
Inline-функция - это функция, чье тело компилятор вставляет непосредственно в место вызова функции, что может повысить производительность, так как избегается накладные расходы на вызов Функции.
👉 Новости 👉 База вопросов
Inline-функция - это функция, чье тело компилятор вставляет непосредственно в место вызова функции, что может повысить производительность, так как избегается накладные расходы на вызов Функции.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#полезное
😬 Сетевое взаимодействие в Linux
Это видео объясняет, как ядро Linux обрабатывает запросы на TCP-соединение и сетевые пакеты.
Источник
👉 Новости 👉 База вопросов
Это видео объясняет, как ядро Linux обрабатывает запросы на TCP-соединение и сетевые пакеты.
Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#полезное
👨💻 Написание простой 16-битной виртуальной машины менее чем в 125 строках на C
Разберитесь, как (некоторые) виртуальные машины работают "под капотом", создав регистровую VM, способную интерпретировать и выполнять ограниченный набор инструкций ASM + бонусные программы для тестирования.
источник
👉 Новости 👉 База вопросов
Разберитесь, как (некоторые) виртуальные машины работают "под капотом", создав регистровую VM, способную интерпретировать и выполнять ограниченный набор инструкций ASM + бонусные программы для тестирования.
источник
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
📞 Реализация lock-free очереди на C для высокопроизводительной конкуренции
Этот пример демонстрирует, как создать неблокирующую (lock-free) очередь с использованием атомарных операций на C, обеспечивая безопасный доступ из нескольких потоков без мьютексов.
Используется
Отсутствие блокировок делает такую очередь особенно подходящей для систем реального времени и высоконагруженных приложений.
Вывод программы при успешном выполнении:
👉 Новости 👉 База вопросов
Этот пример демонстрирует, как создать неблокирующую (lock-free) очередь с использованием атомарных операций на C, обеспечивая безопасный доступ из нескольких потоков без мьютексов.
LockFreeQueue — структура с атомарными указателями на голову и хвост.enqueue(...) — вставка в конец очереди с использованием atomic_compare_exchange_weak, чтобы безопасно обновить указатель next.dequeue(...) — снятие из начала очереди с безопасной заменой головы.producer() и consumer() — потоки, которые записывают и читают данные из очереди соответственно.pthread_create(...) — используется для запуска потоков.Используется
stdatomic.h для атомарного доступа к указателям.Отсутствие блокировок делает такую очередь особенно подходящей для систем реального времени и высоконагруженных приложений.
Вывод программы при успешном выполнении:
Dequeued: 0
Dequeued: 1
Dequeued: 2
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1
#Собес #Cplus
🤔 Что такое класс в С++?
В С++ класс - это пользовательский тип данных, который содержит как данные (члены данных), так и функции (методы), которые работают с этими данными. Классы обеспечивают инкапсуляцию, позволяя группировать данные и функции в одном объекте.
👉 Новости 👉 База вопросов
В С++ класс - это пользовательский тип данных, который содержит как данные (члены данных), так и функции (методы), которые работают с этими данными. Классы обеспечивают инкапсуляцию, позволяя группировать данные и функции в одном объекте.
Please open Telegram to view this post
VIEW IN TELEGRAM
👾1
#полезное
😱 Туториал по Ray-Casting для разработки игр и других целей, автор: F. Permadi
Я сейчас прохожу этот туториал и пока что всё отлично. Посмотри сам.
Тык сюда
👉 Новости 👉 База вопросов
Я сейчас прохожу этот туториал и пока что всё отлично. Посмотри сам.
Тык сюда
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
👨💻 Модель Producer & Consumer с использованием POSIX Shared Memory API на C:
🟠 продюсер записывает данные в память
🟠 консюмер читает данные из той же памяти
🟠 без файлов, без сокетов, только разделяемая память
👉 Новости 👉 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#видео
📞 Изучайте программирование на C с доктором Чаком
Доктор Чарльз Северенс (он же Dr. Chuck) помогает разобраться в архитектуре компьютеров и низкоуровневом программировании с помощью классической книги по языку C, написанной Брайаном Керниганом и Деннисом Ритчи
Источник
👉 Новости 👉 База вопросов
Доктор Чарльз Северенс (он же Dr. Chuck) помогает разобраться в архитектуре компьютеров и низкоуровневом программировании с помощью классической книги по языку C, написанной Брайаном Керниганом и Деннисом Ритчи
Источник
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #Cplus
🤔 Как компилятор работает с vTable и vptr в C++?
vTable — это таблица указателей на функции для реализации динамического полиморфизма, a vptr - указатель на эту таблицу, который хранится в каждом объекте.
👉 Новости 👉 База вопросов
vTable — это таблица указателей на функции для реализации динамического полиморфизма, a vptr - указатель на эту таблицу, который хранится в каждом объекте.
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Реализация бинарного дерева поиска
Бинарное дерево поиска — это структура данных типа дерево, в которой каждый узел имеет не более двух потомков, и для любого узла левое поддерево содержит значения меньше значения самого узла, а правое поддерево — значения больше. Выше представлена реализация на C с базовыми операциями: вставка и обход в порядке возрастания (inorder traversal)
👉 Новости 👉 База вопросов
Бинарное дерево поиска — это структура данных типа дерево, в которой каждый узел имеет не более двух потомков, и для любого узла левое поддерево содержит значения меньше значения самого узла, а правое поддерево — значения больше. Выше представлена реализация на C с базовыми операциями: вставка и обход в порядке возрастания (inorder traversal)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3