Release v0.6.35: reduce resident memory and compact shared dictionaries

This commit is contained in:
2026-11-04 14:08:05 +02:00
parent 004fee4976
commit d13e9849a7
21 changed files with 469 additions and 100 deletions
+17 -2
View File
@@ -604,10 +604,25 @@ std::recursive_mutex logGate;
bool loggingEnabled = false;
DiagnosticBuffer diagnosticBuffer;
}
size_t DiagnosticBuffer::expire(ULONGLONG now)
{
size_t removed = 0;
while (!entries.empty() && now - entries.front().first > 30000)
{
entries.pop_front();
++removed;
}
return removed;
}
void expireDiagnostics(ULONGLONG now)
{
std::lock_guard lock(logGate);
diagnosticBuffer.expire(now);
}
std::wstring DiagnosticBuffer::record(const std::wstring &message, bool problem, ULONGLONG now)
{
while (!entries.empty() && (entries.size() >= 128 || now - entries.front().first > 30000))
entries.pop_front();
expire(now);
while (entries.size() >= 128) entries.pop_front();
entries.emplace_back(now, message);
if (!problem)
return {};