top: provide the means to adjust scaled process memory

This commit is an unrequested outgrowth of the earlier
change dealing with summary area memory field scaling.
That user selectable scaling provision is now extended
to include 6 (at present) task oriented memory fields.

The new companion 'e' (lower case) interactive command
has been added and, like the 'E' command, it can cycle
each of the currently displayed memory columns between
KiB through TiB. There are, however, some differences.

Where '+' indicates summary area truncation at a given
radix, task memory fields are automatically scaled for
their column. Thus, not all rows use the same scaling.

And, while summary area field widths were not changed,
the task memory columns were widened in order to offer
more meaningful data when the radix was increased. The
precision is automatically increased in step with each
radix: MiB displays 2 decimal places, GiB 3 and TiB 4.

To compliment that additional precision, both the %CPU
and %MEM fields were widened by 1 column and now offer
precision up to 3 decimal places. But, unique to %CPU,
widening could already have occurred due to the number
of processors in some massively parallel boxes. At any
rate, total extra width for both memory and percentage
fields could amount to twenty (precious) columns more.

So for both the memory and % fields the original width
(along with loss of precision) can be restored via new
compiler conditionals which this commit also provides.

p.s. and it will be rcfile preserved for any restarts!

(now that we know a '.' + 2 spaces is squeezed to one)
(everything's perfectly justified, but it's just luck)

Reference(s):
http://www.freelists.org/post/procps/top-regression-reports

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner
2012-12-14 00:00:00 -06:00
committed by Craig Small
parent bc46f67f9a
commit 21e550bc08
4 changed files with 148 additions and 77 deletions

View File

@@ -446,6 +446,10 @@ are sorted high-to-low or low-to-high.
For additional information on sort provisions
\*(Xt 4c. TASK AREA Commands, SORTING.
The fields related to \*(MP or \*(MV reference '(KiB)' as the default,
unsuffixed display mode.
Such fields can, however, be scaled differently via the 'e' \*(CI.
.TP 4
1.\fB %CPU \*(Em \*(PU Usage \fR
The task's share of the elapsed \*(PU time since the last screen update,
@@ -938,6 +942,17 @@ If you see a '+' between a displayed number and the following label, it
means that \*(We was forced to truncate some portion of that number.
By raising the scaling factor, such truncation can usually be avoided.
.TP 7
\ \ \'\fBe\fR\' :\fIExtend-Memory-Scale\fR in Task Windows
With this command you can cycle through the available \*(TW memory scaling
which ranges from KiB (kibibytes or 1,024 bytes) through TiB (tebibytes or
1,099,511,627,776 bytes).
While \*(We will try to honor the selected target range, additional
scaling might still be necessary in order to accommodate current values.
If you wish to see a more homogeneous result in the memory columns,
raising the scaling range will usually accomplish that goal.
.TP 7
\ \ \'\fBg\fR\' :\fIChoose-Another-Window/Field-Group \fR
You will be prompted to enter a number between 1 and 4 designating the