<gcAllowVeryLargeObjects> element

On 64-bit platforms, enables arrays that are greater than 2 gigabytes (GB) in total size.

<configuration>
  <runtime>
    <gcAllowVeryLargeObjects>

Syntax

<gcAllowVeryLargeObjects enabled="true|false" />  

Attributes

Attribute Description
enabled Required attribute.

Specifies whether arrays that are greater than 2 GB in total size are enabled on 64-bit platforms.

enabled attribute

Value Description
false Arrays greater than 2 GB in total size are not enabled. This is the default.
true Arrays greater than 2 GB in total size are enabled on 64-bit platforms.

Child elements

None.

Parent elements

Element Description
configuration The root element in every configuration file used by the common language runtime and .NET Framework applications.
runtime Contains information about runtime initialization options.

Remarks

Using this element in your application configuration file enables arrays that are larger than 2 GB in size, but does not change other limits on object size or array size:

  • The maximum number of elements in an array is UInt32.MaxValue.

  • The maximum size in any single dimension is 2,147,483,591 (0x7FFFFFC7) for byte arrays and arrays of single-byte structures, and 2,146,435,071 (0X7FEFFFFF) for arrays containing other types.

  • The maximum size for strings and other non-array objects is unchanged.

Caution

Before enabling this feature, ensure that your application does not include unsafe code that assumes that all arrays are smaller than 2 GB in size. For example, unsafe code that uses arrays as buffers might be susceptible to buffer overruns if it's written on the assumption that arrays will not exceed 2 GB.

Example

The following app.config file snippet shows how to enable this feature for a .NET Framework application.

<configuration>  
  <runtime>  
    <gcAllowVeryLargeObjects enabled="true" />  
  </runtime>  
</configuration>  

Supported in

.NET Framework 4.5 and later versions

See also