Skip to content
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

Tile Speed Reporter #34

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft

Conversation

ndellicarpini
Copy link
Collaborator

This PR is mostly just for testing, as it adds a pretty ugly button labelled "Report" to the top of the datasets drawer. This button will export the response time for each tile requested by the user during their session in the xreds viewer. It only resets on reloading the page.

Using this feature, I was able to determine what I believe to be the biggest benefit of the redis cache - the way tiles interact with GetMinMax. As GetMinMax is called after the layer is first enabled / when the time/elevation is changed, the tile requests after those actions are the most improved by far. This could be huge to improve performance when proxied behind PyXMS, as PyXMS calls GetMinMax before every tile request.

However, this is not a very scientific way to test the speed of the tiles, as there are a lot of variables not accounted for by the report. Differences in user behavior and differences in network conditions can have a huge impact on the results, so I don't know if this tool is useful enough to be considered for merging into main.

Here are some of the results output by the tool, note the incredible difference in timing on the very first tiles after the timestep is changed.
ngofs2 redis.csv
ngofs2 no redis.csv
ciofs redis.csv
ciofs no redis.csv

@ndellicarpini ndellicarpini changed the base branch from main to redis-cache May 23, 2024 20:47
Base automatically changed from redis-cache to main May 27, 2024 14:33
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