promotional bannermobile promotional banner

shPerformance (mem/fps/ms)

An extremely light-weight and beautiful data broker addon that monitors system information and works right out of the box!
shPerformanceV2.png

shPerformanceV2.png

shFps.png

shFps.png

shLatency.png

shLatency.png

Description

shPerformance

shPerformance Logo

WoW Version Version License

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 + Latency
  • shFps - Dedicated FPS monitor with network stats
  • shLatency - 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
shPerformance tooltip shLatency tooltip shFps tooltip

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):

Installation Steps

  1. Download the latest release from GitHub or CurseForge
  2. Extract to: World of Warcraft\_retail_\Interface\AddOns\
  3. Ensure folder is named shPerformance
  4. Restart WoW or /reload if 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

  1. Maintain WoW addon best practices (localize APIs, minimize globals)
  2. Test in raid environments before submitting performance changes
  3. Document any new configuration options
  4. 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

The shPerformance (mem/fps/ms) Team

profile avatar
  • 2
    Projects
  • 6.4K
    Downloads

More from mhDesigns