https://gitlab.synchro.net/main/sbbs/-/commit/7a0dabc5613b3f1a5e4ff8be
Modified Files:
docs/v322_new.md src/sbbs3/js_file.cpp
Log Message:
Parse an .ini once in File.iniGetAllObjects()
It asked for each section's keys by name, and that lookup scans the file
from the top -- so the cost was O(sections * lines). SyncArcade's lobby
reads games.ini on every run for the cabinet titles, and at 4740 sections
that read took two seconds on an idle machine; a loaded one paid seven,
which reads as the lobby rescanning its ROMs when it is doing nothing of
the kind.
Parse the file into per-section lists once instead, the way scfglib1.c
and scfglib2.c already read the configuration: 2005ms -> 66ms on that
file. The section list still comes from iniGetSectionList(), so a
duplicate section name is still collapsed to its first occurrence.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net