change O() for sweep and prune

This commit is contained in:
Paul Pacheco 2020-02-24 08:32:46 -06:00 committed by GitHub
parent 02c31d0805
commit 4737346db8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -114,7 +114,7 @@ Micro-optimizations try to improve the performance of an application by replacin
Macro-optimizations try to improve the performance of an application by changing the algorithm. Some examples include:
* Serialize a message once O(1), instead of for every single client O(n)
* Change interest management algorithm, as of this writing every object checks every other object O(n^2), it could be replaced by a sweep and prune algorithm O(n)
* Change interest management algorithm, as of this writing every object checks every other object O(n^2), it could be replaced by a sweep and prune algorithm O(n log n)
* When synchronizing movement, instead of synchronizing every position change, you could synchronize the velocity and let the other side predict the position.
Macro-optimizations tend to change the **scalability** of mirror, by changing an algorithm, you may now support 10x more customers on the same hardware, it is even possible for a macro optimization to make performance worse for small numbers. Macro optimization usually make a really big difference, but are much harder to make.