diff options
author | nicolargo <nicolas@nicolargo.com> | 2016-12-29 14:06:40 +0100 |
---|---|---|
committer | nicolargo <nicolas@nicolargo.com> | 2016-12-29 14:06:40 +0100 |
commit | fee3f5d7f8c5268df2ea1189cfdf01ba789a94d8 (patch) | |
tree | 08f425ac61214b1c2a06c5b3cdbc0002ec58731b | |
parent | 1b41b676470ee2c48cc7a15ee1bb5f2a6a810d91 (diff) |
Correct hight CPU consumption with extended processes stats enable
-rw-r--r-- | glances/outputs/glances_curses.py | 14 | ||||
-rw-r--r-- | glances/processes.py | 42 |
2 files changed, 14 insertions, 42 deletions
diff --git a/glances/outputs/glances_curses.py b/glances/outputs/glances_curses.py index 8aa758cc..d3bded9e 100644 --- a/glances/outputs/glances_curses.py +++ b/glances/outputs/glances_curses.py @@ -60,7 +60,6 @@ class _GlancesCurses(object): 'b': {'switch': 'byte'}, 'B': {'switch': 'diskio_iops'}, 'D': {'switch': 'disable_docker'}, - 'e': {'switch': 'enable_process_extended'}, 'F': {'switch': 'fs_free_space'}, 'G': {'switch': 'disable_gpu'}, 'h': {'switch': 'help_tag'}, @@ -361,6 +360,13 @@ class _GlancesCurses(object): self.disable_top() else: self.enable_top() + elif self.pressedkey == ord('e'): + # 'e' > Enable/Disable process extended + self.args.enable_process_extended = not self.args.enable_process_extended + if not self.args.enable_process_extended: + glances_processes.disable_extended() + else: + glances_processes.enable_extended() elif self.pressedkey == ord('E'): # 'E' > Erase the process filter glances_processes.process_filter = None @@ -385,12 +391,6 @@ class _GlancesCurses(object): else: glances_processes.enable() - # Change the curse interface according to the current configuration - if not self.args.enable_process_extended: - glances_processes.disable_extended() - else: - glances_processes.enable_extended() - # Return the key code return self.pressedkey diff --git a/glances/processes.py b/glances/processes.py index 3d91a01d..7a8d488b 100644 --- a/glances/processes.py +++ b/glances/processes.py @@ -335,46 +335,18 @@ class GlancesProcesses(object): procstat['extended_stats'] = True # CPU affinity (Windows and Linux only) - try: - procstat.update(proc.as_dict(attrs=['cpu_affinity'])) - except psutil.NoSuchProcess: - pass - except AttributeError: - procstat['cpu_affinity'] = None + # Number of context switch + # Number of file descriptors (Unix only) + # Threads number # Memory extended - try: - procstat.update(proc.as_dict(attrs=['memory_full_info'])) - except psutil.NoSuchProcess: - pass - except AttributeError: - # Fallback to standard memory_info stats + for s in ['cpu_affinity', 'num_ctx_switches', 'num_fds', + 'num_threads', 'memory_full_info']: try: - procstat.update(proc.as_dict(attrs=['memory_info'])) + procstat.update(proc.as_dict(attrs=[s])) except psutil.NoSuchProcess: pass except AttributeError: - procstat['memory_info'] = None - # Number of context switch - try: - procstat.update(proc.as_dict(attrs=['num_ctx_switches'])) - except psutil.NoSuchProcess: - pass - except AttributeError: - procstat['num_ctx_switches'] = None - # Number of file descriptors (Unix only) - try: - procstat.update(proc.as_dict(attrs=['num_fds'])) - except psutil.NoSuchProcess: - pass - except AttributeError: - procstat['num_fds'] = None - # Threads number - try: - procstat.update(proc.as_dict(attrs=['num_threads'])) - except psutil.NoSuchProcess: - pass - except AttributeError: - procstat['num_threads'] = None + procstat[s] = None # Number of handles (Windows only) if WINDOWS: |