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.
- Host: GitHub
- URL: https://github.com/parser3/als.erusage
- Owner: parser3
- License: mit
- Created: 2016-11-17T20:05:44.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-11-17T20:18:44.000Z (over 9 years ago)
- Last Synced: 2025-01-28T03:19:59.793Z (over 1 year ago)
- Topics: als, package, parser3
- Language: OpenEdge ABL
- Size: 5.86 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
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)