# profiler
**Repository Path**: mirrors_yiisoft/profiler
## Basic Information
- **Project Name**: profiler
- **Description**: The package provides an ability to record performance profiles.
- **Primary Language**: Unknown
- **License**: BSD-3-Clause
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-08-19
- **Last Updated**: 2026-02-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Yii Profiler
[](https://packagist.org/packages/yiisoft/profiler)
[](https://packagist.org/packages/yiisoft/profiler)
[](https://github.com/yiisoft/profiler/actions?query=workflow%3Abuild)
[](https://codecov.io/gh/yiisoft/profiler)
[](https://dashboard.stryker-mutator.io/reports/github.com/yiisoft/profiler/master)
[](https://github.com/yiisoft/profiler/actions?query=workflow%3A%22static+analysis%22)
[](https://shepherd.dev/github/yiisoft/profiler)
The package provides an ability to record performance profiles.
## Requirements
- PHP 8.0 or higher.
## Installation
The package could be installed with [Composer](https://getcomposer.org):
```shell
composer require --dev yiisoft/profiler
```
If you use this package with [Yii Config](https://github.com/yiisoft/config) and there will be no `@runtime` alias in `yiisoft/aliases` configuration defined, application will throw "Invalid path alias" error.
To solve it, add the `@runtime` alias to the `yiisoft/aliases` configuration in `params.php`:
```php
return [
//...
'yiisoft/aliases' => [
'aliases' => [
//...
'@runtime' => '@root/runtime'
],
],
//...
];
```
## General usage
### Profiling
```php
use Psr\Log\NullLogger;
use Yiisoft\Profiler\Profiler;
use Yiisoft\Profiler\Target\LogTarget;
$logger = new NullLogger();
$target = new LogTarget($logger);
$profiler = new Profiler($logger, [$target]);
$profiler->begin('test');
//...some code
$profiler->end('test');
```
Nested profiling
```php
$profiler->begin('test');
//...some code
$profiler->begin('test');
//...some code
$profiler->end('test');
//...some code
$profiler->end('test');
```
### Getting profiler messages
```php
$messages = $profiler->getMessages();
print_r($messages);
```
Output
```
Array
(
[0] => Yiisoft\Profiler\Message Object
(
[level:Yiisoft\Profiler\Message:private] => application
[token:Yiisoft\Profiler\Message:private] => test
[context:Yiisoft\Profiler\Message:private] => Array
(
[token] => test
[category] => application
[nestedLevel] => 0
[time] => 1614703708.4328
[beginTime] => 1614703708.4328
[beginMemory] => 7696440
[endTime] => 1614703708.4331
[endMemory] => 7702392
[duration] => 0.0003058910369873
[memoryDiff] => 5952
)
)
)
```
### Find profiler messages with a given token
```php
$profiler->begin('test');
//...some code
$profiler->end('test');
$profiler->begin('another test');
//...some code
$profiler->end('another test');
$messages = $profiler->findMessages('another test');
print_r($messages);
```
Output
```
Array
(
[0] => Yiisoft\Profiler\Message Object
(
[level:Yiisoft\Profiler\Message:private] => application
[token:Yiisoft\Profiler\Message:private] => another test
[context:Yiisoft\Profiler\Message:private] => Array
(
[token] => another test
[category] => application
[nestedLevel] => 0
[time] => 1614703716.4328
[beginTime] => 1614703716.4328
[beginMemory] => 7696440
[endTime] => 1614703716.4331
[endMemory] => 7702392
[duration] => 0.0003058910369873
[memoryDiff] => 5952
)
)
)
```
### Saving messages to storage
```php
// obtain profiler
$profiler = getProfiler();
// send profiler messages to targets
$profiler->flush();
```
## Documentation
- [Internals](docs/internals.md)
If you need help or have a question, the [Yii Forum](https://forum.yiiframework.com/c/yii-3-0/63) is a good place for that.
You may also check out other [Yii Community Resources](https://www.yiiframework.com/community).
## License
The Yii Profiler is free software. It is released under the terms of the BSD License.
Please see [`LICENSE`](./LICENSE.md) for more information.
Maintained by [Yii Software](https://www.yiiframework.com/).
## Support the project
[](https://opencollective.com/yiisoft)
## Follow updates
[](https://www.yiiframework.com/)
[](https://twitter.com/yiiframework)
[](https://t.me/yii3en)
[](https://www.facebook.com/groups/yiitalk)
[](https://yiiframework.com/go/slack)