added memory usage to console progress helper#9573
Closed
lsv wants to merge 2 commits intosymfony:masterfrom
lsv:progress-memory
Closed
added memory usage to console progress helper#9573lsv wants to merge 2 commits intosymfony:masterfrom lsv:progress-memory
lsv wants to merge 2 commits intosymfony:masterfrom
lsv:progress-memory
Conversation
Member
There was a problem hiding this comment.
Just use if as the prevoous if returns
Member
|
👍 very good feature to detect memory leaks on long running process. |
Contributor
|
👍 |
Contributor
There was a problem hiding this comment.
how about humanReadableMemory?
Author
There was a problem hiding this comment.
Just took the "name" from the method just below called "humaneTime"
Contributor
|
👍 |
1 similar comment
|
👍 |
Contributor
|
I would be nice to have this in 2.5, ping @fabpot |
Contributor
|
could you please add a test? I am not sure if the elapsed feature was merged without tests also |
Contributor
There was a problem hiding this comment.
more correct would be GiB, MiB, KiB etc.
Member
|
Closing in favor of #10356 |
fabpot
added a commit
that referenced
this pull request
Mar 3, 2014
This PR was merged into the 2.5-dev branch. Discussion ---------- [Console] A better progress bar | Q | A | ------------- | --- | Bug fix? | no | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | #9573, #9574, #10187, #9951, related to #9788 | License | MIT | Doc PR | symfony/symfony-docs#3626 TODO: - [x] add some docs See what this PR allows you to do easily:  ## New ProgressBar class First, this PR deprecates `ProgressHelper` in favor of `ProgressBar`. The main difference is that the new `ProgressBar` class represents a single progress bar, which allows for more than one bar to be displayed at a time: ```php use Symfony\Component\Console\Helper\ProgressBar; use Symfony\Component\Console\Output\ConsoleOutput; $output = new ConsoleOutput(); $bar1 = new ProgressBar($output, 10); $bar2 = new ProgressBar($output, 20); $bar2->setProgressCharacter('#'); $bar1->start(); print "\n"; $bar2->start(); for ($i = 1; $i <= 20; $i++) { // up one line $output->write("\033[1A"); usleep(100000); if ($i <= 10) { $bar1->advance(); } print "\n"; $bar2->advance(); } ``` And here is how it looks like when run:  ## Format Placeholders This pull request refactors the way placeholders in the progress bar are managed. It is now possible to add new placeholders or replace existing ones: ```php // set a new placeholder ProgressBar::setPlaceholderFormatterDefinition('remaining_steps', function (ProgressBar $bar) { return $bar->getMaxSteps() - $bar->getStep(); }); // change the behavior of an existing placeholder ProgressBar::setPlaceholderFormatterDefinition('max', function (ProgressBar $bar) { return $bar->getMaxSteps() ?: '~'; }); ``` Several new built-in placeholders have also been added: * `%remaining%`: Display the remaining time * `%estimated%`: Display the estimated time of the whole "task" * `%memory%`: Display the memory usage ## Formats Formats can also be added (or built-in ones modified): ```php ProgressBar::setFormatDefinition('simple', '%current%'); $bar->setFormat('simple'); // is equivalent to $bar->setFormat('%current%'); ``` Built-in formats are: * `quiet` * `normal` * `verbose` * `quiet_nomax` * `normal_nomax` * `verbose_nomax` ## Format Messages You can also set arbitrary messages that depends on the progression in the progress bar: ```php $bar = new ProgressBar($output, 10); $bar->setFormat("%message% %current%/%max% [%bar%]"); $bar->setMessage('started'); $bar->start(); $bar->setMessage('advancing'); $bar->advance(); $bar->setMessage('finish'); $bar->finish(); ``` You are not limited to a single message (`message` being just the default one): ```php $bar = new ProgressBar($output, 10); $bar->setFormat("%message% %current%/%max% [%bar%] %end%"); $bar->setMessage('started'); $bar->setMessage('', 'end'); $bar->start(); $bar->setMessage('advancing'); $bar->advance(); $bar->setMessage('finish'); $bar->setMessage('ended...', 'end'); $bar->finish(); ``` ## Multiline Formats A progress bar can now span more than one line: ```php $bar->setFormat("%current%/%max% [%bar%]\n%message%"); ``` ## Flexible Format Definitions The hardcoded formatting for some placeholders (like `%percent%` or `%elapsed%`) have been removed in favor of a `sprintf`-like format: ```php $bar->setFormat("%current%/%max% [%bar%] %percent:3s%"); ``` Notice the `%percent:3s%` placeholder. Here, `%3s` is going to be used when rendering the placeholder. ## ANSI colors and Emojis The new progress bar output can now contain ANSI colors and.or Emojis (see the small video at the top of this PR). Commits ------- 0d1a58c [Console] made formats even more flexible 8c0022b [Console] fixed progress bar when using ANSI colors and Emojis 38f7a6f [Console] fixed PHP comptability 244d3b8 [Console] added a way to globally add a progress bar format or modify a built-in one a9d47eb [Console] added a way to add a custom message on a progress bar 7a30e50 [Console] added support for multiline formats in ProgressBar 1aa7b8c [Console] added more default placeholder formatters for the progress bar 2a78a09 [Console] refactored the progress bar to allow placeholder to be extensible 4e76aa3 [Console] added ProgressBar (to replace the stateful ProgressHelper class)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Output will look like this