{"id":19826875,"url":"https://github.com/rudjigames/rprof","last_synced_at":"2025-04-06T22:07:40.307Z","repository":{"id":62654532,"uuid":"244308600","full_name":"RudjiGames/rprof","owner":"RudjiGames","description":"CPU scope based profiling library and browser based profile inspector with ImGui visualization","archived":false,"fork":false,"pushed_at":"2025-03-12T15:49:12.000Z","size":4991,"stargazers_count":89,"open_issues_count":0,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T20:12:11.202Z","etag":null,"topics":["cpu-profiling","cross-platform","game-development","gamedev","imgui","profiler"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RudjiGames.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-02T07:36:29.000Z","updated_at":"2025-03-12T15:49:15.000Z","dependencies_parsed_at":"2024-11-05T05:32:41.599Z","dependency_job_id":null,"html_url":"https://github.com/RudjiGames/rprof","commit_stats":null,"previous_names":["rudjigames/rprof"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RudjiGames%2Frprof","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RudjiGames%2Frprof/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RudjiGames%2Frprof/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RudjiGames%2Frprof/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RudjiGames","download_url":"https://codeload.github.com/RudjiGames/rprof/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247557767,"owners_count":20958047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu-profiling","cross-platform","game-development","gamedev","imgui","profiler"],"created_at":"2024-11-12T11:11:53.025Z","updated_at":"2025-04-06T22:07:40.285Z","avatar_url":"https://github.com/RudjiGames.png","language":"C","readme":"\u003cimg height=\"81\" src=\"https://rudji.com/rudji_games_logo_bright.svg\"/\u003e\n\n[![Build status](https://ci.appveyor.com/api/projects/status/0498ey79muxvrh9t?svg=true)](https://ci.appveyor.com/project/milostosic/rprof-fbbqv)\n[![License](https://img.shields.io/badge/license-BSD--2%20clause-blue.svg)](https://github.com/RudjiGames/rprof/blob/master/LICENSE)\n\nAbout\n======\n\n**rprof** is a scope based CPU profiling library with [ImGui](https://github.com/ocornut/imgui) visulization and browser profile inspector. The core concept is a time threshold, which can be used to easily catch functions or entire frames that exceed certain time value. By doing this, optimization work can focus initially on frames and functions that are only occasionally slow and iteratively progress towards more consistent performance.\n\nProfiler always runs when used, but will display only those frames that exceed given threshold. Default value of 0 means to display every frame. Level value refers to hierachical scope depth where value of 0 represents an entire frame.\n\n![In game screenshot](https://github.com/RudjiGames/rprof/blob/master/img/rprof_vis.jpg) \n\nSource Code\n======\n\nYou can get the latest source code by cloning it from github:\n\n      git clone https://github.com/RudjiGames/rprof.git \n\nBuild\n======\n\n[GENie](https://github.com/bkaradzic/GENie) script can generate Microsoft Visual Studio solution or makefiles for a GCC based compiler or cross compiler. Generating a MSVC\nsolution, for example, is done using the following command:\n\n      genie vs2022\n\nThe generated solution will be located in the following folder:\n   .build/projects/vs2022\n\nGenerating makefiles for a GCC based toolchain is done in a similar way, for\nexample:\n\n      OSX   :   genie --gcc=oxc gmake\n      PS4   :   genie --gcc=ps4 gmake\n\nGenerated makefiles will be located in the following folder:\n\n      .build/projects/gmake/$(GCC_TOOLCHAIN)\n\nAll of the generated solutions/makefiles provide a Debug, Release and Retail configurations,\nin both 32bit and 64bit versions. Some platforms support only one word size, for \nexample OSX works with 64 bit builds only.\n\nTo build a GCC based library use the following command lines:\n\n      Debug, 32bit   :  make -R config=debug32\n      Release, 64bit :  make -R config=release64\n\nFor convenience, there are batch files in 'scripts' directory that can be used to fetch dependencies (for the demo) and generate project files.\n\nBrowser inspector\n======\n\nCaptured frame profiles can be saved to binary files for offline inspection.\nThe browser based inspector is built using Emscripten. Makefile is included for convenience.\nBrowser inspector is based on [ImGui](https://github.com/ocornut/imgui) and is interacive provinding zooming and panning as well as statistical overview of the frame.  \n\nViewer is browser based in order to be able to use it as a part of QA pipeline during development process.  \n\n[**Live demo**](https://rudji.com/rprof/rprof.html?path=https://rudji.com/rprof/\u0026file=capture.rprofm)\n\n![Inspector screenshot](https://github.com/milostosic/rprof/blob/master/img/rprof_browser.gif) \n\n\nLicense (BSD 2-clause)\n======\n\n\u003ca href=\"http://opensource.org/licenses/BSD-2-Clause\" target=\"_blank\"\u003e\n\u003cimg align=\"right\" src=\"https://opensource.org/wp-content/uploads/2022/10/osi-badge-dark.svg\" width=\"100\" height=\"137\"\u003e\n\u003c/a\u003e\n\n\tCopyright 2023 Milos Tosic. All rights reserved.\n\t\n\thttps://github.com/RudjiGames/rprof\n\t\n\tRedistribution and use in source and binary forms, with or without\n\tmodification, are permitted provided that the following conditions are met:\n\t\n\t   1. Redistributions of source code must retain the above copyright notice,\n\t      this list of conditions and the following disclaimer.\n\t\n\t   2. Redistributions in binary form must reproduce the above copyright\n\t      notice, this list of conditions and the following disclaimer in the\n\t      documentation and/or other materials provided with the distribution.\n\t\n\tTHIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR\n\tIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n\tMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO\n\tEVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n\tINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\tLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\tON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\tTHIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frudjigames%2Frprof","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frudjigames%2Frprof","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frudjigames%2Frprof/lists"}