Ich habe gehört, dass es eine feste Grenze für die Größe von .Net Array
. Es wird gesagt, dass die maximale Menge an Speicher, die einer einzelnen Instanz eines Programms zugewiesen werden kann Array
Objekt ( unabhängig davon, ob es sich um int[]
, double[]
oder Ihr eigenes Array) beträgt 2 GB. Und nein, wenn Sie einen 64-Bit-Rechner haben, ist die 2-GB-Grenze immer noch vorhanden.
Ich bin mir nicht sicher, ob mein Eindruck richtig ist oder nicht. Kann das jemand bestätigen?
0 Stimmen
Wow, Sie haben eine interessante Diskussion angestoßen.
0 Stimmen
Falls es Sie beruhigt: Die 2-GB-Grenze gilt auch für nicht verwalteten Code. Dies ist eine Einschränkung im x64-Befehlssatz, indizierte Offset-Adressierung hat immer noch eine 32-Bit-Grenze für den Offset. Es ist nicht so, dass es nicht überwunden werden kann, es ist nur sehr ineffizient, dies zu tun.
1 Stimmen
Hans Passant: Ich verwende C++ unmanaged Code in meinem x64 app, um ein Array von 600E6 Doubles mit malloc zuzuweisen. Das sind 4,8E9 Bytes.