-
Notifications
You must be signed in to change notification settings - Fork 1
Refactor coding of benchmark params to stop skipping, lower complexity #150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@CodyCBakerPhD I don't think the database or flask app need to change because the parameter case is still a string, but since the benchmark results/parameters are in a new format, does the database version need to be bumped? |
Definetely |
|
@rly Testing it out now (literally on my own device and mechanistically by adding actual tests to the CI lol) |
|
@rly Ran as expected but the results file does not get handled |
Removed unnecessary git fetch command from workflow.
|
Huh. I thought I tested |
|
FYI I ran |
Add environment variable TSHARK_PATH to testing workflow
|
@rly CI is up and running, and reproduces the issue I see (even in the file_reading benchmark) |
|
Tests pass. This all looks good to me. I have not run a full run through the benchmarks on this branch but will do so after merging |
|
Works for me! |
Fix #149, fix #148.
Params are now just a tuple of dictionaries. Each benchmark takes one parameter dictionary. File read benchmarks have keys "name", "https_url". Data slicing benchmarks have keys "name", "https_url", "object_name", and "slice_range". I could create dataclasses instead of using dicts, but this keeps things pretty flexible while we iterate. Let me know if you think that would be worth changing. This change adds a couple more boilerplate lines in each benchmark function to unpack the dictionary, but I think that is OK.
I added a "name" key because it helps with display and logging. It's not used anywhere.
BaseBenchmarknow just holds common settings for benchmarks, setting:I updated the docs accordingly.
Note: The "results" key in the intermediate results json file from asv now looks like this:
I adjusted
_reduce_results.pyto account for that --results[1]is already a serialization of the single parameter dict. No flattening is required.