• ssanfilippo's avatar
    [Interpreter] Add Ignition profile visualization tool. · 8b5d4c74
    ssanfilippo authored
    A new script is introduced, linux_perf_report.py, which reads Linux perf
    data collected when running with FLAG_perf_basic_prof enabled and
    produces an input file for flamegraph.pl, or a report of the hottest
    bytecode handlers.
    
    The bottom blocks of the produced flamegraph are bytecode handlers.
    Special bottom blocks exist as well for compile routines, time spent
    outside the interpreter and interpreter entry trampolines.
    
    Because various Stubs and other pieces of JITted code do not maintain the
    frame pointer, some sampled callchains might be incomplete even if V8 is
    compiled with no_omit_framepointer=on. The script is able to detect the
    most common anomaly where an entry trampoline appears in a chain, but not
    on top, meaning that the frame of another bytecode handler is hidden. In
    this case, the sample will be moved to a [misattributed] group to avoid
    skewing the profile of unrelated handlers.
    
    Misattributed samples and compilation routines are hidden by default.
    
    BUG=v8:4899
    LOG=N
    
    Review URL: https://codereview.chromium.org/1783503002
    
    Cr-Commit-Position: refs/heads/master@{#35574}
    8b5d4c74
linux_perf_report_test.py 4.53 KB