{"repo":"EmbarkStudios/puffin","free":true,"listed":false,"github":"https://github.com/EmbarkStudios/puffin","clone":"git clone https://github.com/EmbarkStudios/puffin.git","description":"🐦 Friendly little instrumentation profiler for Rust 🦀","language":"Rust","stars":1727,"topics":["profiler","rust","flamegraph","hacktoberfest"],"license":"Apache-2.0","category":"dev-tools","readme_excerpt":"🐦 puffin The friendly little instrumentation profiler for Rust (puffin photo by Richard Bartz) How to use The Puffin macros write data to a thread-local data stream. When the outermost scope of a thread is closed, the data stream is sent to a global profiler collector. The scopes are pretty light-weight, costing around 50-200 ns. You have to turn on the profiler before it captures any data with a call to puffin::set scopes on(true); . When the profiler is off the profiler scope macros only has an overhead of 1 ns on an M1 MacBook Pro (plus some stack space). Once per frame you need to call puffin::GlobalProfiler::lock().new frame(); . Remote profiling You can use puffin http to send profile events over TCP to puffin viewer . This is as easy as: egui integration To view the profile data in-game you can use puffin egui . If you are using eframe you can look at this example. Other Also check out the crate profiling which provides a unifying layer of abstraction on top of puffin and other profiling crates. Contributing We welcome community contributions to this project. Please read our Contributor Guide for more information on how to get started. Releasing We use the cargo release tool to manage changelogs, git tags and publishing crates. Each substantial pull request should add a changelog entry under the [Unreleased] section (see keep a changelog and previous changelog entries). The crate version in Cargo.toml is never updated manually in a PR as it's handled by cargo release ","default_branch":null,"files":null,"tree":[],"storefront":"/r/EmbarkStudios","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/EmbarkStudios/puffin/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}