Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Performance testing is something which we haven't really done for any of the targets as of yet. This PR adds in some harness work to allow for doing fairly detailed performance testing, by generating statistics based on:
MillisLoggingCursor
OutputEach form of output produces a different level of information:
MillisLoggingCursor
produces files suffixedremote.csv
and includes detailed statistics showing what queries are taking the longestSinger Timer Metrics
are implemented by the underlyingSQLInterface
class and can offer insights into what sections/actions the code is taking the longest oncProfile
stats are able to show us in greater depth what specific functions/lines are consuming our time and can often lead to little tweaks which result in speed gainsAll of this was used to make up the PRs #12 #13. Both were made apparent by the
remote
queries data (plus some massaging in Sheets).Future Think
Eventually it would be nice to turn this into a more useful
target
agnostic profiler so that we can try out our own targets, but also those of others to better understand hard numbers/tradeoffs/benefits etc.The things standing in our way are:
CatStream
generation to fuel the records to be persisted...ideally we would be able to use atap
/echo
some data into atarget
cProfile
ing would still produce useful outputExample Output
Remote and Code: https://docs.google.com/spreadsheets/d/1jRU5QooSoLuXHefYS22lZuBzByRkezA3tye9ztE8E34/edit?usp=sharing
cProfile
Suggested Musical Pairing
Wind.