Description
shPerformance

High-performance LibDataBroker addon for real-time system monitoring in World of Warcraft
Optimized for zero memory leaks and minimal CPU usage, even in 40-person raids
Features
Three Independent Data Modules
Choose any combination that fits your UI:
shPerformance- Combined view with FPS + Memory + LatencyshFps- Dedicated FPS monitor with network statsshLatency- Focused latency display with bandwidth monitoring
Real-Time Monitoring
- FPS Tracking - Color-coded frame rate with gradient indicators
- Memory Usage - Per-addon memory consumption with smart sorting
- Network Stats - Home/World latency with IPv4/IPv6 detection
- Bandwidth Monitoring - Real-time incoming/outgoing traffic
Smart Visual Design
- Gradient Color System - Green → Yellow → Red indicators for instant readability
- Adaptive Tooltips - Detailed information on hover with configurable update rates
- Clean Interface - No clutter, only essential data displayed
Performance
Version 3.0 Optimizations
- Zero Memory Leaks - Reusable handlers prevent closure creation
- 60-75% Lower CPU Usage - Optimized update cycles and calculations
- 97% Fewer Allocations - From ~15KB to ~0.5KB per tooltip hover
- 3x Faster Color Lookups - Pre-computed gradient table with cached hex values
- 10-30% Faster API Calls - Complete localization of WoW and Lua functions
Raid-Ready Performance
Extensively tested in demanding environments:
- Stable in 40-person raids
- No performance degradation over time
- Minimal memory footprint (~350KB base)
- Efficient garbage collection
Installation
Requirements
- World of Warcraft 11.2.7 or later
- LibDataBroker Display Addon (Choose one):
- Titan Panel
- Bazooka
- ChocolateBar
- ElvUI (built-in DataTexts)
- Or any other LDB-compatible display
Installation Steps
- Download the latest release from GitHub or CurseForge
- Extract to:
World of Warcraft\_retail_\Interface\AddOns\ - Ensure folder is named
shPerformance - Restart WoW or
/reloadif already in-game
Configuration
Basic Usage
After installation, add any of the three modules to your LDB display:
- Add shPerformance for the all-in-one view
- Add shFps for dedicated FPS monitoring
- Add shLatency for network focus
Advanced Configuration
Edit init.lua to customize:
SHP.CONFIG = {
-- Update Intervals (seconds)
UPDATE_PERIOD_TOOLTIP = 1.5, -- Tooltip refresh rate
UPDATE_PERIOD_FPS_DATA_TEXT = 1.5, -- FPS display update
UPDATE_PERIOD_LATENCY_DATA_TEXT = 15, -- Network stats update
-- Display Settings
MEM_THRESHOLD = 500, -- Min KB to show addon (default: 500)
WANT_ALPHA_SORTING = false, -- Sort alphabetically vs by memory
-- Performance Thresholds
FPS_GRADIENT_THRESHOLD = 75, -- FPS value for green (adjust for your system)
MS_GRADIENT_THRESHOLD = 300, -- Latency MS for red
-- Gradient Colors (R, G, B values 0-1)
GRADIENT_COLOR_SEQUENCE_TABLE = {
0, 0.97, 0, -- Green
0.97, 0.97, 0, -- Yellow
0.95, 0, 0 -- Red
},
}
Tooltip Interaction
- Click - Force garbage collection and update memory stats
- Hover - View detailed addon memory usage and network stats
Technical Details
Architecture
- Modular Design - Three independent LDB objects share optimized core utilities
- Event-Driven Updates - Efficient timing system with configurable intervals
- Smart Caching - Pre-computed gradients, format strings, and hex colors
- Memory Efficient - Reusable handlers, no dynamic closures, minimal allocations
Optimizations
- All WoW API and Lua functions localized for faster lookups
- Pre-cached format strings eliminate runtime concatenation
- Gradient table with 100 pre-computed colors (1% precision)
- Direct table lookups replace complex calculations
- Efficient memory formatting with clear branching
File Structure
shPerformance/
├── init.lua # Core initialization and configuration
├── utils.lua # Optimized utility functions
├── shPerformance.lua # Combined display module
├── shFps.lua # FPS-focused module
├── shLatency.lua # Latency-focused module
├── shPerformance.toc # Addon metadata
└── lib/ # Required libraries
├── LibStub.lua
├── LibDataBroker-1.1.lua
└── CallbackHandler-1.0.lua
Contributing
Contributions are welcome! Please feel free to submit issues or pull requests on GitHub.
Development Guidelines
- Maintain WoW addon best practices (localize APIs, minimize globals)
- Test in raid environments before submitting performance changes
- Document any new configuration options
- Follow existing code style and formatting
License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
- Author: mhDesigns (formerly Shaykh)
- Special Thanks: Tekkub, Stoutwrithe, and the WoW addon community
- Libraries: LibStub, LibDataBroker, CallbackHandler
Version History
See CHANGELOG.md for detailed version history.
Latest Version: 3.0.0 (2024-12-03)
- Major performance optimizations
- Fixed memory leaks in tooltip handlers
- 60-75% CPU usage reduction
- Full API localization
- Compatible with WoW 11.2.7
Happy Gaming!
If you find this addon helpful, please consider giving it a star on GitHub


