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

Side by Side Diff: tools/ll_prof.py

Issue 1728593002: [Interpreter] Add support for cpu profiler logging. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rebase Created 4 years, 9 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 | « test/cctest/test-profile-generator.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2012 the V8 project authors. All rights reserved. 3 # Copyright 2012 the V8 project authors. All rights reserved.
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 _ARCH_TO_POINTER_TYPE_MAP = { 358 _ARCH_TO_POINTER_TYPE_MAP = {
359 "ia32": ctypes.c_uint32, 359 "ia32": ctypes.c_uint32,
360 "arm": ctypes.c_uint32, 360 "arm": ctypes.c_uint32,
361 "mips": ctypes.c_uint32, 361 "mips": ctypes.c_uint32,
362 "x64": ctypes.c_uint64, 362 "x64": ctypes.c_uint64,
363 "arm64": ctypes.c_uint64 363 "arm64": ctypes.c_uint64
364 } 364 }
365 365
366 _CODE_CREATE_TAG = "C" 366 _CODE_CREATE_TAG = "C"
367 _CODE_MOVE_TAG = "M" 367 _CODE_MOVE_TAG = "M"
368 _CODE_DELETE_TAG = "D"
369 _SNAPSHOT_POSITION_TAG = "P" 368 _SNAPSHOT_POSITION_TAG = "P"
370 _CODE_MOVING_GC_TAG = "G" 369 _CODE_MOVING_GC_TAG = "G"
371 370
372 def __init__(self, log_name, code_map, snapshot_pos_to_name): 371 def __init__(self, log_name, code_map, snapshot_pos_to_name):
373 self.log_file = open(log_name, "r") 372 self.log_file = open(log_name, "r")
374 self.log = mmap.mmap(self.log_file.fileno(), 0, mmap.MAP_PRIVATE) 373 self.log = mmap.mmap(self.log_file.fileno(), 0, mmap.MAP_PRIVATE)
375 self.log_pos = 0 374 self.log_pos = 0
376 self.code_map = code_map 375 self.code_map = code_map
377 self.snapshot_pos_to_name = snapshot_pos_to_name 376 self.snapshot_pos_to_name = snapshot_pos_to_name
378 self.address_to_snapshot_name = {} 377 self.address_to_snapshot_name = {}
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 continue 451 continue
453 assert code.start_address == old_start_address, \ 452 assert code.start_address == old_start_address, \
454 "Inexact move address %x for %s" % (old_start_address, code) 453 "Inexact move address %x for %s" % (old_start_address, code)
455 self.code_map.Remove(code) 454 self.code_map.Remove(code)
456 size = code.end_address - code.start_address 455 size = code.end_address - code.start_address
457 code.start_address = new_start_address 456 code.start_address = new_start_address
458 code.end_address = new_start_address + size 457 code.end_address = new_start_address + size
459 self.code_map.Add(code) 458 self.code_map.Add(code)
460 continue 459 continue
461 460
462 if tag == LogReader._CODE_DELETE_TAG:
463 event = self.code_delete_struct.from_buffer(self.log, self.log_pos)
464 self.log_pos += ctypes.sizeof(event)
465 old_start_address = event.address
466 code = self.code_map.Find(old_start_address)
467 if not code:
468 print >>sys.stderr, "Warning: Not found %x" % old_start_address
469 continue
470 assert code.start_address == old_start_address, \
471 "Inexact delete address %x for %s" % (old_start_address, code)
472 self.code_map.Remove(code)
473 continue
474
475 if tag == LogReader._SNAPSHOT_POSITION_TAG: 461 if tag == LogReader._SNAPSHOT_POSITION_TAG:
476 event = self.snapshot_position_struct.from_buffer(self.log, 462 event = self.snapshot_position_struct.from_buffer(self.log,
477 self.log_pos) 463 self.log_pos)
478 self.log_pos += ctypes.sizeof(event) 464 self.log_pos += ctypes.sizeof(event)
479 start_address = event.address 465 start_address = event.address
480 snapshot_pos = event.position 466 snapshot_pos = event.position
481 if snapshot_pos in self.snapshot_pos_to_name: 467 if snapshot_pos in self.snapshot_pos_to_name:
482 self.address_to_snapshot_name[start_address] = \ 468 self.address_to_snapshot_name[start_address] = \
483 self.snapshot_pos_to_name[snapshot_pos] 469 self.snapshot_pos_to_name[snapshot_pos]
484 continue 470 continue
(...skipping 575 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 PrintTicks(optimized_ticks, ticks, "ticks in optimized code") 1046 PrintTicks(optimized_ticks, ticks, "ticks in optimized code")
1061 PrintTicks(generated_ticks, ticks, "ticks in other lazily compiled code") 1047 PrintTicks(generated_ticks, ticks, "ticks in other lazily compiled code")
1062 PrintTicks(v8_internal_ticks, ticks, "ticks in v8::internal::*") 1048 PrintTicks(v8_internal_ticks, ticks, "ticks in v8::internal::*")
1063 print "%10d total symbols" % len([c for c in code_map.AllCode()]) 1049 print "%10d total symbols" % len([c for c in code_map.AllCode()])
1064 print "%10d used symbols" % len([c for c in code_map.UsedCode()]) 1050 print "%10d used symbols" % len([c for c in code_map.UsedCode()])
1065 print "%9.2fs library processing time" % mmap_time 1051 print "%9.2fs library processing time" % mmap_time
1066 print "%9.2fs tick processing time" % sample_time 1052 print "%9.2fs tick processing time" % sample_time
1067 1053
1068 log_reader.Dispose() 1054 log_reader.Dispose()
1069 trace_reader.Dispose() 1055 trace_reader.Dispose()
OLDNEW
« no previous file with comments | « test/cctest/test-profile-generator.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698