ModernUO/Projects/UOContent
Kamron Batman ff7e70258e
perf: size the auto-denylist cap to a Dictionary capacity
65,536 sat just past a resize boundary. Dictionary<UInt128,long> grown from
empty steps 36,353 -> 75,431 -> 156,437 (ExpandPrime doubles and takes the
next prime), so a 65,536 cap allocated capacity 75,431 and stranded 9,895
slots at 52 bytes each -- 515 KB reserved and unreachable.

156,437 fills a capacity exactly: 2.4x the headroom for ~8 MB, no wasted
slots. Measured Entry layout is 48 bytes (4 hashCode + 4 next + 8 alignment
padding for UInt128 + 16 key + 8 value) plus a 4-byte bucket int.

The binding constraint is the sweep, not memory, since it is O(n) on the
loop. Measured full sweeps: ~2 ms at 156,437, ~6 ms at 324,449, ~26 ms at
968,897 -- so a million-entry cap costs 72 MB and a three-tick stall when a
flood's entries all lapse together. The remark records the curve because
maxEntries is operator-facing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-13 21:54:44 -07:00
..
Accounting perf(login): run password hashing on a parked worker thread (#2566) 2026-08-09 00:13:34 -07:00
Assistants chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Commands perf: Sleep the event loop when idle. Fixes networking micro-stalls. Adds event loop instrumentation. (#2559) 2026-08-09 13:24:59 -07:00
Compression feat: Implements new robust/pluggable backup/archive system. (#2388) 2026-03-22 19:51:20 -07:00
Configuration fix: Streamlines insurance. Insurance only executes when enabled. (#2550) 2026-07-26 09:47:49 -07:00
Console feat: Adds console commands (#1714) 2024-03-30 09:40:43 -07:00
Context Menus fix: Moves ContextMenu out of core, streamlines code, fixes bugs (#1873) 2024-07-20 21:33:23 -07:00
Engines fix: Consolidate PlayerConstructed onto Item, stamped by the craft system (#2574) 2026-08-13 18:34:59 -07:00
Gumps fix: harden idle-sleep scheduling against bad config and misattributed saves (#2567) 2026-08-09 22:05:18 -07:00
Holiday Stuff perf: Migrate Veteran Reward gumps to DynamicGump/StaticGump (#2415) 2026-04-25 20:09:27 -07:00
Items refactor: Move legacy deserialization into the .Migrations.cs partials (#2575) 2026-08-13 18:43:53 -07:00
Migrations fix: Consolidate PlayerConstructed onto Item, stamped by the craft system (#2574) 2026-08-13 18:34:59 -07:00
Misc fix: Removes unnecessary dictionary removal guards (#2565) 2026-08-08 11:50:01 -07:00
Mobiles fix: Removes unnecessary dictionary removal guards (#2565) 2026-08-08 11:50:01 -07:00
Multis fix(housing): register doors, and stop crashing on client component sheets (#2557) 2026-08-04 20:05:28 -07:00
Network perf: size the auto-denylist cap to a Dictionary capacity 2026-08-13 21:54:44 -07:00
Regions fix: Fixes criminals having guards called on them (#2348) 2026-03-13 17:35:47 -07:00
Skills fix: Removes unnecessary dictionary removal guards (#2565) 2026-08-08 11:50:01 -07:00
Special Systems feat: Add zero-alloc interpolation handler to ValueStringBuilder, replace all StringBuilder usage (#2387) 2026-03-22 14:23:44 -07:00
Spells fix(necromancy): correct Blood Oath duration, reflection, and expiry timing (#1690) (#2480) 2026-06-08 23:42:28 -07:00
Systems/JailSystem fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Targets chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Text fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Utilities perf(login): run password hashing on a parked worker thread (#2566) 2026-08-09 00:13:34 -07:00
World Saves perf(messages): mechanical interpolation cleanups (#2436) 2026-05-03 18:26:49 -07:00
Module.cs fix: Fixes sending packets and sidesteps a major issue with stackalloc and PGO in .NET 8 (#1607) 2023-11-21 12:18:20 -08:00
UOContent.csproj fix: Fixes Argon2 verify correctness and the password upgrade lockout (#2562) 2026-08-08 00:24:59 -07:00