Infinity map c++ optimization

Hello all,
I have few question, i make a endless runner, with a infinity map . the player run in the tunnel and all part of this tunnel is a blueprint herited from a class .

At the begining of the game i spawn 10 blueprint to make the tunnel . when the runner finish to run 1 part of the tunnel, a delete the part and make a new part at the end of the tunnel, this make a infinity map . ( all part of tunnel is added or deleted dynamically ) but i have some probleme .

I dont think its due to my code but after a long time the part stop to be spawned. the world can have a axis X limit ? if i dont use level streaming or anything like this.

I run the game with a low FPS . i dont think its du to my PC. its a good way to spawn blueprint to make the part of tunnel ? maybe i abuse with particle effect or texture or something like this ? few screen :

i trying to dont make and delete part dynamically but just moving the part who is ever runned, but this dont change anything in my FPS .
maybe its because i dont have the last best PC and i underestimate the ue4 requirement ? i am in other project and i can play with no lag, but nothing big is created dynamically

Thanks