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

Why does v5.27.1 Perform better than v5.26.0 ? #6579

Closed
GitBenjamin opened this issue Mar 23, 2023 · 4 comments
Closed

Why does v5.27.1 Perform better than v5.26.0 ? #6579

GitBenjamin opened this issue Mar 23, 2023 · 4 comments
Labels

Comments

@GitBenjamin
Copy link
Contributor

Hi, @SiarheiFedartsou
I found that when "step=ture", the performance of the v5.27.1 route api was better than that of v5.26.0 I'm curious what have you done to improve performance?

Compare the two versions:

Formula mode: (old_version - new_version) / old_version * 100

route step=false scene 600qps No change Reduce by 5% Mean RT -0.4ms
route step=true scene 400qps Reduce by 30% Reduce by 40% Mean RT -10ms
@danpat
Copy link
Member

danpat commented Mar 23, 2023

@GitBenjamin We have a complete CHANGELOG file here:

https://github.com/Project-OSRM/osrm-backend/blob/master/CHANGELOG.md

It shows a summary of all changes merged for each release. You should scan that list and see if anything relevant to what you're testing seems to apply.

My guess would be improved JSON result serialization in #6380 - that would matter when comparing steps=true to steps=false, as there is more JSON to serialize.

@GitBenjamin
Copy link
Contributor Author

Thanks @danpat, thanks for the tip!
I tried to check the CHANGELOG and now I'm still looking for improvements.

I thought it was caused by the following changes:

  • Improvements to maneuver override processing
  • Lazily generate optional route path data
  • Upgrade Boost dependency to 1.70
  • Migrate to C++17. Update sol2 to 3.3.0.
  • Fix performance issue after migration to sol2 3.3.0.
  • Fix distance calculation consistency.
  • Migrate to modern TBB version.
  • Pass osm_node_ids by reference in osrm::updater::Updater class.
  • Remove redundant nullptr check.
  • Improve performance of map matching via getPathDistance optimization.
  • Fix inefficient osrm-routed connection handling
  • Fix bug with large HTTP requests leading to Bad Request in osrm-routed.

Now I can start with your prompt. I didn't realize that return would also improve performance.

@SiarheiFedartsou
Copy link
Member

@GitBenjamin are you using osrm-routed or Node bindings btw?

@GitBenjamin
Copy link
Contributor Author

@GitBenjamin are you using osrm-routed or Node bindings btw?

I am using osrm-routed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants