Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: tools/binary_size/libsupersize/console.py

Issue 2889603002: supersize: Add "printed" to console, Show ~0 for PSS >0 <.1 (Closed)
Patch Set: add in Symbol Group counter reset Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/binary_size/libsupersize/console.py
diff --git a/tools/binary_size/libsupersize/console.py b/tools/binary_size/libsupersize/console.py
index 1e87f44416577c38177b03c8bea61c15832b71c8..0f48891fe2407ce8c69d9d7acd71f5cc12c00b6a 100644
--- a/tools/binary_size/libsupersize/console.py
+++ b/tools/binary_size/libsupersize/console.py
@@ -67,6 +67,7 @@ class _Session(object):
_readline_initialized = False
def __init__(self, size_infos, size_paths, lazy_paths):
+ self._printed_variables = []
self._variables = {
'Print': self._PrintFunc,
'Diff': self._DiffFunc,
@@ -74,6 +75,7 @@ class _Session(object):
'ExpandRegex': match_util.ExpandRegexIdentifierPlaceholder,
'ShowExamples': self._ShowExamplesFunc,
'canned_queries': canned_queries.CannedQueries(size_infos),
+ 'printed': self._printed_variables,
}
self._lazy_paths = lazy_paths
self._size_infos = size_infos
@@ -109,6 +111,8 @@ class _Session(object):
to_file=None):
"""Prints out the given Symbol / SymbolGroup / SymbolDiff / SizeInfo.
+ For convenience, |obj| will be appended to the global "printed" list.
+
Args:
obj: The object to be printed. Defaults to size_infos[-1].
verbose: Show more detailed output.
@@ -117,6 +121,8 @@ class _Session(object):
default is to automatically pipe when output is long.
to_file: Rather than print to stdio, write to the given file.
"""
+ if not self._printed_variables or self._printed_variables[-1] != obj:
+ self._printed_variables.append(obj)
obj = obj if obj is not None else self._size_infos[-1]
lines = describe.GenerateLines(obj, verbose=verbose, recursive=recursive)
_WriteToStream(lines, use_pager=use_pager, to_file=to_file)
@@ -196,6 +202,7 @@ class _Session(object):
elf_path: Path to the executable containing the symbol. Required only
when auto-detection fails.
"""
+ assert not symbol.IsGroup()
assert symbol.address and symbol.section_name == '.text'
tool_prefix = self._lazy_paths.tool_prefix
@@ -247,9 +254,9 @@ class _Session(object):
'by_path = text_syms.GroupedByPath(depth=2)',
'Print(by_path.WherePssBiggerThan(1024))',
'',
- '# Show all non-vtable generated symbols',
- 'generated_syms = size_info.symbols.WhereGeneratedByToolchain()',
- 'Print(generated_syms.WhereNameMatches(r"vtable").Inverted().Sorted())',
+ '# Show all generated symbols, then show only non-vtable ones',
+ 'Print(size_info.symbols.WhereGeneratedByToolchain())',
+ 'Print(printed[-1].WhereNameMatches(r"vtable").Inverted().Sorted())',
'',
'# Show all symbols that have "print" in their name or path, except',
'# those within components/.',
« no previous file with comments | « no previous file | tools/binary_size/libsupersize/describe.py » ('j') | tools/binary_size/libsupersize/describe.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698