It appears that Mango, the latest release of Windows Phone, is going to have a generational garbage collector. There’s a post here that gives some of the details, and some other related posts here and here. Of these latter two posts, the first discusses why the generational GC is going to make a performance difference, and the second discusses the infamous question of whether it is necessary to manually clear local variables to allow the garbage collector to allow objects early.
It seems pretty amazing to me that they have only just started using a generational collector given the rich history of such technology. Generational collectors add memory overheads in the form of tables which track the inter-generational references and extra instructions which keep these tables up to date, but I’d have imagined that the performance gains would have made this all worthwhile years ago.