Just to keep an update, i have managed to speed up the TList overhead a little by directly accessing the dynamic array (TList.List) and by using the TList.Sort to sort objects by the frustum and the distance from the camera.