diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2013-05-24 22:46:01 +0000 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2013-05-24 22:46:01 +0000 |
commit | 6cfa9e0bf2ded1add3f018986268d9b1c3b119b6 (patch) | |
tree | eef7e35c7002f1e375fdd671380c3f1e8b9b839a /Process.c | |
parent | 5c2d84aba37e79a2a07cf846c340c0e3d74695f0 (diff) |
Performance improvements due to conditional parsing of IO data depending on selected fields.
On my machine, this gives a ~20% improvement in htop process time use with the default config.
Diffstat (limited to 'Process.c')
-rw-r--r-- | Process.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -45,6 +45,12 @@ in the source distribution for its full text. #include "IOPriority.h" #include <sys/types.h> +#define PROCESS_FLAG_IO 1 +#define PROCESS_FLAG_IOPRIO 2 +#define PROCESS_FLAG_OPENVZ 4 +#define PROCESS_FLAG_VSERVER 8 +#define PROCESS_FLAG_CGROUP 16 + #ifndef Process_isKernelThread #define Process_isKernelThread(_process) (_process->pgrp == 0) #endif @@ -201,6 +207,31 @@ const char *Process_fieldNames[] = { "*** report bug! ***" }; +const int Process_fieldFlags[] = { + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, +#ifdef HAVE_OPENVZ + PROCESS_FLAG_OPENVZ, PROCESS_FLAG_OPENVZ, +#endif +#ifdef HAVE_VSERVER + PROCESS_FLAG_VSERVER, +#endif +#ifdef HAVE_TASKSTATS + PROCESS_FLAG_IO, PROCESS_FLAG_IO, PROCESS_FLAG_IO, PROCESS_FLAG_IO, PROCESS_FLAG_IO, PROCESS_FLAG_IO, PROCESS_FLAG_IO, + PROCESS_FLAG_IO, PROCESS_FLAG_IO, PROCESS_FLAG_IO, +#endif +#ifdef HAVE_CGROUP + PROCESS_FLAG_CGROUP, +#endif + PROCESS_FLAG_IOPRIO +}; + const char *Process_fieldTitles[] = { "", " PID ", "Command ", "S ", " PPID ", " PGRP ", " SESN ", " TTY ", " TPGID ", "- ", "- ", "- ", "- ", "- ", |