Skip to content

Releases: suprepupre/LuaBoost

LuaBoost v1.9.3

05 Apr 17:31

Choose a tag to compare

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

29 Mar 18:04

Choose a tag to compare

Fixed

  • ThrashGuard activating after /reload when DLL is loaded — after /reload, the DLL needs several seconds to re-register its Lua globals. Previously, LuaBoost checked hasDLL() immediately during PLAYER_LOGIN and found it false, 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

26 Mar 17:59

Choose a tag to compare

🔄 What’s New in v1.9.1

  • removed DLL API cache text from /lb and /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

22 Mar 19:10

Choose a tag to compare

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

17 Mar 23:35

Choose a tag to compare

!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

  • /lb and /lb gc now 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

16 Mar 23:53

Choose a tag to compare

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

Installation

Extract to Interface/AddOns/!LuaBoost/

LuaBoost v1.6.0

16 Mar 00:09

Choose a tag to compare

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

14 Mar 19:14

Choose a tag to compare

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

11 Mar 14:09

Choose a tag to compare

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 + gcFrame merged into single coreFrame
  • 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

10 Mar 16:22

Choose a tag to compare

🏗️ 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, gcFrame intentionally kept separate (need isolation / independent OnUpdate)

⚡ GC Optimization

  • Memory check throttledcollectgarbage("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.