> print(object.size(runif(1e6)),unit="Mb")
7.6 Mb
Das gibt mir 7.6Mb für einen Vektor mit 1 Million Elementen. Aber warum? Jedes Element ist 32 Bit oder 64 Bit? Ich kann diese Nummern nicht hinzufügen.Wie wird die Objektgröße in R berechnet?
> print(object.size(runif(1e6)),unit="Mb")
7.6 Mb
Das gibt mir 7.6Mb für einen Vektor mit 1 Million Elementen. Aber warum? Jedes Element ist 32 Bit oder 64 Bit? Ich kann diese Nummern nicht hinzufügen.Wie wird die Objektgröße in R berechnet?
Sie sind 64-Bit- (8-Byte-) Fließkommawerte. Ein Megabyte (Mb) ist 2^20 Bytes (nicht 10^6 - siehe unten) ... so ...
8*1e6/(2^20)
[1] 7.629395
Viel Potenzial für Verwirrung darüber, was Mb
bedeutet:
Wie üblich, dies klar dokumentiert ist, tief in den Details der ?object.size
...
Wie Tabellen unten dargestellt, die Legacy-und IEC-Normen verwenden binäre Einheiten (ein Vielfaches von 1024) , während der SI-Standard verwendet decimal Einheiten (ein Vielfaches von 1000) ...
*object size* *legacy* *IEC* 1 1 bytes 1 B 1024 1 Kb 1 KiB 1024^2 1 Mb 1 MiB
Die Google-Konvertierung scheint stattdessen SI-Einheiten (1 MB = 10^6 Byte) zu verwenden.
Warum Google mir [diese Berechnung] (https://www.google.com/search?q=1mb+to+bytes&oq=1mb+to+bytes&aqs=chrome..69i57j6j0.7223j0j7&sourceid=chrome&ie=UTF- 8)? – hxd1011
ja, ich habe es in meiner Antwort verlinkt ... –