Skip to content

Allow benchmarking with warm parser caches#229

Merged
jtec merged 7 commits into
mainfrom
benchmark_with_parser_caching
May 28, 2026
Merged

Allow benchmarking with warm parser caches#229
jtec merged 7 commits into
mainfrom
benchmark_with_parser_caching

Conversation

@jtec
Copy link
Copy Markdown
Owner

@jtec jtec commented May 27, 2026

Adds an argument to the prx top-level benchmark that makes the benchmark warm up parser caches before profiling run time and memory. Makes the benchmark itself much faster and just as informative, given that the nav and obs file parsers have their own benchmarks we can look at to see how they scale.

Also brings back in-RAM caching for parser caches.

Also removes passing nav file to the benchmark, it will be fetched from IGS anyways if the file name does not follow RINEX 3 conventions.

Example result:

Screenshot 2026-05-27 at 17 08 44

@jtec jtec requested a review from plutonheaven May 27, 2026 14:09
@jtec jtec marked this pull request as ready for review May 27, 2026 14:10
@jtec jtec changed the title Allow benchmarking with warm parser cached Allow benchmarking with warm parser caches May 27, 2026
Comment thread src/prx/test/benchmark.py
df["function"] = df["func"].apply(lambda x: getattr(x, "co_name", None))
df["file"] = df["func"].apply(lambda x: getattr(x, "co_filename", None))
df = df[df["function"].notnull() & df["file"].str.contains(r"prx[\\/]src[\\/]prx")]
df = df[df["function"].notnull() & df["file"].str.contains(r"prx/src/prx")]
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't know where this came from ;)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was linked to a path separator issue on Windows vs Linux. It allows the path to contain either '/' or ''. I think we should keep it!

@jtec jtec merged commit f93dde7 into main May 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants