commit e82ed8c543d732e7b56d6db4852753755ddae9b8 Author: Damian Johnson atagar@torproject.org Date: Thu Sep 28 17:38:41 2017 -0700
Lessen overhead of idle daemon panels
Turns out having a daemon panel reacquire a lock every 0.2 seconds is fairly taxing, even if the panel isn't doing anything. That, and having the log panel every 0.3 seconds is kinda silly. This drops the log panel usage when idle by 80% (0.5% to 0.1% on my system). --- nyx/panel/__init__.py | 2 +- nyx/panel/log.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/nyx/panel/__init__.py b/nyx/panel/__init__.py index d575e42..2139634 100644 --- a/nyx/panel/__init__.py +++ b/nyx/panel/__init__.py @@ -207,7 +207,7 @@ class DaemonPanel(Panel, threading.Thread): if nyx_interface().is_paused() or (time.time() - last_ran) < self._update_rate: with self._pause_condition: if not self._halt: - self._pause_condition.wait(0.2) + self._pause_condition.wait(max(0.2, self._update_rate - 0.01))
continue # done waiting, try again
diff --git a/nyx/panel/log.py b/nyx/panel/log.py index 4a6afe3..32cbfef 100644 --- a/nyx/panel/log.py +++ b/nyx/panel/log.py @@ -43,7 +43,7 @@ CONFIG = conf.config_dict('nyx', { 'write_logs_to': '', }, conf_handler)
-UPDATE_RATE = 0.3 +UPDATE_RATE = 0.7
# The height of the drawn content is estimated based on the last time we redrew # the panel. It's chiefly used for scrolling and the bar indicating its