Earlier quoted context omitted.
In fact, the techniques for C# here would be pretty much the same as for C++ or C: Don't do dynamic allocation in the hot path. And if you must, keep the lifetime short so it gets cleaned up predictably (usually in gen0). However, for an ancient platform on modern hardware I guess the per-frame budget is plentiful even for an emulator.
Yeah, which is the problem with GC'd languages because it isn't always obvious where allocation will occur.
D also has something similar as compiler switch.