The CLR’s GC implementation has “troubles” with large objects. These do not get collected as part of the managed generations and that can cause all sorts of unpleasantness such as memory fragmentation or worse. My app might be impacted by this since it implements file and image manipulations algorithms which employ large buffers.
The annoying part is not the limitation itself but the lack of documentation regarding this issue. There are quite a few newgroup discussions on GC theory etc, but I have yet to find an authorative answer from someone on the CLR team. Various sources place the “magic breaking number” at anywhere from 20K to several megs, with the most popular figure being 85K. And other information such as scenarios, possible workarounds and performance metrics are almost impossible to come by.
Does anyone have solid information regarding this issue?