What is the fastest way to translate a static mesh component in C++?

I’m trying to render a scene that has an actor with 1000 static mesh components (simple cubes). Essentially I’m trying to create a particle effect while retaining the ability to adjust the material instances / positions for each mesh. This all works great and I’m able to get 60fps as long as the meshes aren’t moving independently, but as soon as I try to apply a translations to the meshes, performance drops to around 30fps. I know that making 1000 translations per tick is going to be costly, but is there any way to improve this?

I’ve tried using setWorldTransform() and setWorldLocation() – is there a more efficient way to do this? Is there any overhead associated with these functions that can be bypassed?

I’m fairly new to the engine, so if there’s a better way to solve the problem, I’m open to suggestions!