mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2026-10-02 10:53:44 +00:00
perf(cdclient): keep ComponentsRegistry and ItemComponent in memory
Every entity and every inventory item looks these up, and an id not seen yet was a full scan of the unindexed table, so a character holding about 3000 different items took a minute to load (the client waited at 35%). Loading both tables once at startup costs a few MB per server. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -123,7 +123,10 @@ void CDClientManager::LoadValuesFromDatabase() {
|
||||
CDBehaviorTemplateTable::Instance().LoadValuesFromDatabase();
|
||||
CDBrickIDTableTable::Instance().LoadValuesFromDatabase();
|
||||
CDCollectibleComponentTable::Instance().LoadValuesFromDatabase();
|
||||
CDCLIENT_DONT_CACHE_TABLE(CDComponentsRegistryTable::Instance().LoadValuesFromDatabase());
|
||||
// Always in memory: every entity and every inventory item asks for its components and item data, and looking up an
|
||||
// id not seen yet in the unindexed CDClient scans the whole table (a character holding 3000 different items took a
|
||||
// minute to load)
|
||||
CDComponentsRegistryTable::Instance().LoadValuesFromDatabase();
|
||||
CDCurrencyTableTable::Instance().LoadValuesFromDatabase();
|
||||
CDDeletionRestrictionsTable::Instance().LoadValuesFromDatabase();
|
||||
CDDestructibleComponentTable::Instance().LoadValuesFromDatabase();
|
||||
@@ -131,7 +134,7 @@ void CDClientManager::LoadValuesFromDatabase() {
|
||||
CDEventGatingTable::Instance().LoadValuesFromDatabase();
|
||||
CDFeatureGatingTable::Instance().LoadValuesFromDatabase();
|
||||
CDInventoryComponentTable::Instance().LoadValuesFromDatabase();
|
||||
CDCLIENT_DONT_CACHE_TABLE(CDItemComponentTable::Instance().LoadValuesFromDatabase());
|
||||
CDItemComponentTable::Instance().LoadValuesFromDatabase();
|
||||
CDItemSetSkillsTable::Instance().LoadValuesFromDatabase();
|
||||
CDItemSetsTable::Instance().LoadValuesFromDatabase();
|
||||
CDLevelProgressionLookupTable::Instance().LoadValuesFromDatabase();
|
||||
|
||||
Reference in New Issue
Block a user