Ilya Yatsishin ba66925d4e Add parser memory profiler utility
Add a set of scripts for profiling memory allocations in the ClickHouse SQL parser
using jemalloc's heap profiling capabilities.

The C++ profiler binary source is at src/Parsers/examples/parser_memory_profiler.cpp

Scripts:
- run_profiler.sh: Batch processing script for multiple queries
- generate_report.py: Generate interactive HTML report for single result set
- generate_comparison_report.py: Compare two result sets (before/after optimization)
- rebuild_reports.py: Regenerate reports from existing heap profile files
- test_queries.txt: Sample set of 100 diverse SQL queries for testing

Features:
- Detailed memory allocation analysis using jeprof
- Interactive flame graphs for visualization
- Call graph SVG generation
- Side-by-side comparison of optimization results
- Self-contained HTML reports

Prerequisites:
- jemalloc with profiling support
- jeprof (from jemalloc)
- FlameGraph (for flame graphs)
- graphviz (for call graph SVGs)

Usage:
  ./run_profiler.sh -b ../../build
  python3 generate_report.py -i profiler_output/results.json -o report.html
2026-01-13 16:49:42 +01:00
…
…
2026-01-13 16:49:42 +01:00
…
…
…
…
…
…

Website Apache 2.0 License

The ClickHouse company logo.

ClickHouse® is an open-source column-oriented database management system that allows generating analytical data reports in real-time.

How To Install (Linux, macOS, FreeBSD)

curl https://clickhouse.com/ | sh
  • Official website has a quick high-level overview of ClickHouse on the main page.
  • ClickHouse Cloud ClickHouse as a service, built by the creators and maintainers.
  • Tutorial shows how to set up and query a small ClickHouse cluster.
  • Documentation provides more in-depth information.
  • YouTube channel has a lot of content about ClickHouse in video format.
  • ClickHouse Theater contains presentations and videos about ClickHouse.
  • Slack and Telegram allow chatting with ClickHouse users in real-time.
  • Blog contains various ClickHouse-related articles, as well as announcements and reports about events.
  • Bluesky and X for short news.
  • Code Browser (github.dev) with syntax highlighting, powered by github.dev.
  • Contacts can help to get your questions answered if there are any.

Monthly Release & Community Call

ClickHouse release 25.12, 2025-12-18. Presentation, Video

Watch all release presentations and videos at ClickHouse Theater and YouTube Playlist.

Upcoming Events

Keep an eye out for upcoming meetups and events around the world. Somewhere else you want us to be? Please feel free to reach out to tyler <at> clickhouse <dot> com. You can also peruse ClickHouse Events for a list of all upcoming trainings, meetups, speaking engagements, etc.

Upcoming meetups

Recent meetups

Recent Recordings

  • Recent Meetup Videos: Meetup Playlist Whenever possible recordings of the ClickHouse Community Meetups are edited and presented as individual talks.

Interested in joining ClickHouse and making it your full-time job?

ClickHouse is a nice DBMS, and it's a good place to work.

Check out our current openings here: https://clickhouse.com/company/careers

Email: [email protected]!

S
Description
No description provided
Readme Apache-2.0 Cite this repository
8.3 GiB
Languages
C++ 70.9%
Python 12.2%
Shell 5.5%
Assembly 4.2%
C 1.8%
Other 5.2%