4

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

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

4

1 回答 1

6

MSDN说:

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

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

于 2015-07-01T09:03:49.907 回答