1. 26 Apr, 2022 1 commit
    • Camillo Bruni's avatar
      [tools][system-analyzer] Add profiler-panel · 7a90c320
      Camillo Bruni authored
      Add basic profiler support
      - Moved profiling-related helpers to profiling.mjs
      - Added bottom-up profiler table
      - Added mini-timeline overview wit opt/deopt events and usage graph
      - Added flame-graph, pivoted on the currently selected function
      
      Drive-by-fixes:
      - Added/updated jsdoc type information
      - Fixed static symbols (builtins, bytecodehandlers) that were both
        added by the CppEntriesProvider and from code-events in the v8.log
      - Support platform-specific (linux/macos) dynamic symbol loader by
        adding a query path ('/v8/info/platform') to lws-middleware.js
      - added css var --selection-color
      
      Bug: v8:10644
      Change-Id: I6412bec63eac13140d6d425e7d9cc33316824c73
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585453Reviewed-by: 's avatarPatrick Thier <pthier@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80192}
      7a90c320
  2. 08 Apr, 2022 1 commit
    • Camillo Bruni's avatar
      [tools][system-analyzer] Various improvements · 6078cb52
      Camillo Bruni authored
      - Parse the condensed source position info support for jitted code
      - Add progress bar/circle to loader
      - Use temporary Array instead of concatenated strings in escapeField to
        reduce gc pressure
      - Use bound functions as event handlers in more places
      - Various timeline legend fixes:
        - Fix columns alignment when duration is present
        - Use fixed width to avoid breaking the UI
        - Correctly show total/percents for 'All' and 'Selection' entries
        - Improve usability of filtering buttons: added tooltips and fixed
          redrawing on filtering
      
      Bug: v8:10644
      Change-Id: I1275b31b7b13a05d9d6283d3067c1032d2d4819c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3574544Reviewed-by: 's avatarPatrick Thier <pthier@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79897}
      6078cb52
  3. 02 Mar, 2022 1 commit
    • Camillo Bruni's avatar
      [tools] Improve system analyzer · 65667531
      Camillo Bruni authored
      Profiler:
        - Track profiler tick durations
        - Various speedups due to low-level hacking
      Improve code-panel:
        - Better register highlighting
        - Added address navigation and highlighting
        - Removed obsolete inline source-view
      Improve script-panel:
        - Keep current source position focused when showing related entries
        - Better tool-tip with buttons to focus on grouped entries per
          source postion
        - Focus by default on other views when showing related entries
      Improve timeline-panel:
        - Initialise event handlers late to avoid errors
        - Lazy initialise chunks to avoid errors when zooming-in and trying to
          create tooltips at the same time
      
      
      Change-Id: I3f3c0fd51985aaa490d62f786ab52a4be1eed292
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3492521Reviewed-by: 's avatarPatrick Thier <pthier@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79329}
      65667531
  4. 20 Jan, 2022 1 commit
  5. 30 Nov, 2021 1 commit
  6. 08 Sep, 2021 1 commit
  7. 29 Jun, 2021 1 commit
  8. 22 Jun, 2021 1 commit
    • Leszek Swirski's avatar
      [system-analyzer] Add source map support · 18bcc9a6
      Leszek Swirski authored
        - Asynchronously load source map from sourceMappingURL
        - Once loaded, annotate source positions with their original position
        - Update script panel tooltip to include link to original source
           - For the above, make DOM.element a slightly more flexible API,
             allowing defining attributes and children
           - Also fix ToolTipEvent handling to support nodes.
        - Shuffle around some code to make createScriptNode async, in case
          we want to load the source map when building the script node itself.
        - Drive-by: make source markers a simple backgroundColor when there is
          only one group.
      
      Change-Id: I0926807761cbfe8b6dd8ff5154815a7e5ccb39bf
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972827
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75302}
      18bcc9a6
  9. 16 Jun, 2021 1 commit
    • Camillo Bruni's avatar
      [tools][system-analyzer] Various improvements · 91ddeb06
      Camillo Bruni authored
      - Show related code object for Maps
      - Fix opening transition trees
      - Rename *LogEntry.prototype.codeLogEntry to .code
      - Show Arrays as dropdowns in tooltips
      - Avoid hiding the tooltip when clicking on the tooltip itself
      - Show links to code variants (bytecode/baseline/optimized)
      - Fix chunk offset calculation
      - Fix code for browsers that don't support
        navigator.scheduling.isInputPending
      
      Bug: v8:10644
      Change-Id: I858dc410657d26d076214368814a52177b124f4c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2964592
      Auto-Submit: Camillo Bruni <cbruni@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75169}
      91ddeb06
  10. 15 Jun, 2021 1 commit
  11. 14 Jun, 2021 1 commit
  12. 07 Jun, 2021 2 commits
  13. 31 May, 2021 1 commit
  14. 25 May, 2021 1 commit
  15. 21 Apr, 2021 1 commit
  16. 15 Apr, 2021 1 commit
  17. 12 Feb, 2021 2 commits
  18. 12 Jan, 2021 1 commit
  19. 09 Dec, 2020 1 commit
  20. 08 Dec, 2020 1 commit
  21. 07 Dec, 2020 1 commit
  22. 05 Dec, 2020 1 commit
  23. 02 Dec, 2020 1 commit
  24. 01 Dec, 2020 1 commit
  25. 30 Nov, 2020 2 commits
  26. 26 Nov, 2020 1 commit
  27. 10 Nov, 2020 1 commit
  28. 04 Nov, 2020 1 commit
  29. 19 Oct, 2020 1 commit
  30. 28 Sep, 2020 1 commit
  31. 23 Sep, 2020 1 commit
  32. 28 Aug, 2020 1 commit
    • Zeynep Cankara's avatar
      [tools][system-analyzer] Add Source Code Panel · 0f6afbe1
      Zeynep Cankara authored
      This CL adds a source code panel to display source code positions of
      Map/IC log events.
      
      * Clicking file positions on the Ic Panel emits FocusEvent with
      SourcePositionLogEvent as entry to highlight code related with the
      selected icLogEvent.
      
      * Clicking map details on the Map Panel emits FocusEvent with
      SourcePositionLogEvent as entry to highlight code related with the
      selected mapLogEvent.
      
      Bug: v8:10644
      Change-Id: Icaf3e9e3f7fae485c50ad685f9ec5dc8ac28b3dc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2358734
      Commit-Queue: Zeynep Cankara <zcankara@google.com>
      Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69610}
      0f6afbe1
  33. 25 Aug, 2020 1 commit
  34. 06 Feb, 2020 1 commit
    • Tobias Tebbi's avatar
      [profiler] fix 4 bugs in --prof/linux-tick-processor · 58b45cca
      Tobias Tebbi authored
      - In log.cc, we used InstructionStart() for code create events, but
        the Code object address for code move events. Change to use
        InstructionStart() for both.
      - The symbol table contains some kind of virtual address, not file
        offsets. They happened to be identical in the past but are no longer,
        probably due to toolchain changes. Now we use objdump to figure out
        the difference between virtual addresses and file offsets.
      - When a new code object happened to be created at the same address as
        a previous one, we wouldn't update it.
        This is indeed wrong, as predicted in a TODO by Jaro.
      - For 64bit addresses, using >>> is wrong, now replaced with division.
      
      
      Change-Id: Ib23114ed736f98bfc33c65004a039a3fd04d3c49
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2016586Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66145}
      58b45cca
  35. 27 Sep, 2018 1 commit
  36. 31 Aug, 2018 1 commit
    • Bret Sepulveda's avatar
      profview: View source code of functions with samples inline. · b9cb78a7
      Bret Sepulveda authored
      If profiling is done with --log-source-code profview will now display
      a "View source" link for each function in the tree view. Clicking this
      will show a new source viewer, with sampled lines highlighted. See the
      associated bug for screenshots.
      
      This patch also fixes a bug in the profiler where the source info of
      only the first code object for each function would be logged, and
      includes some refactoring.
      
      Bug: v8:6240
      Change-Id: Ib96a9cfc54543d0dc9bef4657cdeb96ce28b223c
      Reviewed-on: https://chromium-review.googlesource.com/1194231
      Commit-Queue: Bret Sepulveda <bsep@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55542}
      b9cb78a7
  37. 24 Aug, 2018 1 commit