What is the most efficient way to Destroy() many GameObjects at once?

My game has ~34000 GameObjects, each of which has ~15 MonoBehaviours attached. When I leave the game scene to return to the front end, it takes an inordinately long time to Destroy() those GameObjects, ~3ms per GameObject. Is this expected? Is there a more efficient way to batch-Destroy?

You may use DestroyImmediate() method. It may be faster.