Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# gcAllowVeryLargeObjects可能存在的缺点?_C#_Out Of Memory_Gcallowverylargeobjects - Fatal编程技术网

C# gcAllowVeryLargeObjects可能存在的缺点?

C# gcAllowVeryLargeObjects可能存在的缺点?,c#,out-of-memory,gcallowverylargeobjects,C#,Out Of Memory,Gcallowverylargeobjects,在几个outOfMemory异常之后,我启用了“gcAllowVeryLargeObjects”,它工作得非常好。我现在想知道为什么它不是C#(在64位平台上)中的默认选项 这纯粹是出于兼容性的原因吗?还是我缺少了gcAllowVeryLargeObjects的一个主要缺点?说: 在启用此功能之前,请确保您的应用程序不包含假定所有阵列大小小于2 GB的不安全代码。例如,如果使用数组作为缓冲区的不安全代码是在假定数组不会超过2GB的情况下编写的,则该代码可能容易发生缓冲区溢出 因此,只要您没有使用

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

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

说:

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


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

您读过吗?只有一个警告,默认值通常是尊重兼容性。查看clr限制“假设所有阵列的大小小于2 GB”的不安全代码是什么样子的?@springy76:have
p1
指向阵列中的一个点,
p2
指向另一个点,do
(int)(p2-p1)