use performance.now for timing when possible