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

Side by Side Diff: tools/binary_size/libsupersize/describe.py

Issue 2885073002: supersize: Move [clone] from name -> flags & rewrite Cluster() (Closed)
Patch Set: review comment 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 unified diff | Download patch
« no previous file with comments | « tools/binary_size/libsupersize/console.py ('k') | tools/binary_size/libsupersize/diff.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2017 The Chromium Authors. All rights reserved. 1 # Copyright 2017 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 """Methods for converting model objects to human-readable formats.""" 4 """Methods for converting model objects to human-readable formats."""
5 5
6 import datetime 6 import datetime
7 import itertools 7 import itertools
8 import time 8 import time
9 9
10 import models 10 import models
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
269 def DescribeSizeInfoCoverage(size_info): 269 def DescribeSizeInfoCoverage(size_info):
270 """Yields lines describing how accurate |size_info| is.""" 270 """Yields lines describing how accurate |size_info| is."""
271 for section in models.SECTION_TO_SECTION_NAME: 271 for section in models.SECTION_TO_SECTION_NAME:
272 if section == 'd': 272 if section == 'd':
273 expected_size = sum(v for k, v in size_info.section_sizes.iteritems() 273 expected_size = sum(v for k, v in size_info.section_sizes.iteritems()
274 if k.startswith('.data')) 274 if k.startswith('.data'))
275 else: 275 else:
276 expected_size = size_info.section_sizes[ 276 expected_size = size_info.section_sizes[
277 models.SECTION_TO_SECTION_NAME[section]] 277 models.SECTION_TO_SECTION_NAME[section]]
278 278
279 # Use raw_symbols in case symbols contains groups. 279 in_section = size_info.raw_symbols.WhereInSection(section)
280 in_section = models.SymbolGroup(size_info.raw_symbols).WhereInSection(
281 section)
282 actual_size = in_section.size 280 actual_size = in_section.size
283 size_percent = _Divide(actual_size, expected_size) 281 size_percent = _Divide(actual_size, expected_size)
284 yield ('Section {}: has {:.1%} of {} bytes accounted for from ' 282 yield ('Section {}: has {:.1%} of {} bytes accounted for from '
285 '{} symbols. {} bytes are unaccounted for.').format( 283 '{} symbols. {} bytes are unaccounted for.').format(
286 section, size_percent, actual_size, len(in_section), 284 section, size_percent, actual_size, len(in_section),
287 expected_size - actual_size) 285 expected_size - actual_size)
288 star_syms = in_section.WhereNameMatches(r'^\*') 286 star_syms = in_section.WhereNameMatches(r'^\*')
289 padding = in_section.padding - star_syms.padding 287 padding = in_section.padding - star_syms.padding
290 anonymous_syms = star_syms.Inverted().WhereHasAnyAttribution().Inverted() 288 anonymous_syms = star_syms.Inverted().WhereHasAnyAttribution().Inverted()
291 yield '* Padding accounts for {} bytes ({:.1%})'.format( 289 yield '* Padding accounts for {} bytes ({:.1%})'.format(
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 339
342 def GenerateLines(obj, verbose=False, recursive=False): 340 def GenerateLines(obj, verbose=False, recursive=False):
343 """Returns an iterable of lines (without \n) that describes |obj|.""" 341 """Returns an iterable of lines (without \n) that describes |obj|."""
344 return Describer(verbose=verbose, recursive=recursive).GenerateLines(obj) 342 return Describer(verbose=verbose, recursive=recursive).GenerateLines(obj)
345 343
346 344
347 def WriteLines(lines, func): 345 def WriteLines(lines, func):
348 for l in lines: 346 for l in lines:
349 func(l) 347 func(l)
350 func('\n') 348 func('\n')
OLDNEW
« no previous file with comments | « tools/binary_size/libsupersize/console.py ('k') | tools/binary_size/libsupersize/diff.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698