-
-
Notifications
You must be signed in to change notification settings - Fork 5
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
feat: Completely Revamped Clustering Algorithm #200
Conversation
You may find switching allocator allows process to shrink better. Eg https://lib.rs/crates/jemallocator or https://lib.rs/crates/mimalloc (mimalloc sounds potentially more attractive) |
Thanks! I'll give it a try tomorrow morning. |
Latest benchmarks:
|
Thanks for the suggestion! I tested both and mimalloc does indeed seem to perform quite a bit better with Linux, seems to be junk for MacOS but easy to exclude it in that case. Jemallocator worked pretty nicely too but on average mimalloc retained less after operations completed. |
Changes
Algorithms
Balanced
andBruteForce
algorithms have been removed/replaced entirely, as they're worse in every way and are no longer worth maintainingFastest
(Previouslyfast
algorithm)Fast
Balanced
(utilizes new algorithm though)Better
Stats
route_time
is now returned from the APImygod_score
is also now returnedUI
Route
is no longer a selectable mode, rather you chooseTSP
for the value ofSort By
in clustering modeAPI
cluster_mode
,BruteForce
now maps toBetter
only_unique
has been deprecated and is no longer used/api/v1/calc/route/{category}
is still active, but you're encouraged to just use thecluster
endpoint with thesort_by
argument set toTSP
max_clusters
arg, this limits the algorithm to only accept the top X amount of clusters (by number of points they cover)Misc
Benchmarks
Resolves #169
Resolves #162
Closes #121
Resolves #116 (hopefully)