tarantool / tarantool/tarantool
Support Gecko Profiler and Chrome Profiler formats in sysprof/memprof
Nobody has claimed this yet.
- 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:
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:
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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