Kamron Batman
|
ee2cd1d18d
|
feat: Adds new decay system and SkipSerialization (#2311)
## Summary
- Replaces scan-based decay checking during world saves with an event-driven timer wheel scheduler
- Removes virtual property checks from serialization hot path, achieving 6-8x faster world saves
## Changes
### DecayScheduler (new):
- Timer wheel with 12 HashSet buckets (5-min intervals) + PriorityQueue for active processing
- O(1) register/unregister vs O(n) scan of all items
- Auto start/stop when items exist/empty
- Configurable tick interval with jitter to prevent system synchronization
### Item.cs:
- Added ScheduledDecayTime computed property
- Added UpdateDecayRegistration() called from SetLastMoved(), property setters, AddItem()/RemoveItem()
- Hooks in Visible, Movable, Spawner setters and Delete()
### World.cs:
- Removed _decayQueue, EnqueueForDecay(), ProcessDecay()
- ItemPersistence.Serialize() now tight loop without virtual calls
## Performance
| Metric | Before | After | Improvement |
|---------------|------------|-----------|-------------|
| Items (230K) | 245K ticks | 34K ticks | 8x faster |
| Mobiles (43K) | 56K ticks | 6K ticks | 9x faster |
| Total | 302K ticks | 40K ticks | 7.5x faster |
## Configuration
decay.maxItemsPerTick = 250 # Items processed per tick
decay.tickInterval = 256ms # Base processing interval
decay.bucketInterval = 5min # Timer wheel bucket size
decay.jitterMaxMs = 25 # ±25ms tick jitter
|
2026-01-08 11:43:51 -08:00 |
|
Kamron Batman
|
2eba2868a6
|
fix: Optimizes items to use default weights. (Part 1) (#2240)
|
2025-07-24 14:44:39 -07:00 |
|
Kamron Batman
|
da517f56c4
|
chore: Fixes variable types for possible performance issues (#2172)
|
2025-05-01 21:54:41 -07:00 |
|
Kamron Batman
|
26dfde19ee
|
fix: Consolidates Color/Center html (#1762)
### Summary
- Fixes bad color in virtual check gump
- Consolidates the Color/Center html strings for all gumps
|
2024-05-07 23:56:32 -07:00 |
|
Kamron Batman
|
6820efe0ca
|
fix: Codegens and fixes bugs with plant system (#1490)
|
2023-09-05 19:20:03 -07:00 |
|
Kamron Batman
|
e08efad9be
|
fix: Updates messages with clilocs (#1381)
|
2023-03-26 00:54:09 -07:00 |
|
Kamron Batman
|
42012538bc
|
fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350)
|
2023-02-25 00:54:12 -08:00 |
|
Kamron Batman
|
fa3515f930
|
fix: Cleans up some comments and spell code (#1120)
|
2022-07-16 19:45:41 -07:00 |
|
Kamron Batman
|
63e1b02d93
|
chore: Cleans up pattern checks. (#892)
|
2021-12-24 15:53:59 -08:00 |
|
Kamron Batman
|
fb915992dd
|
fix(core): Adds Hashed & Hierarchical Timer Wheel (#655)
- Removes TimerPriority
- Removes TimerThread
- Adds a [Hashed & Hierarchical Timer Wheel](http://www.cs.columbia.edu/~nahum/w6998/papers/ton97-timing-wheels.pdf)
|
2021-07-11 22:42:06 -07:00 |
|
Kamron Batman
|
3551d962f7
|
C# 9 Cleanup (#325)
- [X] Removes EventArgs - not needed
- [X] Merges sequential checks
- [X] Removes redundant type declarations
|
2020-11-27 00:29:21 -08:00 |
|
Kamron Batman
|
e9c1e4cbba
|
Fixes dupe exception (#258)
- [X] Cleans up ActivatorUtil
- [X] Fixes dupe exception
- [X] Fixes a bug in BasePotion
- [X] Fixes a few possible memory leaks
Bumps release version
|
2020-09-19 15:46:07 -07:00 |
|
Kamron Batman
|
4d6e584b6c
|
Removes literal variables (#257)
|
2020-09-18 18:41:26 -07:00 |
|
Kamron Batman
|
8149620b0c
|
Fixes brace style (#248)
|
2020-09-13 21:49:46 -07:00 |
|
Kamron Batman
|
ad3775c4d7
|
Formats UO Content (#201)
|
2020-08-27 18:30:38 -07:00 |
|
Kamron Batman
|
8ec166bcd0
|
Adds assemblies config, fixes crash bugs. (#134)
|
2020-05-09 12:55:56 -07:00 |
|