Экспериментальный и работающий непрограмма C ++ 14 Многопоточная библиотека составляемой временной компиляции.
Успешная разработка сложных приложений и игр в реальном времени требует гибкой и эффективной системы управления организацией. Поскольку проект становится более сложным, очень важно найти элегантный способ составления объектов, чтобы предотвратить повторение кода, улучшить модульность и открыть мощные возможности оптимизации.
Архитектурная картина сущности-компонента была разработана для достижения вышеупомянутых преимуществ путем отделения данных от логики.
Сущности могут состоять из небольших, многоразовых и общих компонентов.
Компоненты могут храниться в смежных областях памяти, таким образом улучшая местонахождение данных и дружелюбие кеша.
Логика применения может быть легко параллелизирована и абстрагирована от самих объектов и их политики хранения.
Состояние приложения может быть сериализовано и обмен по сети с меньшими усилиями.
Более модульная, общая и легко проверяемая кодовая база.
«ECST» был разработан в качестве моего проекта выпускного обучения BCS.
Построить инструкции
Пример кода
Лицензия
Сопровождающий тезис
Слайды
Организации: определяется Адамом Мартином (см. Тезис) как «фундаментальные концептуальные строительные блоки» системы, которая представляет конкретное применение OB-jeces. У них нет конкретных данных или логики.
Компоненты: небольшие, многоразовые типы, которые составляют сущности. Опять же, ссылаясь на Адама Мартина в (см. Тезис) , тип компонента «помечает сущность как обладающий конкретным аспектом». Компоненты хранят данные, но не содержат логики.
Системы: поставщики логики реализации для организаций, обладающих определенным набором типов компонентов.
Внешняя параллелизм: термин, используемый в ECST, который определяет концепцию запуска нескольких систем, которые не зависят друг от друга параллельно. Его детали реализации будут проанализированы в главе 10 (см. Тезис) . Концептуально, неявный направленный ациклический график создается во время компиляции благодаря знанию системных зависимостей. Выполнение неявного DAG обрабатывается типом системного планировщика, указанного во время определения настроек.
Внутренний параллелизм: другие, которые заводятся отдельные системы параллельно, ECST поддерживает разделение одной системы на несколько подзадач, которые могут быть выполнены на отдельных потоках. Многие системы, такие как те, которые представляют функционально чистые коммунации, не содержат побочных эффектов, которые изменяют их собственное состояние или определяют взаимодействия между подписанными объектами: это основные примеры «смущающих параллельных» вычислений.
"Где я могу найти документацию для API?"
«Можно ли иметь компоненты, которые не могут по умолчанию?»
«Я пытаюсь читать/написать в/из моего компонента, но я получаю ошибку компиляции. Что происходит? »
«Возможно ли итерация над компонентами, прикрепленными к объектам, не находясь внутри функции процесса системы?»
"Как управлять, работает ли моя система параллельно или как отдельный поток? "
«В чем разница между тем, чтобы сделать мою систему однопользованной против отключения внутреннего паралеллизма?»