gcAllowVeryLargeObjects 的可能缺点?

RUs*_*512 4 c# out-of-memory gcallowverylargeobjects

在几次 outOfMemory 异常之后,我启用了“gcAllowVeryLargeObjects”,它工作得很好。我现在想知道为什么它不是 C# 中的默认选项(在 64 位平台上)。

纯粹是出于兼容性原因吗?还是我错过了 gcAllowVeryLargeObjects 的一个主要缺点?

And*_*ndy 6

MSDN说:

在启用此功能之前,请确保您的应用程序不包含假设所有数组的大小都小于 2 GB 的不安全代码。例如,如果在假设数组不会超过 2 GB 的情况下编写使用数组作为缓冲区的不安全代码,则它可能容易受到缓冲区溢出的影响。

因此,只要您不使用unsafe代码,就没有缺点。