Prefissi SI

Nome Simbolo Multiplo
kilobyte kB 10^3
megabyte MB 10^6
gigabyte GB 10^9
terabyte TB 10^12
petabyte PB 10^15
exabyte EB 10^18
zettabyte ZB 10^21
yottabyte YB 10^24

Prefissi binari

Nome Simbolo Multiplo
kibibyte KiB 2^10
mebibyte MiB 2^20
gibibyte GiB 2^30
tebibyte TiB 2^40
pebibyte PiB 2^50
exbibyte EiB 2^60
zebibyte ZiB 2^70
yobibyte YiB 2^80

un file di 5 MB, sono 5120 Kb Questo perché: 5 x 1024 Kb = 5120 KB e volendo trovare i byte: 5 x 1024 x 1024 =5242880 byte

K, M, G, riferite ai Byte, sono potenze di 2, in particolare sono 2 elevato ad un multiplo di 10, nel caso rispettivamente 2^10, 2^20, 2^30.

Quando le stesse sigle sono riferite ai bit, sono intese come unita di misura metriche decimali K = 10^3, M = 10^6, G = 10^9 e così via.

Una linea a 7 Mbps ha una capacità massima di 7Mbit per secondo cioè ogni secondo può trasmettere 7*10^6 bit. trasferire un file 5MB = 5242880 byte = 41943090 bit, occorrerebbe un tempo pari a circa: (41943090 bit) / (7*10^6 bit/s) = 5.992 secondi.

# shows the size in kiB/MiB/GiB (1024 increments)
du -h filename  and
 
# shows the size in kB/MB/GB (1000 increments)
du -h --si filename

Approximate timing for various operations on a typical 1GHz PC in 2001:

  • execute single instruction: 1 nanosec = (1/1,000,000,000) sec
  • fetch word from L1 cache memory: 2 nanosec
  • fetch word from main memory: 10 nanosec
  • fetch word from consecutive disk location: 200 nanosec
  • fetch word from new disk location (seek): 8,000,000 nanosec = 8 millisec

latency numbers

Latency Comparison Numbers
--------------------------
L1 cache reference                           0.5 ns
Branch mispredict                            5   ns
L2 cache reference                           7   ns                      14x L1 cache
Mutex lock/unlock                           25   ns
Main memory reference                      100   ns                      20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy             3,000   ns        3 us
Send 1K bytes over 1 Gbps network       10,000   ns       10 us
Read 4K randomly from SSD*             150,000   ns      150 us          ~1GB/sec SSD
Read 1 MB sequentially from memory     250,000   ns      250 us
Round trip within same datacenter      500,000   ns      500 us
Read 1 MB sequentially from SSD*     1,000,000   ns    1,000 us    1 ms  ~1GB/sec SSD, 4X memory
Disk seek                           10,000,000   ns   10,000 us   10 ms  20x datacenter roundtrip
Read 1 MB sequentially from disk    20,000,000   ns   20,000 us   20 ms  80x memory, 20X SSD
Send packet CA->Netherlands->CA    150,000,000   ns  150,000 us  150 ms
 
Notes
-----
1 ns = 10^-9 seconds
1 us = 10^-6 seconds = 1,000 ns
1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
 
Credit
------
By Jeff Dean:               http://research.google.com/people/jeff/
Originally by Peter Norvig: http://norvig.com/21-days.html#answers
 
Contributions
-------------
Some updates from:       https://gist.github.com/2843375
'Humanized' comparison:  https://gist.github.com/2843375
Visual comparison chart: http://i.imgur.com/k0t1e.png
Animated presentation:   http://prezi.com/pdkvgys-r0y6/latency-numbers-for-programmers-web-development/latency.txt

unità di misura binarie e decimali

il valore del kilobyte, se esso sia di 1000 byte o di 1024 byte. si tratta di vizi di forma Che tuttavia inducono, in errori pratici.

I prefissi kilo-, mega-, giga-, tera-, e via discorrendofanno parte di una serie di prefissi ufficiali del SI (Sistema Internazionale di unità di misura) adottati per semplificare l'utilizzo di valori multipli e sottomultipli rispetto ad una unità di misura fondamentale. Sono prefissi che traggono origine da termini della lingua greca: "kilo" per 1.000, "mega" per 1.000.000, "giga" per 1.000.000.000. Si tratta quindi di prefissi applicabili ad un sistema di numerazione decimale, in quanto rappresentano di fatto le potenze del dieci.

Il primo errore è quello di applicare ad una unità di misura (in questo caso il byte, unità di misura dell'informazione), un prefisso decimale per indicare però valori calcolati in base binaria. Formalmente parlando, l'espressione kilobyte è equivalente a 1 byte moltiplicato per 1.000, ovvero mille byte. Tuttavia l'espressione kilobyte è stata usata fin dall'inizio in modo errato, facendola corrispondere al valore di 1024 byte, ovvero la decima potenza del due: si è quindi applicato un metodo di calcolo binario utilizzando però un prefisso decimale. Non che questo rappresenti un sacrilegio, ma è il primo problema di forma dal quale discendono gli altri.

L'espressione kilobyte, essendo formalmente scorretta nel modo in cui è entrata nell'uso comune, ovvero considerandola come una espressione a base due, ha portato gli organismi come il SI, l'IEC (International Electrotechnical Committee), l'IEEE (Institute of Electrical and Electronics Engineers) e l'ISO (International Organization for Standardization) a formalizzare alcuni elementi per evitare di utilizzare impropriamente determinate espressioni e generare così confusione ed errori.

Sono quindi stati definiti nuovi prefissi, in particolare dall'IEC in un emendamento del documento "IEC 60027-2: Letter symbols to be used in electrical technology — Part 2: Telecommunications and electronics" nel 1999, che indicassero precisamente in quali casi si ha a che fare con multipli di potenze binarie. Si tratta dei prefissi kibi-, mebi-, gibi-, tebi- e via discorrendo, dove la particella "bi" sta per "binary". Vado a precisare:

kibi: kilo-binary, ovvero 2^10
mebi: mega-binary, ovvero 2^20
gibi: giga-binary, ovvero 2^30
tebi: tera-binary, ovvero 2^40
Questi prefissi binari sono stati recepiti e ratificati dall'IEEE all'interno dello standard IEEE 1541. Il SI ha inoltre espressamente vietato l'utlizzo dei prefissi decimali esposti nei paragrafi sopra per indicare quantità calcolate su base binaria.

In questo caso, quindi, sempre ragionando in un ipotetico mondo perfetto che si attiene ai formalismi, le uniche due espressioni corrette sono:

kilobyte = 1.000 byte
kibibyte = 1.024 byte
e ovviamente a seguire tutti gli altri multipli.

Tuttavia, come spesso accade quando qualcosa è profondamente radicato nell'uso comune, anche nei sistemi operativi (che per ovvi motivi "ragionano" in base binaria) vengono tutt'ora mantenuti i prefissi decimali per indicare però quantità calcolate utilizzando potenze del due.

un disco di capienza "ottanta miliardi di byte" potrà contenere ottanta gigabyte di informazione oppure 74,5 gibibyte (e non gigabyte) di informazione.