You have something real tight going on, however for me the framerate dips the more bullets are being fired+in the air. It makes it almost unplayable.
GPU usage stays under 30% so just guessing but maybe there’s no object pooling? Or some ugly inefficiency in the projectile/ballistics code.