An open API service indexing awesome lists of open source software.

https://github.com/parser3/als.erusage

Erusage Component.
https://github.com/parser3/als.erusage

als package parser3

Last synced: over 1 year ago
JSON representation

Erusage Component.

Awesome Lists containing this project

README

          

# Als/Erusage

Учёт используемой памяти и сборка мусора.

## Installation

```bash
$ composer require als/erusage
```

## Information

Ну вот, приехали... И тут дожили до сборки мусора... Ну а кто обещал что будет совсем легко? В общем пользоваться ей совершенно не обязательно, но иногда наступает момент когда она может пригодиться. Родной `^memory:compact[]` никто не отменял, но вызывать его при каждом чихе не стоит, т.к. упоминаемая операция не сказать что очень быстрая.

И тут может помочь предлагаемый класс `Als/Erusage`, в задачу которого в принципе входит абсолютно то-же самое: периодические вызовы `^memory:compact[]`, но делать он это будет не постоянно. И в добавок к этому он будет накопливать простенькую статистику, которая может вам пригодиться.

Как обычно все просто: в местах, после которых как вам кажется надо бы пособирать мусор, вызываете `^Als/Erusage:compact[]` вместо обычного `^memory:compact[]`. Все. :)

И что это даст? Дело в том что класс будет вызывать парсерный `^memory:compact[]` только тогда, когда с момента последней сборки мусора будет использовано памяти больше, чем значение `$.iLimit` (по умолчанию 2048 КБ), в противном случае ничего делаться не будет (кроме учета количества вызовов). Значение `$.iLimit` можно изменить с помощью вызова статического метода `^Als/Erusage:init[ $.iLimit(4096) ]`.

Если в очередной точке пространственно-временного континиума вашего кода вы решите, что тут нужно обязательно выполнить самый что ни на есть настоящий `^memory:compact[]`, то смело зовите `^Als/Erusage:compact[ $.bForce(1) ]` и он будет выполнен, век воли не видать :)

А на последок в `@postprocess[]` вы можете вызвать `^Als/Erusage:print[]` и вывести накопленные результаты на экран (или в файл, если вызовете `^Als/Erusage:print[ $.sFile[путь/к/файлу.log] ]`).

А ещё из `@postprocess[]` можно вызвать `^Als/Erusage:log[ $.sFile[/путь/к/erusage.log] ]` и класс в лог запишет время формирования страницы и израсходованную память (ну и ещё кое какие полезные мелочи).

Вот теперь совсем всё :)

## References

- Bugs and feature request are tracked on [GitHub](https://github.com/parser3/als.erusage/issues)