They’re all about the same performance-wise, but since they’re all different, performance shouldn’t be the deciding factor.
Velocity is how fast the part is moving and in what direction. If you set it, the part will start moving in that direction at that velocity. But the velocity will change through gravity, collisions, and other forces.
BodyVelocity will set the Velocity and try to keep it there. If you have a BodyVelocity inside of something, it will, for the most part, ignore outside forces and gravity. A bowling ball with a BodyVelocity will try to move a car in order to maintain the speed you set it to. Of course it can’t have truly infinite force because weird things would happen, but it’s really strong.
BodyForce applies a constant force. Gravity is a force, so if you set the force to Gravity*Weight, you can cancel gravity. A part powered by a BodyForce, if it has enough force, will gain speed in that direction infinitely. Higher force means higher acceleration.
BodyForce combined with BodyVelocity? Or BodyForce combined with Velocity?
If it’s the first one, then the BodyVelocity will surely take precedence since it is setting the velocity rather than just adding to it.
If the second one, then it will set the velocity and then continue adding velocity based on the BodyForce each frame.
Velocity is a property that describes the velocity of a part. BodyVelocity applies velocity to a part. BodyForce applies force to a part. You can learn more and understand, even at a glance, that all of these are different and have different use cases if you read the documentation pages for them.
There’s no better method performance wise. They all have different use cases and you need to figure out which one is more appropriate to use in your system.