C # List <double> size vs double [] size

Also habe ich gerade das getestetCLR Profiler von Microsoft, und ich habe ein kleines Programm erstellt, das eine Liste mit 1.000.000 Doppeln erstellt hat. Ich habe den Heap überprüft und festgestellt, dass die Größe der Liste <> ungefähr 124 KB betrug (ich erinnere mich nicht genau, aber es war ungefähr so). Das hat meine Welt wirklich erschüttert, wie könnte es 124 KB sein, wenn 1 Million Doppelte darin wären? Wie auch immer, danach habe ich beschlossen, ein Double [1000000] zu überprüfen. Und zu meiner Überraschung (na ja, nicht wirklich, da ich das mit der List <> = P erwartet habe) beträgt die Array-Größe 7,6 MB. RIESIGER Unterschied !!

Wie kommt es, dass sie unterschiedlich sind? Wie verwaltet die Liste <> ihre Elemente, die so (unglaublich) speichereffizient sind? Ich meine, es ist nicht so, dass die anderen 7,5 MB anderswo wären, weil die Größe der Anwendung um 3 oder 4 KB größer war, nachdem ich die 1 Million Doppel erstellt hatte.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage