1
0
Fork 0
mirror of https://gitlab.com/procps-ng/procps.git synced 2025-12-05 23:07:20 +00:00
No description
Find a file
Jim Warner 98e44f962d library: squeeze a tad more performance out of sorting
When I offered our project leader the patch referenced
below, I said there was a 90% certainty there would be
no more for the sort module. Here's the remaining 10%.

This patch will trade much pointer arithmetic that was
frequently repeated for a succinct postfix expression.

For an optimized compile using -O3, these changes will
reduce module size by 64 bytes for a new total of 992.
Plus 12 iterated instructions have been eliminated out
of a total of 243, reducing total instructions to 231.

And, while the above improvements are not likely to be
measurable, differences between our sort and the glibc
implementation most certainly are. For example, if one
limits sort to a constant number of tasks (i.e. 1500),
then these are some results in millionths of a second:

   total key(s)   glibc qsort    our mergesort
   ------------   ------------   -------------
       1            0.000060       0.000054
       2            0.000160       0.000121
       6            0.000592       0.000549
       8            0.000711       0.000631
       11           0.001239       0.000959

[ total key(s) represents calls to the sort function ]
[ and, where more than one, emphasize the importance ]
[ the 'stability' factor. Time measured is that of a ]
[ sort function's overhead only, not any other cost. ]

Lastly, and unrelated to those code changes above, I'm
a little surprised to find that some identifiers which
were changed with the patch below, were changed AGAIN!

Oh well, the new names are definately an improvement!!

Reference(s):
, Nov, 2025 - refactor identifiers
commit db4a4c561d

Signed-off-by: Jim Warner <james.warner@comcast.net>
2025-12-01 18:49:43 +11:00
doc misc: Move Documentation to doc 2022-08-29 18:38:52 +10:00
library library: squeeze a tad more performance out of sorting 2025-12-01 18:49:43 +11:00
local Fix integer overflow in scale_size() for large memory values 2025-11-29 16:03:48 +11:00
man docs: w ignores --ip-addr on systemd platforms 2025-11-29 16:27:23 +11:00
po nls: Update translations from translation project 2024-12-19 11:36:48 +11:00
po-man build-sys: Remove debug target in po-man Makefile 2025-05-29 19:51:21 +10:00
src ps: eliminate a minor memory leak associated with sort 2025-11-22 09:11:36 +11:00
testsuite ps: Fix table option handling and -ad 2025-10-28 17:11:28 +11:00
.gitignore hugetop: Minor adjustments 2024-01-31 18:03:52 +11:00
.gitlab-ci.yml another go at artifacts 2025-10-20 20:57:28 +11:00
AUTHORS Changed git site to gitlab 2015-05-10 14:57:50 +10:00
autogen.sh misc: Move all binaries to src 2022-08-29 18:29:28 +10:00
ChangeLog Changed git site to gitlab 2015-05-10 14:57:50 +10:00
configure.ac build-sys: Conditional assert 2025-06-11 22:05:34 +10:00
COPYING license: update FSF addresses 2012-03-04 08:04:24 +11:00
COPYING.LIB miscellaneous: clean up trailing whitespace once again 2013-04-07 18:05:01 +10:00
create-man-pot.sh build-sys: Rearrange the manual pages 2022-08-29 18:07:43 +10:00
INSTALL.md Minor wording changes to MarkDown documents 2024-04-02 08:54:39 +00:00
Makefile.am library: implement our own 'stable' mergesort function 2025-11-22 09:11:36 +11:00
NEWS ps: Fix table option handling and -ad 2025-10-28 17:11:28 +11:00
README.md docs: Update README 2024-10-09 21:56:22 +11:00
sysctl.conf misc: Add some link examples to sysctl.conf (catch up) 2018-05-06 07:19:38 +10:00
translate-man.sh build-sys: Rearrange the manual pages 2022-08-29 18:07:43 +10:00

pipeline status Latest Release

procps

procps is a set of command line and full-screen utilities that provide information out of the pseudo-filesystem most commonly located at /proc. This filesystem provides a simple interface to kernel data structures. The utilities provided by procps focus on the structures that describe processess running on the system.

The following utilities are provided by procps:

  • free - Report the amounts of free and used memory in the system
  • hugetop - Report hugepage usage of processes and the system as a whole
  • kill - Send a signal to a process based on PID
  • pgrep - List processes based on name or other attributes
  • pkill - Send a signal to a process based on name or other attributes
  • pmap - Report the memory map of a process
  • ps - Report process information including PID and resource usage
  • pwdx - Report the current working directory of a process
  • skill - Obsolete version of pgrep/pkill
  • slabtop - Display kernel slab cache information in real time
  • snice - Renice a process
  • sysctl - Read or write kernel parameters at run-time
  • tload - Graphical representation of system load average
  • top - Dynamic real-time view of running processes
  • uptime - Display how long the system has been running
  • vmstat - Report virtual memory statistics
  • w - Report logged in users and what they are doing
  • watch - Execute a program periodically, showing output fullscreen

Reporting Bugs

There are three ways to submit bugs or feature requests:

  1. Your Linux distribution's bug reporter. If you are using Linux distribution packages your first port of call is their bug tracker. This is because each distribution has their own patches and way of dealing with bugs. Also bug reporting often does not need any subscription to websites.
  2. GitLab Issues - To the left of this page is the issue tracker. You can report bugs here.
  3. Email list - We have an email list (see below) where you can report bugs. A shortcoming of this method is that such bug reports often get lost and cannot be tracked. This is especially problematic when the report conerns something that will take time to resolve.

If you need to report bugs, there is more details on the Bug Reporting page.

Email List

The email list for the developers and users of procps is found at http://www.freelists.org/archive/procps/ This email list discusses the development of procps and is used by distributions to also forward or discuss bugs.