PHPackages                             jokkedk/webgrind - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Debugging &amp; Profiling](/categories/debugging)
4. /
5. jokkedk/webgrind

ActiveApplication[Debugging &amp; Profiling](/categories/debugging)

jokkedk/webgrind
================

Webgrind is a Xdebug profiling web frontend in PHP5. It implements a subset of the features of kcachegrind and installs in seconds and works on all platforms. For quick'n'dirty optimizations it does the job.

v1.9.4(6mo ago)3.3k193.0k↓22.8%410[17 issues](https://github.com/jokkedk/webgrind/issues)[11 PRs](https://github.com/jokkedk/webgrind/pulls)BSD-3-ClausePHP

Since May 30Pushed 6mo ago143 watchersCompare

[ Source](https://github.com/jokkedk/webgrind)[ Packagist](https://packagist.org/packages/jokkedk/webgrind)[ Docs](https://github.com/jokkedk/webgrind)[ RSS](/packages/jokkedk-webgrind/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)DependenciesVersions (13)Used By (0)

Webgrind
========

[](#webgrind)

Webgrind 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:

[![](https://camo.githubusercontent.com/0b86a97f4b5692ce0067ba81988c4b42978627a688b81fa093a50c26cb1f6eb7/68747470733a2f2f6a6f6b6b65646b2e6769746875622e696f2f7765626772696e642f696d672f7765626772696e645f323030385f6c617267652e706e67)](https://jokkedk.github.io/webgrind/img/webgrind_2008_large.png)

Features
--------

[](#features)

- Super simple, cross platform installation - obviously :)
- Track time spent in functions by self cost or inclusive cost. Inclusive cost is time inside function + calls to other functions.
- See if time is spent in internal or user functions.
- See where any function was called from and which functions it calls.
- Generate a call graph using [gprof2dot.py](https://github.com/jrfonseca/gprof2dot)

Suggestions for improvements and new features are more than welcome - this is just a start.

Installation
------------

[](#installation)

1. Download webgrind
2. Unzip package to favourite path accessible by webserver.
3. Load webgrind in browser and start profiling by clicking the "update" button in the top right corner

Alternatively, on PHP 5.4+ run the application using the PHP built-in server with the command `composer serve` or `php -S 0.0.0.0:8080 index.php` if you are not using Composer.

For faster preprocessing, give write access to the `bin` subdirectory, or compile manually:

- Linux / Mac OS X: execute `make` in the unzipped folder (requires GCC or Clang.)
- Windows: execute `nmake -f NMakeFile` in the unzipped folder (requires Visual Studio 2015 or higher.)

See the [Installation Wiki page](https://github.com/jokkedk/webgrind/wiki/Installation) for more.

Use with Docker
---------------

[](#use-with-docker)

Instead 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 quickly inspect existing xDebug profiling files. To use the Docker image, run the following command with `/path/to/xdebug/files` replaced by the actual path of your profiling files.

```
docker run --rm -v /path/to/xdebug/files:/tmp -p 80:80 jokkedk/webgrind:latest

```

Now open `http://localhost` in your browser. After using webgrind you can stop the Docker container by pressing `CTRL / Strg` + `C`.

To use the built-in file viewer, mount the appropriate files under `/host` in the container.

Credits
-------

[](#credits)

Webgrind 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).

Current maintainer is [Micah Ng](https://github.com/alpha0010).

###  Health Score

62

—

FairBetter than 99% of packages

Maintenance68

Regular maintenance activity

Popularity62

Solid adoption and visibility

Community37

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~313 days

Recently: every ~378 days

Total

12

Last Release

189d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/18a3268ce3f314c522bc919d18ffb2aed9478ef58eebb6e4c281f145367eaba2?d=identicon)[jokkedk](/maintainers/jokkedk)

---

Top Contributors

[![jokkedk](https://avatars.githubusercontent.com/u/71143?v=4)](https://github.com/jokkedk "jokkedk (97 commits)")[![alpha0010](https://avatars.githubusercontent.com/u/4990928?v=4)](https://github.com/alpha0010 "alpha0010 (81 commits)")[![oetting](https://avatars.githubusercontent.com/u/572972?v=4)](https://github.com/oetting "oetting (51 commits)")[![yannooo](https://avatars.githubusercontent.com/u/56413?v=4)](https://github.com/yannooo "yannooo (8 commits)")[![unknownbrackets](https://avatars.githubusercontent.com/u/191233?v=4)](https://github.com/unknownbrackets "unknownbrackets (7 commits)")[![Rasmus-Bertell](https://avatars.githubusercontent.com/u/57398362?v=4)](https://github.com/Rasmus-Bertell "Rasmus-Bertell (6 commits)")[![Roy-Orbison](https://avatars.githubusercontent.com/u/28617290?v=4)](https://github.com/Roy-Orbison "Roy-Orbison (4 commits)")[![xabbu42](https://avatars.githubusercontent.com/u/98500?v=4)](https://github.com/xabbu42 "xabbu42 (3 commits)")[![tomjn](https://avatars.githubusercontent.com/u/58855?v=4)](https://github.com/tomjn "tomjn (2 commits)")[![Kovah](https://avatars.githubusercontent.com/u/1816101?v=4)](https://github.com/Kovah "Kovah (2 commits)")[![vlakoff](https://avatars.githubusercontent.com/u/544424?v=4)](https://github.com/vlakoff "vlakoff (2 commits)")[![Woet](https://avatars.githubusercontent.com/u/3000589?v=4)](https://github.com/Woet "Woet (2 commits)")[![Xon](https://avatars.githubusercontent.com/u/635541?v=4)](https://github.com/Xon "Xon (2 commits)")[![Cleptomania](https://avatars.githubusercontent.com/u/1023162?v=4)](https://github.com/Cleptomania "Cleptomania (2 commits)")[![Krinkle](https://avatars.githubusercontent.com/u/156867?v=4)](https://github.com/Krinkle "Krinkle (2 commits)")[![bionoren](https://avatars.githubusercontent.com/u/520596?v=4)](https://github.com/bionoren "bionoren (2 commits)")[![crysdd](https://avatars.githubusercontent.com/u/28992361?v=4)](https://github.com/crysdd "crysdd (1 commits)")[![zyphlar](https://avatars.githubusercontent.com/u/48434?v=4)](https://github.com/zyphlar "zyphlar (1 commits)")[![danguer](https://avatars.githubusercontent.com/u/444330?v=4)](https://github.com/danguer "danguer (1 commits)")[![dp-think-modular](https://avatars.githubusercontent.com/u/171569307?v=4)](https://github.com/dp-think-modular "dp-think-modular (1 commits)")

---

Tags

debugging-toolphpxdebugdebugXdebugwebgrind

### Embed Badge

![Health badge](/badges/jokkedk-webgrind/health.svg)

```
[![Health](https://phpackages.com/badges/jokkedk-webgrind/health.svg)](https://phpackages.com/packages/jokkedk-webgrind)
```

###  Alternatives

[symfony/var-dumper

Provides mechanisms for walking through any arbitrary PHP variable

7.4k855.5M8.0k](/packages/symfony-var-dumper)[barryvdh/laravel-debugbar

PHP Debugbar integration for Laravel

19.2k124.3M624](/packages/barryvdh-laravel-debugbar)[tracy/tracy

😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.

1.8k24.4M1.3k](/packages/tracy-tracy)[composer/xdebug-handler

Restarts a process without Xdebug.

2.6k397.5M90](/packages/composer-xdebug-handler)[php-debugbar/php-debugbar

Debug bar in the browser for php application

4.4k21.3M40](/packages/php-debugbar-php-debugbar)[fruitcake/laravel-debugbar

PHP Debugbar integration for Laravel

19.1k662.9k29](/packages/fruitcake-laravel-debugbar)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
