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

Client-side speed up techniques #57

Open
1 of 4 tasks
pietercolpaert opened this issue Dec 27, 2018 · 0 comments
Open
1 of 4 tasks

Client-side speed up techniques #57

pietercolpaert opened this issue Dec 27, 2018 · 0 comments
Labels
enhancement New feature or request

Comments

@pietercolpaert
Copy link
Member

pietercolpaert commented Dec 27, 2018

This is a brainstorm issue about how we could speed up client-side query execution of Planner.js:

  • Prefetching
  • Web Workers
  • Adapt server interface
  • Skip RDF deserialization (?)

Prefetch data on page load and store in memory

When the page loads, immediately start downloading the data for the now time frame.

When the data is downloaded, store the connections in a data structure that allows the CSA algorithm to be performed without having to set up an HTTP request.

Cache invalidation then works by refreshing the page.

Web Workers

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers

Web Workers allow to do tasks in parallel and use the multiple cores. E.g., downloading the data per transport mode and executing the algorithm itself could be done in different threads.

Other?

  • There are other ideas to speed up the client-side querying by adapting the server-interface. This is out of scope of this issue, but of course, the less data one needs to download, the more efficient the querying goes. Therefore we will look at Contraction Hierarchies techniques for PT networks as well.

  • Another server-side idea would be to switch to another serialization as JSON-LD parsing is a bottle neck. For now this is out of scope of the project: we want the project to be as flexible first. Being able to support any RDF serialization makes sure we can answer any question.

@SimonVanneste SimonVanneste added the enhancement New feature or request label Feb 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants