Releases: suprepupre/LuaBoost
LuaBoost v1.9.3
LuaBoost v1.9.3
This release exists to properly publish the addon-side compatibility update required for wow_optimize.dll 3.0.0 and newer.
Important
If you use wow_optimize.dll 3.0.0+:
- update the addon too
- do not keep an older LuaBoost install with a newer DLL
- reinstall the addon files if needed
Running a newer DLL together with an older LuaBoost version can cause freezes.
Included in this release
- proper versioned release for the required addon-side compatibility update
- current standalone mode still works
- current DLL integration behavior remains intact
Installation
Replace your existing Interface/AddOns/!LuaBoost/ folder with the files from this release.
Notes
This is mainly a compatibility and distribution release so users actually update the addon instead of only replacing the DLL.
LuaBoost v1.9.2 — Hotfix
Fixed
- ThrashGuard activating after /reload when DLL is loaded — after
/reload, the DLL needs several seconds to re-register its Lua globals. Previously, LuaBoost checkedhasDLL()immediately duringPLAYER_LOGINand found itfalse, causing the Lua-side ThrashGuard to install even though the DLL was still active. Now LuaBoost waits up to 8 seconds for the DLL to re-register before deciding whether to install Lua-side ThrashGuard.
⚡ LuaBoost v1.9.1
🔄 What’s New in v1.9.1
- removed DLL API cache text from
/lband/lb gc - keeps display focused on currently relevant public DLL features
- cleaner integration with the current public wow_optimize builds
🧠 Current Public Integration Model
The current public wow_optimize.dll builds are intentionally conservative.
Public DLL features still relevant to LuaBoost
- adaptive GC
- Lua allocator replacement
- string table pre-sizing
- string.format fast path
- GetItemInfo cache
- loading/runtime/system-level optimizations
Public DLL features intentionally disabled
- UI widget cache
- GetSpellInfo cache
Because of that, LuaBoost no longer shows old “DLL API cache” user-facing lines in slash commands.
v1.9.0
LuaBoost v1.9.0
Fixes
- DLL detection after /reload — addon now correctly recognizes wow_optimize.dll after UI reload
- ThrashGuard status — shows "handled by DLL (C-level UI cache)" when DLL is active instead of confusing "Inactive"
Full feature list
- Smart GC Manager with 4-tier stepping + 3 presets
- SpeedyLoad (safe/aggressive event suppression during loading)
- UI Thrashing Protection (auto-disabled when DLL handles it)
- Memory leak scanner (
/lb memleak) - FPS monitor with 1% low + stutter detection (
/lb fps) - Event profiler (
/lb events) - Tooltip throttle, table pool, OnUpdate dispatcher
- Full DLL integration (GC sync, cache stats display)
Recommended
Use with wow_optimize.dll v2.0.1 for full optimization coverage.
LuaBoost v1.8.0
!LuaBoost v1.8.0
Lua runtime optimizer + SmartGC + SpeedyLoad + diagnostics for WoW 3.3.5a.
What's New in v1.8.0
API Cache Stats Display
/lband/lb gcnow show DLL GetSpellInfo cache hit rate when wow_optimize.dll v2.0.0+ is installed- New
LuaBoostC_GetApiStats()function integration
All Features
- Smart GC Manager — per-frame incremental GC with 4-tier stepping (combat/normal/idle/loading), 3 presets, emergency GC threshold
- GC Step Sync — slider values propagate to wow_optimize.dll within ~250ms
- SpeedyLoad — event suppression during loading screens (safe/aggressive modes)
- UI Thrashing Protection — StatusBar metatable hooks (auto-disabled when DLL detected)
- Memory Leak Scanner —
/lb memleak— 30-second scan, top 10 addons by growth rate - Event Profiler —
/lb events— 10-second capture, top 15 by frequency - FPS Monitor —
/lb fps— avg/median/min/max/1% low/stutter detection - OnUpdate Dispatcher — shared throttled callback API for addons
- Tooltip Throttle — max 10/sec for SetSpell/SetHyperlink
- Table Pool — reusable table allocation/release
- DLL Stats Display — memory, GC timing, UI cache skip rate, API cache hit rate
- GUI — ESC → Interface → AddOns → LuaBoost
Installation
Copy !LuaBoost folder to Interface/AddOns/. Enable in addon list.
Localization
Companion DLL
For maximum optimization, use with wow_optimize.dll v2.0.0 — C-level memory, I/O, network, GC, UI cache, and GetSpellInfo cache.
LuaBoost v1.7.0
LuaBoost v1.7.0
New Features
Memory Leak Scanner
/lb memleak — takes a memory snapshot, waits 30 seconds during normal gameplay, then shows the top 10 addons by memory growth rate.
[LuaBoost] Memory Growth (30 sec):
Recount +342 KB (11.4 KB/sec)
DBM-Core +89 KB (3.0 KB/sec)
Skada +45 KB (1.5 KB/sec)
No significant memory growth detected.
Color-coded: 🟡 yellow (<2 KB/sec normal), 🟠 orange (2-10 elevated), 🔴 red (>10 likely leak).
DLL GC Timing Display
/lb gc now shows the DLL's smoothed GC step time when wow_optimize.dll is active:
DLL GC step: 0.84ms avg (budget: 2.0ms)
Requirements
- Works standalone or with wow_optimize.dll v1.9.0
Installation
Extract to Interface/AddOns/!LuaBoost/
LuaBoost v1.6.0
New Features
GC Step Sync to DLL: Addon writes step sizes to Lua globals on preset/slider change. wow_optimize.dll reads them automatically — GUI is now the single source of truth for GC tuning.
UI Cache Stats Display: /lb and /lb gc show DLL UI cache skip rate (skipped/passed/percentage) when wow_optimize.dll is active.
Smart ThrashGuard: Auto-disables Lua-level StatusBar hooks when DLL is detected — avoids redundant double-caching overhead. Shows "TG:DLL" in login message.
Bug Fixes
Tooltip flicker: Throttle now tracks last argument per method. Same-target repeat calls pass through immediately — fixes flickering in RaidRoll and similar addons that call SetHyperlink every frame.
Double locale declaration: Removed duplicate local locale = GetLocale() that could shadow the first declaration and skip non-enUS locale loading.
Emergency GC guard: Full GC now skipped if current frame elapsed > 33ms — prevents compounding an existing lag spike with a 50-200ms collection pause.
Redundant GetTime() calls: 6 GetTime() calls replaced with cachedTime (set once per frame in OnUpdate). Fallback to GetTime() only before first OnUpdate fires.
SpeedyLoad correctness: GetFramesRegisteredForEvent result now handled via select() — # operator on table could give wrong length with nil gaps.
Table pool safety: Tables with metatables are rejected from the pool — prevents __gc/__index issues when reused by a different caller.
v1.5.1 - multiple bugfixes
fix: multiple addon bugs
-
Remove duplicate 'local locale' variable declaration that shadowed
the first and could skip locale loading on non-enUS clients. -
Skip Lua-level ThrashGuard installation when wow_optimize.dll is
detected. The DLL hooks the same StatusBar methods at C level —
running both adds metatable lookup overhead on every call with
no benefit. Show "TG:DLL" in login message when DLL handles it. -
Guard emergency full GC with frame time check (elapsed < 33ms).
Previously a full collect could fire during an already-slow frame,
compounding a lag spike into a multi-second freeze. -
Replace 6 redundant orig_GetTime() calls with cachedTime (already
set at the top of OnUpdate). Fallback to orig_GetTime() only if
cachedTime is still 0 (before first OnUpdate fires). -
Call GetFramesRegisteredForEvent() once per event in SpeedyLoad
suppress loop. Previously called twice per iteration — once for
the count via select("#"), once per element via select(i). -
Reject tables with metatables from the table pool. Tables with
__gc or __index metamethods could cause unexpected behavior when
reused by a different caller.
v1.5.0 — Event Profiler + OnUpdate API + Frame Optimization
What's New
📊 Event Profiler
Type /lb events to profile all WoW events for 10 seconds. Shows top 15 events by frequency, color-coded:
- 🟡 Yellow: normal (< 20/sec)
- 🟠 Orange: elevated (20-50/sec)
- 🔴 Red: excessive (> 50/sec)
Helps identify which events cause CPU load and which addons need optimization.
🔄 OnUpdate Dispatcher API
Addons can register throttled callbacks without creating Frame objects:
LuaBoost_RegisterUpdate("MyAddon", 0.1, function(now, elapsed)
-- runs every 0.1 sec
end)Each registered callback saves one C++ Frame object. Built-in throttling and error handling.
🏗️ Frame Optimization
timeFrame+gcFramemerged into singlecoreFrame- 5 event frames consolidated into master dispatcher
- Total: 7 fewer C++ Frame objects in engine
⚡ GC Optimization
- Memory check throttled to every 60 frames (was every frame)
- ThrashGuard uses shared table pool for widget cache
📦 Installation
Interface/AddOns/!LuaBoost/
For best results use with wow_optimize.dll v1.6.1.
v1.4.0 — Frame Consolidation + GC Throttle
🏗️ Frame Consolidation
5 separate event-handling frames (combatFrame, burstFrame, activityFrame, loadFrame, initFrame) merged into a single master dispatcher. All 32 events now route through one C++ → Lua boundary with table lookup.
- ~5 fewer C++ Frame objects in the engine
- Reduced per-event dispatch overhead
speedyFrame,timeFrame,gcFrameintentionally kept separate (need isolation / independent OnUpdate)
⚡ GC Optimization
- Memory check throttled —
collectgarbage("count")called every 60 frames instead of every frame. Emergency GC still triggers within 1 second of threshold breach.
🛡️ ThrashGuard Improvement
- Widget cache tables now use the shared table pool (
LuaBoost_AcquireTable) instead of{}. Reduces GC pressure from UI Thrashing Protection.
📦 Installation
Copy !LuaBoost folder to Interface/AddOns/.
Interface/AddOns/!LuaBoost/
├── !LuaBoost.toc
├── LuaBoost.lua
├── enUS.lua
├── koKR.lua
└── deDE.lua
Requires: WoW 3.3.5a (build 12340). For maximum performance, use together with wow_optimize.dll v1.6.0.