summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicolargo <nicolas@nicolargo.com>2016-12-29 14:06:40 +0100
committernicolargo <nicolas@nicolargo.com>2016-12-29 14:06:40 +0100
commitfee3f5d7f8c5268df2ea1189cfdf01ba789a94d8 (patch)
tree08f425ac61214b1c2a06c5b3cdbc0002ec58731b
parent1b41b676470ee2c48cc7a15ee1bb5f2a6a810d91 (diff)
Correct hight CPU consumption with extended processes stats enable
-rw-r--r--glances/outputs/glances_curses.py14
-rw-r--r--glances/processes.py42
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: