Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. LÖVE
  3. jprof

jprof

MITLua

A profiling library for löve games that records time and memory usage via manual code annotations.

GitHubGitHub
102 stars7 forks0 contributors

What is jprof?

jprof is a profiling library specifically designed for löve (Love2D) applications. It enables developers to analyze performance and memory consumption by requiring manual annotation of code sections, addressing the unreliability of standard Lua profiling hooks in luajit.

Target Audience

Love2D game developers who need accurate performance and memory profiling for their Lua applications, particularly those using luajit where standard debug hooks fail.

Value Proposition

Developers choose jprof because it provides reliable, low-overhead profiling for löve by avoiding unreliable debug hooks and using explicit annotations, with features like zero-cost disabling for release builds and an interactive viewer for data analysis.

Overview

Profiling library/tool for löve

Use Cases

Best For

  • Profiling Love2D applications where standard Lua debug hooks are unreliable due to luajit.
  • Analyzing hierarchical performance and memory usage in game loops with manual zone annotations.
  • Real-time performance monitoring during development with live data streaming to a viewer.
  • Post-mortem performance analysis by saving profiling data to MessagePack files for later review.
  • Identifying performance spikes and memory consumption changes across frames using flame graphs.
  • Maintaining profiling annotations in release builds without runtime overhead via zero-cost disabling.

Not Ideal For

  • Projects requiring automatic profiling without manual code instrumentation
  • Non-Love2D Lua applications, as it's tightly coupled to Love2D's environment
  • Teams needing highly accurate real-time memory profiling, due to jprof's self-generated garbage skewing measurements

Pros & Cons

Pros

Accurate LuaJIT Profiling

jprof bypasses unreliable debug hooks in luajit by using manual zone annotations, ensuring profiling works correctly in Love2D where standard methods fail, as highlighted in the README.

Zero-Cost Release Builds

When the PROF_CAPTURE flag is false, profiling functions become no-ops, allowing annotations to remain in production code without any runtime overhead, a key feature for performance-sensitive games.

Interactive Flame Graph Viewer

Includes a dedicated Love2D application that visualizes data with flame graphs, frame averaging, and mode toggles between time and memory views, providing detailed insights into performance bottlenecks.

Real-Time Monitoring Support

Can stream profiling data live to the viewer via prof.connect(), enabling developers to monitor performance changes dynamically during development sessions.

Cons

Manual Annotation Overhead

Developers must manually insert push and pop calls around code blocks, which adds development time and complexity, and mismatched zones can cause errors, as warned in the README.

Love2D Ecosystem Dependency

Both the profiler and viewer are designed specifically for Love2D, making it unsuitable for profiling Lua code in other frameworks or environments, limiting its versatility.

Inaccurate Real-Time Memory Data

As noted in the README, jprof generates its own garbage during real-time profiling, which can dominate and skew memory consumption measurements, reducing reliability for live analysis.

Frequently Asked Questions

Quick Stats

Stars102
Forks7
Contributors0
Open Issues8
Last commit2 months ago
CreatedSince 2017

Tags

#luajit#realtime-monitoring#flame-graph#game-development#performance-profiling#lua#messagepack#memory-profiling#love2d

Built With

M
MessagePack
l
love2d
L
Lua

Included in

LÖVE4.3k
Auto-fetched 19 hours ago

Related Projects

AppleCakeAppleCake

Visual Profiling tool for Love2D using Chromium's tracing tool

Stars34
Forks1
Last commit12 days ago
PiefillerPiefiller

Graphical profiler for Love2D 9.2

Stars25
Forks3
Last commit9 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub