Я могу вспомнить некоторые простые вещи, которые Microsoft могла бы сделать с распределителем памяти, который бы значительно уменьшил фрагментацию LOH без капитального ремонта, например, округление размеров выделения до нескольких кратных, например 4K. Учитывая, что наименьшие нестатические объекты LOH были 85 КБ, это означало бы не более 5% потери полезного пространства, но уменьшало бы количество объектов разного размера и промежутков. Кстати, я на самом деле не убежден в том, что значение принудительного вызова всех больших объектов в LOH (в отличие от, возможно, наличия средства указания, когда объект создается, должен ли он идти в LOH или нет). Я могу понять некоторую ценность в отделении маленьких объектов от больших, как только они достигнут Уровня 2, но есть достаточно случаев, когда большие объекты создаются и забрасываются, что принуждение их к уровню 2 кажется контрпродуктивным.