Stats Monitor is a feature-packed performance-monitoring tool for Unity. It provides a convenient and easy to use interface for tracking a multitude of game-related statistics such as framerate, memory footprint, system information, game object count, performance graph, and offers an abundance of other features. It can be used for desktop, mobile, and web projects and was developed to be as unobtrusive and light-weight as possible. Available on the Unity Asset Store.

FEATURES OVERVIEW

FPS Stats – Displays detailed information related to the framerate:
– The current frames per second.
– The last lowest framerate (MIN).
– The last highest framerate (MAX).
– Calculated average framerate (AVG), with configurable average samples count.
– The milliseconds it took for the game to render a frame (MS).

Memory Stats – Displays memory-related stats:
– Total Memory: Shows the total private memory amount which was reserved by the OS for the game. This memory can’t be used by other applications as long as the game is running.
– Allocated Memory: Shows the amount of private memory that is actually used by the game. While the Total Memory value is a ‘pool’ of reserved memory, the game doesn’t necessarily use all of it all the time. Allocated memory is what the game currently uses.
– Mono Memory: Shows the amount of memory that is used by Mono objects. This includes all the objects created by scripts.

SysInfo Stats – Displays information related to the hardware the game is running on:
– Operating System details.
– The CPU and CPU cores.
– GPU, Video RAM andRender API information.
– System RAM.
– Screen size and window dimensions.

Performance Graph – The graph section logs FPS- and memory stats over time and is helpful in tracking FPS drops and memory spikes. It draws graphs for FPS, MS, Total Mem, Alloc Mem, and Mono Mem.

Widget Layouts – Stats Monitor can be switched between four different layouts:
– Minimal: Displays a small FPS counter only.
– Stats Only: Displays only the textual FPS/Mem stats panel.
– Standard: Displays the FPS/Mem stats panel as well as the graph panel.
– Full: Displays the FPS/Mem stats panel, the graph panel, and the SysInfo panel.

Switch between different widget positions via hotkey (Upper Left, Upper Right, Lower Right, etc.)

Switch between different widget styles via hot key.

Customizable hot keys for activating/deactivating the widget, switching between different widget positions, and switching between different styles (see Widget Styles feature). These functions can be configured to be triggered by a single key or additionally by a modifier key. This allows you to configure key combinations like for example SHIFT+Backquote or LCTRL+Backquote.

Modes – Stats Monitor can be switched between three different operating modes:
– Active: The stats monitor is visible and measures performance statistics.
– Inactive: The monitor is not visible and doesn’t measure anything. In this mode the monitor wont do anything except for checking for hot key input.
– Passive: In this mode the stats monitor is not displayed but still measures performance in the background.

Framerate Throttling – Allows you to set Stats Monitor to run the game at a specified maximum framerate. Useful for checking how the game performs at a specific framerate. Note that as long as throttling is enabled the game will disable VSync.

Keep Alive – While enabled, prevents Stats Monitor from being destroyed on level load.

Configurable update interval between 0.01ms and 10 seconds.

Component Inspector – All options are configurable in the Stats Monitor component inspector.

Customizable Look – Allows for customising font, two different font sizes (FPS counter and all other text), background gradient and transparency, text/graph colors, graph background color and transparency, padding, spacing, and graph height. Also included is the default-used font ‘TerminalStats’.

Light-weight – Stats Monitor has been developed for being a minimal, unobtrusive but versatile tool that doesn’t consume any noticeable CPU cycles. The UI uses Unity’s modern UI system and is very responsive.

FPS Warning and Critical Thresholds – Two additional colors and FPS threshold values can be set to indicate framerates at very low ranges. These colors are also reflected in the graph.

Touch Controls – Use Stats Monitor on supported touch display devices and easily toggle it on/off or switch between different positions and layout styles.

Auto-scaling – By default Stats Monitor will scale its display depending on the device screen DPI. This keeps the widget at a readable size on high resolutions, like for example on Retina displays. Optionally the scaling can be set manually.

Easy Integration – Simply create the Stats Monitor from the GameObject/Create Other menu and it’s ready to use.

Clean Code – Written 100% in cleanest, well-optimized C# code.

Available on the Unity Asset Store