(no subject)
Jan. 20th, 2026 10:40 amГибридная Графовая База Данных (отвертка с моторчиком для моделирования моделей)
День 2. Вспомогательная функциональность, системы сборки и тестирования.
Хедер алиасов основных типов (с++). Чтобы не было разных типов в разных местах кода.
source egCoreTypes.h:
Система аллокации памяти для небольших кусочков данных "Ham Slicer". При использовании системной аллокации для таких данных получается значительный оверхед и повышенные риски утечек. Ham Slicer аллоцирует относительно большие блоки памяти и выделяет кусочки из них под поля данных.
( Read more... )
День 2. Вспомогательная функциональность, системы сборки и тестирования.
Хедер алиасов основных типов (с++). Чтобы не было разных типов в разных местах кода.
source egCoreTypes.h:
#pragma once #include <iostream> #include <cstdint> #include <map> #include <unordered_map> typedef unsigned char ByteType; // ID types typedef uint32_t EgDataNodeIDType; typedef EgDataNodeIDType EgDataLinkIDType; typedef uint16_t EgBlueprintIDType; // data nodes and links blueprint/layout/type/class ID type typedef uint16_t EgLayerNumType; // count/size/length types typedef uint16_t EgFieldNameLengthType; typedef uint8_t EgFieldsCountType; typedef uint16_t EgStrSizeType; typedef uint64_t StaticLengthType; // map types class EgDataNode; class EgDataLinkType; typedef std::unordered_map <EgDataNodeIDType, EgDataNode*> EgDataNodesMapType; typedef std::map <EgDataNodeIDType, EgDataNode*> EgDataNodesOrdMapType; typedef std::unordered_map <EgDataLinkIDType, EgDataNode*> EgLinkIDsNodePtrsMapType; typedef std::unordered_map <EgDataNode*, EgDataNode*> EgLinkDataPtrsNodePtrsMapType; const uint64_t egDefaultHamBrickSize = 1024;
Система аллокации памяти для небольших кусочков данных "Ham Slicer". При использовании системной аллокации для таких данных получается значительный оверхед и повышенные риски утечек. Ham Slicer аллоцирует относительно большие блоки памяти и выделяет кусочки из них под поля данных.
( Read more... )