Which is more efficient: circuit switching or virtual circuit switching and why?