{"id":13549173,"url":"https://github.com/jokkedk/webgrind","last_synced_at":"2025-05-13T21:04:53.542Z","repository":{"id":1326126,"uuid":"1271583","full_name":"jokkedk/webgrind","owner":"jokkedk","description":"Xdebug Profiling Web Frontend in PHP","archived":false,"fork":false,"pushed_at":"2024-07-12T20:02:02.000Z","size":545,"stargazers_count":3306,"open_issues_count":55,"forks_count":410,"subscribers_count":147,"default_branch":"master","last_synced_at":"2025-04-28T13:58:41.658Z","etag":null,"topics":["debugging-tool","php","xdebug"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jokkedk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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":"2011-01-19T17:13:31.000Z","updated_at":"2025-04-26T10:33:15.000Z","dependencies_parsed_at":"2024-01-14T03:46:27.928Z","dependency_job_id":"a0bbd85f-661f-492b-8d5e-4e60dc77a34e","html_url":"https://github.com/jokkedk/webgrind","commit_stats":{"total_commits":253,"total_committers":45,"mean_commits":5.622222222222222,"dds":0.6798418972332017,"last_synced_commit":"2eb6fc98e91bef68754da585ba70041a850374ae"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jokkedk%2Fwebgrind","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jokkedk%2Fwebgrind/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jokkedk%2Fwebgrind/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jokkedk%2Fwebgrind/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jokkedk","download_url":"https://codeload.github.com/jokkedk/webgrind/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254028510,"owners_count":22002274,"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":["debugging-tool","php","xdebug"],"created_at":"2024-08-01T12:01:19.058Z","updated_at":"2025-05-13T21:04:53.493Z","avatar_url":"https://github.com/jokkedk.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"Webgrind\n========\nWebgrind is an [Xdebug](http://www.xdebug.org) profiling web frontend in PHP. It implements a subset of the features of [kcachegrind](https://kcachegrind.github.io/) and installs in seconds and works on all platforms. For quick'n'dirty optimizations it does the job. Here's a screenshot showing the output from profiling:\n\n\u003ca href=\"https://jokkedk.github.io/webgrind/img/webgrind_2008_large.png\"\u003e\u003cimg src=\"https://jokkedk.github.io/webgrind/img/webgrind_2008_large.png\" height=\"384\"\u003e\u003c/a\u003e\n\nFeatures\n--------\n  * Super simple, cross platform installation - obviously :)\n  * Track time spent in functions by self cost or inclusive cost. Inclusive cost is time inside function + calls to other functions.\n  * See if time is spent in internal or user functions.\n  * See where any function was called from and which functions it calls.\n  * Generate a call graph using [gprof2dot.py](https://github.com/jrfonseca/gprof2dot)\n\nSuggestions for improvements and new features are more than welcome - this is just a start.\n\nInstallation\n------------\n  1. Download webgrind\n  2. Unzip package to favourite path accessible by webserver.\n  3. Load webgrind in browser and start profiling\n\nAlternatively, on PHP 5.4+ run the application using the PHP built-in server\nwith the command `composer serve` or `php -S 0.0.0.0:8080 index.php` if you\nare not using Composer.\n\nFor faster preprocessing, give write access to the `bin` subdirectory, or compile manually:\n  * Linux / Mac OS X: execute `make` in the unzipped folder (requires GCC or Clang.)\n  * Windows: execute `nmake -f NMakeFile` in the unzipped folder (requires Visual Studio 2015 or higher.)\n\nSee the [Installation Wiki page](https://github.com/jokkedk/webgrind/wiki/Installation) for more.\n\nUse with Docker\n---------------\n\nInstead of uploading webgrind to a web server or starting a local one, you can use the [official Docker image](https://hub.docker.com/r/jokkedk/webgrind) to\nquickly inspect existing xDebug profiling files. To use the Docker image, run the following command with\n`/path/to/xdebug/files` replaced by the actual path of your profiling files.\n\n```\ndocker run --rm -v /path/to/xdebug/files:/tmp -p 80:80 jokkedk/webgrind:latest\n```\n\nNow open `http://localhost` in your browser. After using webgrind you can stop the Docker container by pressing\n`CTRL / Strg` + `C`.\n\nTo use the built-in file viewer, mount the appropriate files under `/host` in the container.\n\nCredits\n-------\nWebgrind is written by [Joakim Nygård](http://jokke.dk) and [Jacob Oettinger](http://oettinger.dk). It would not have been possible without the great tool that Xdebug is thanks to [Derick Rethans](http://www.derickrethans.nl).\n\nCurrent maintainer is [Micah Ng](https://github.com/alpha0010).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjokkedk%2Fwebgrind","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjokkedk%2Fwebgrind","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjokkedk%2Fwebgrind/lists"}