Does .NET JIT optimize empty loops away?
This article suggests otherwise. But there is still a need to evaluate the loop condition. Does java just employ a specific trick to recognize this case? Check out the follow-up story to the article you quote. NOTE to people answering: It appears the OP is asking about the .NET JIT, not the Java JIT, since the article referenced suggested that Java did a better job of (or that only Java did) optimizing away empty loops. EDIT: Googling for more answers, Jon Skeet's name keeps coming up. See, for example, this thread on C# optimizations . Thus, when he answers, we'll have the authoritative