Use component wise math to reduce allocations.
Move the masses only when the velocity is significant (>0.01) so that the long loop of infinitesimal changes to velocity and position is broken. See #60, #86