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