PHPackages                             zeroem/profile-dux - 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. zeroem/profile-dux

ActiveLibrary

zeroem/profile-dux
==================

A profiling utility to use in the absence of XDebug

37PHP

Since Apr 22Pushed 14y ago1 watchersCompare

[ Source](https://github.com/zeroem/profile-dux)[ Packagist](https://packagist.org/packages/zeroem/profile-dux)[ RSS](/packages/zeroem-profile-dux/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Profile - Doesn't Use Xdebug
============================

[](#profile---doesnt-use-xdebug)

A simple object oriented profiling tool

Usage
=====

[](#usage)

Normal Usage
------------

[](#normal-usage)

```
$profiler = new \Dux\Profiler();

for($i=0; $i < $n; $i++) {
    $profiler->start();
    // do something that you want proifled
    $profiler->end();
}

\Dux\Aggregate\Report::generate(
    $profiler,
    new \Dux\Aggregate\Mean()
)->renderAggregate();

// Outputs:
// Mean execution time: (mean)ms
```

Special Circumstances
---------------------

[](#special-circumstances)

When profiling sub-millisecond execution times, the overhead of the method calls can greatly impact your profiling results. To combat this, simply generate the microtime values and add them to the profiler after execution.

NOTE: Only use `microtime()`, not `microtime(true)`. Floating point numbers lose precision as they get larger. To deal with this, profile-dux makes use of the string representation of microtime which separates the millisecond offset from the Unix timestamp.

```
$profiler = new \Dux\Profiler();

for($i=0; $i < $n; $i++) {
    $start = microtime();
    // do something that you want proifled
    $end = microtime();
    $profiler->addProfile($start,$end);
}
```

Installation
============

[](#installation)

Simply add `zeroem/profile-dux` to your Composer requirements:

```
"require": {
    "zeroem/profile-dux":"*"
}
```

and install your dependencies:

```
$> php composer.phar install
```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/eb8edffbae91028ff05d02635ea386346c9a8798128aa38f3ed89115b4226dc3?d=identicon)[zeroem](/maintainers/zeroem)

---

Top Contributors

[![zeroem](https://avatars.githubusercontent.com/u/205044?v=4)](https://github.com/zeroem "zeroem (39 commits)")

### Embed Badge

![Health badge](/badges/zeroem-profile-dux/health.svg)

```
[![Health](https://phpackages.com/badges/zeroem-profile-dux/health.svg)](https://phpackages.com/packages/zeroem-profile-dux)
```

PHPackages © 2026

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