2017-07-26 2 views
0
> 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?

Antwort

4

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.

+0

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

+1

ja, ich habe es in meiner Antwort verlinkt ... –

Verwandte Themen