tarantool / tarantool/tarantool

Support Gecko Profiler and Chrome Profiler formats in sysprof/memprof

Open
#11,034 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature luajit
Dominant language
Lua
Stars
3.7k
Forks
419
Avg merge
1d 23h
Merged PRs (30d)
88

Description

Tarantool has two built-in profilers: MemProf and SysProf. There is only a single way to analyze reports produced by both profilers - convert raw data to an SVG image with FlameGraph. Flamegraph is a good representation for performance analysis, however it is quite simple, and it would be convenient to have a more feature-rich tool for performance analysis like MemRay for Python ^8. Unortunately, development of the similar tool is out of scope of our tasks and moreover it will have enormous development efforts. Modern browsers (like Chrome and Firefox) have built-in user interface for analysis of profiling data and I propose another solution - reuse the performance analysis tooling built into web browsers by support formats used by these tools. I believe it will make Tarantool profilers more user-friendly and will help Tarantool's users profile their applications.

Firefox

Firefox has Firefox Profile Viewer ^1, it is available via Ctrl + Shift + I → Performance.
Supported formats: Linux perf, Android SimplePerf, Android Studio, or any file using the dhat format or Google’s Trace Event Format. Gecko format is described in ^6.

UI:

Image

Chrome/Chromium

Chrome has a built-in trace viewer, it is available via Ctrl + Shift + I → Performance. See documentation in ^4. Trace viewer is based on Catapult project ^3. Trace event format is described ^7.

UI:

Image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the sysprof and memprof report-generation entry points, then read the linked Gecko Profile and Chrome Trace Event format documentation. Determine how reports can be emitted in both formats and verify that the results load in Firefox Profile Viewer and Chrome's Performance tool.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.