You need to be a little more clear in what you mean by "Calculating the efficiency". Are you talking in terms of CPU cycles, milliseconds, actual performance, perceived performance, etc.
Also, without more details about the processing environment, there really is no way to quantify the efficiency of any of these methods. For example, if the environment were to consist of many small processing tasks, then each of these methods may provide very similar results. If the environment included jobs of all sizes from tiny to huge, then the efficiencies of these methods could vary widely.
So, to be clear, the question is not complete - the decision to use any method is dependent on the problem domain.