Categories / Addons / LuaBoost

LuaBoost

GitHub: suprepupre/LuaBoost

LuaBoost

Lua runtime optimizer + GC manager + loading helpers for WoW 3.3.5a
Author: Suprematist

LuaBoost is a WoW addon that improves addon-side runtime behavior with:

  • smarter garbage collection
  • shared utility APIs
  • loading-screen event suppression
  • lightweight diagnostics
  • optional integration with wow_optimize.dll

Reviews

See what other players say: Reviews and Testimonials

Main Features

Smart GC Manager

  • incremental per-frame GC
  • different GC step sizes for normal, combat, idle, and loading
  • emergency full GC when memory gets too high
  • optional forced GC burst on certain heavy events

Runtime Utilities

  • GetTimeCached()
  • GetFrameNumber()
  • LuaBoost_Throttle(id, interval)
  • reusable table pool
  • cached date helper
  • OnUpdate dispatcher API

Loading-Screen Helpers

  • SpeedyLoad event suppression during loading screens
  • safe and aggressive modes
  • restore events after loading completes

Diagnostics

  • /lb gc
  • /lb pool
  • /lb fps
  • /lb events
  • /lb memleak
  • /lb updates

DLL Integration

When wow_optimize.dll is loaded, LuaBoost can:

  • detect DLL presence
  • sync GC step settings to the DLL
  • display DLL GC, fast path, and runtime state

What's New in v1.9.7

  • Table Pool Release Optimization — Optimized the LuaBoost_ReleaseTable logic by replacing the slow, manual key-clearing loop with a native C-level wipe(t) call, eliminating table recycling overhead.
  • Dispatcher Safety Wrapper — Hardened the high-frequency OnUpdate dispatcher against iterator invalidation by copying active callback handler keys to a temporary table before traversing.
  • Unified DLL Integration — Updated diagnostic displays and communication logic to seamlessly align with wow_optimize.dll v3.16.0.

What's New in v1.9.6

  • aligns with the current wow_optimize.dll v3.11.0 build, whose headline change is the mimalloc allocator redirect — WoW's entire static CRT heap is routed through mimalloc to fight 32-bit virtual-address fragmentation over long sessions and repeated alt-switches
  • GC control stays fully delegated to the DLL when it's present; LuaBoost remains a clean standalone fallback when it isn't
  • DLL state display / diagnostics updated to match the current public feature set (event coalescing and the unit-API/spell/item caches are off in public-safe builds)

Current Public Integration Model

The current public wow_optimize.dll builds are intentionally conservative.

Public DLL features still relevant to LuaBoost

  • adaptive GC (LuaBoost delegates GC stepping to the DLL when present)
  • mimalloc redirect of WoW's static CRT heap (VA-fragmentation defense)
  • string table pre-sizing
  • string.format and Lua library fast paths
  • loading and runtime optimizations

Public DLL features intentionally disabled

  • UI widget cache
  • GetSpellInfo / GetItemInfo (API) caches
  • Lua event coalescing

Because of that, LuaBoost no longer shows old DLL API cache lines in slash commands.

Commands

CommandDescription
/lbStatus overview
/lb gcGC stats + DLL GC info
/lb poolTable pool stats
/lb toggleEnable/disable GC manager
/lb forceForce full GC
/lb slToggle SpeedyLoad
/lb sl safeSpeedyLoad safe mode
/lb sl aggSpeedyLoad aggressive mode
/lb tgThrashGuard stats
/lb tg toggleToggle Lua-side ThrashGuard
/lb tg resetReset ThrashGuard counters
/lb fps10-second FPS/frametime report
/lb events10-second event frequency report
/lb memleak30-second addon memory growth scan
/lb updatesShow registered update callbacks
/lb settingsOpen Interface Options
/lb helpShow command list

Runtime APIs Exposed For Addons

Cached Time

local now = GetTimeCached() local frame = GetFrameNumber()

Shared Throttle

if LuaBoost_Throttle("MyAddon_Update", 0.2) then    -- runs at most every 0.2 sec end

Table Pool

local t = LuaBoost_AcquireTable() -- use table LuaBoost_ReleaseTable(t)

OnUpdate Dispatcher

LuaBoost_RegisterUpdate("MyAddon_Update", 0.1, function(now, elapsed)    -- update logic end) LuaBoost_UnregisterUpdate("MyAddon_Update")

Settings

Open: ESC → Interface → AddOns → LuaBoost

Panels:

  • Main
  • GC Settings
  • Tools

Configurable options include:

  • GC enable/disable
  • preset selection
  • per-mode GC step sizes
  • emergency GC threshold
  • idle timeout
  • SpeedyLoad enable/mode
  • debug output

Presets

PresetNormalCombatIdleLoadingEmergency GC
Light20 KB5 KB80 KB150 KB150 MB
Standard50 KB15 KB150 KB300 KB300 MB
Heavy100 KB30 KB300 KB500 KB500 MB

wow_optimize Integration

LuaBoost works with or without the DLL.

Without DLL

LuaBoost still provides:

  • addon-side GC management
  • table pool
  • throttling
  • loading helpers
  • diagnostics

With DLL

LuaBoost additionally becomes a control and visibility layer for:

  • DLL GC mode and state
  • DLL memory info
  • Lua allocator status
  • fast path stats

Notes About ThrashGuard

LuaBoost contains a Lua-side StatusBar-only ThrashGuard. When using current public DLL builds:

  • the DLL UI widget cache is disabled
  • LuaBoost ThrashGuard can still be used as a Lua-side option
  • if you experience addon-specific frame issues, keep it off

Localization

Included locales:

  • enUS
  • koKR
  • deDE

English is used as fallback for unsupported locales.

Troubleshooting

Does LuaBoost do anything without the DLL?
Yes. GC management, loading optimization, table pool, throttling, and diagnostics all work standalone.

Why don't I see API cache info anymore?
The current public DLL no longer exposes a meaningful public spell cache path. Slash command output was simplified.

Are there taint risks?
Most of LuaBoost is safe. Potentially risky options remain optional and disabled by default.

License

MIT License — use, modify, and distribute freely.

Also for WoW 3.3.5a

ProjectWhat it does
wow_optimizeEngine-level optimization DLL - allocator, Lua VM, timers, file I/O, frame-time benchmark
WA_SafeGuardBacks up WeakAuras so a forced disconnect cannot wipe your auras
DefileAlertInstant Defile target callout for the Lich King encounter

Related articles