Understanding performance bottlenecks?

With MatrixGetOrigin(component.PerInstanceSMData[n].Transform)

I did a simple script to show the proccess here: https://forums.unrealengine.com/legacy-tools-unreal-engine-3-udk/udk-programming-and-unrealscript/1344053-improving-the-foliage-tool-performance

also, can be useful the property “InstanceEndCullDistance” in the InstancedStaticMeshComponent to know when you can start to hidding the cluster.

Finally I made a system to check all the clusters in a distributed way along several ticks, taking into account the player speed. It works quite well, it’s one of the few things I’m happy with.