Иван К Asked:2020-08-10 16:06:47 +0000 UTC2020-08-10 16:06:47 +0000 UTC 2020-08-10 16:06:47 +0000 UTC 由于哪个版本的 net 具有元素数大于 int32.maxvalue 的数组可用? 772 此代码从哪个版本的网络正常编译? Byte[] bytes = new Byte[Int64.MaxValue]; 它适用于.NET 4.7。 c# 1 个回答 Voted Best Answer Lunar Whisper 2020-08-10T18:57:48Z2020-08-10T18:57:48Z 此代码将分别在从 CLR2.0 和 .NET 2.0 开始的任何版本中编译。 gcAllowVeryLargeObjects 键影响运行时行为。由于您的机器上绝对没有 8 EB 的 RAM,因此您没有运行此示例。为了让垃圾收集器处理大于 2 GB 的内存区域,您确实需要设置此键。 如果您使用图形,这是合理的。如果这是某种数据存储,那么分配如此大量的内存是一个非常糟糕的主意。内存可能是碎片化的,如果有 4 GB 的可用 RAM,它可能根本无法容纳 2 GB 的一块,更不用说大容量了。
此代码将分别在从 CLR2.0 和 .NET 2.0 开始的任何版本中编译。
gcAllowVeryLargeObjects 键影响运行时行为。由于您的机器上绝对没有 8 EB 的 RAM,因此您没有运行此示例。为了让垃圾收集器处理大于 2 GB 的内存区域,您确实需要设置此键。
如果您使用图形,这是合理的。如果这是某种数据存储,那么分配如此大量的内存是一个非常糟糕的主意。内存可能是碎片化的,如果有 4 GB 的可用 RAM,它可能根本无法容纳 2 GB 的一块,更不用说大容量了。