A Python project for generating plots to analyze and visualize results from rsonpath experiments and its lookup-table (LUT) modification.
This repository includes multiple plotting scripts, each producing specialized figures for different aspects of rsonpath performance.
All figures below are automatically generated using real benchmark data.
Bracket Distribution
How many curly and how many squary brackets each json has in relation per json.

plot_query_skip_percentage
Visualizes the percentage of skipped bytes for different queries on a JSON file.
plot_distance_distribution_per_json
Plots the distance distribution of a JSON. Three variants:
plot_distance_distribution_per_query
Plots the distance distribution of all jumps taken during a query on a given JSON.
plot_serde_size_and_build_time
Plots Serde’s build time and heap ratio compared to the input JSON.
plot_empty_list_opt
Compares rq_legacy vs. rq_legacy_empty_list_opt to evaluate the effect of the empty_list_opt feature.
plot_empty_list_opt
Compares rq_legacy vs. rq_lut_no_lut to evaluate the effect of the base code changes on the speed.
plot_lut_construction
Compares different LUT implementations in build-time, query-time, and heap size.
After deciding for a LUT implementation one can now plot the LUT build speed and size for different cutoffs, while also tracking how long the collection step of the brackets takes.
plot_final
Compares, for each query, how fast rq, rq-lut, and serde are.
Includes build times for LUTs and the Serde DOM.
(rq build time = 0, as it is a streaming approach.)
plot_optimal
Compares query speed of rq-legacy vs. the theoretical optimal vs. rq-lut with varying cutoffs for the COUNT queries.
A table to find the best cutoff based on that data.
Like plot optimal but this time we queried for the complete results (NODE and not COUNT) which means we can also compare it with serde.
















