commit: 7b47c30537c58c6c9a25b18959c58de85067634d Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Thu Jan 5 15:26:41 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Jan 10 03:28:46 2023 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=7b47c305
depgraph: Print dependency resolution time Print the wall clock time it took emerge to calculate the dependency graph if spinner is used (i.e. we're in verbose mode). Requested-by: Maciej Barć <xgqt <AT> gentoo.org> Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> Closes: https://github.com/gentoo/portage/pull/972 Signed-off-by: Sam James <sam <AT> gentoo.org> NEWS | 4 ++++ lib/_emerge/depgraph.py | 6 ++++++ lib/_emerge/stdout_spinner.py | 1 + 3 files changed, 11 insertions(+) diff --git a/NEWS b/NEWS index d143765b1..23a652278 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,10 @@ portage-3.0.44 (UNRELEASED) -------------- +Features: +* emerge: Show time taken to calculate dependency resolution with + emerge --verbose. + Bug fixes: * ebuild: the PATH variable exported to ebuilds has been changed: The PATH setting from /etc/profile.env is appended to portage-internal diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py index 4d7a96a2d..15dcfbc84 100644 --- a/lib/_emerge/depgraph.py +++ b/lib/_emerge/depgraph.py @@ -6,6 +6,7 @@ import functools import logging import stat import textwrap +import time import warnings import collections from collections import deque, OrderedDict @@ -11522,6 +11523,7 @@ def _spinner_start(spinner, myopts): if show_spinner: portage.writemsg_stdout("Calculating dependencies ") + spinner.start_time = time.time() def _spinner_stop(spinner): @@ -11535,6 +11537,10 @@ def _spinner_stop(spinner): portage.writemsg_stdout("... done!\n") + stop_time = time.time() + time_fmt = f"{stop_time - spinner.start_time:.2f}" + portage.writemsg_stdout(f"Dependency resolution took {darkgreen(time_fmt)} s.\n\n") + def backtrack_depgraph(settings, trees, myopts, myparams, myaction, myfiles, spinner): """ diff --git a/lib/_emerge/stdout_spinner.py b/lib/_emerge/stdout_spinner.py index b28977e66..d4c1db59b 100644 --- a/lib/_emerge/stdout_spinner.py +++ b/lib/_emerge/stdout_spinner.py @@ -39,6 +39,7 @@ class stdout_spinner: ] self.last_update = 0 self.min_display_latency = 0.05 + self.start_time = None def _return_early(self): """