2012-01-18 44 views
12

Recientemente descubrí que MB/s es técnicamente equivalente a 8 millones de bits/s y no a 1024^2 bits por segundo, lo que debería llamarse Mebibyte.¿Cómo puedo calcular MB/s y MiB/s?

Esto debería ser fácil, pero cuando comparo la salida de varias fuentes obtengo respuestas diferentes, incluso de google, que piensa que no hay ninguna diferencia entre las medidas.

Si transfiero 1381530 bytes en 17797601 nanosegundos, ¿cuál es la velocidad de datos en esas dos medidas? y ¿cuál es la fórmula que estás usando para calcularlo?

Actualmente tengo: donde la duración es en nanosegundos.

double data_rate_MiBps = (num_bytes/1024/1000)/((double)duration * 1e-9); 
double data_rate_MBps = (num_bytes/1024/1024)/((double)duration * 1e-9); 

Gracias por las respuestas. Estaba terminando con números que no tenían sentido antes, pero ahora lo hacen. El código anterior debe ser el siguiente:

double data_rate_MiBps = (num_bytes/1024.0/1000.0)/((double)duration * 1e-9); 
double data_rate_MBps = (num_bytes/1024.0/1024.0)/((double)duration * 1e-9); 

por lo tanto, me sale:

74.085 MiB/s 
75.863 MB/s 

Lo que creo que tiene sentido.

Probablemente sea una mejor pregunta. ¿Por qué, en primer lugar, se eligieron 1024 bytes para ser 1 KB en lugar de 1000? Como Kilo (etc) = 1000 en todos los demás lugares.

+2

serio? Usted no puede dividir? –

+1

@AdrianCornish - pensé que podría, pero no soy el único que tiene problemas. ¡Al menos 2 conversores en línea dan diferentes respuestas! – Matt

+0

existe una diferencia en la forma en que el mundo ve un megabyte http://en.wikipedia.org/wiki/Megabyte –

Respuesta

11

Si transfiero 1381530 bytes en 17797601 nanosegundos, ¿cuál es la velocidad de datos en esas dos medidas?

0.0776 bytes/ns.

En primer lugar, con cuidado:

he descubierto recientemente que MB/s es técnicamente equivalente a 8000 millones de bits/s

nunca he oído de esta definición.

"MB/s" generalmente significa "megabytes por segundo". Esto puede ser una de las dos definiciones, dependiendo de a quién se pregunte:

  • 1 millón de bytes por segundo (8 millones de bits por segundo) (según la definición de la IEEE)
  • La definición más comúnmente visto de 1024 * 1024 (1048576) bytes por segundo (8388608 bits por segundo), visto comúnmente en muchos usos.

En algunos casos muy, muy raros, "MB/s" podría significar "megabits por segundo", pero megabits por segundo es generalmente abreviado a "Mbps" o "Mbits/s". El contexto más a menudo le dará pistas sobre lo que es apropiado: las velocidades de transmisión inalámbrica, las tarjetas de ethernet, etc., generalmente se miden en megabits por segundo; las transferencias de archivos a través de Internet se miden en megabytes (o mebibyte, consulte el siguiente párrafo) por segundo.

El IEEE ha propuesto que las computadoras deben seguir los prefijos SI, y usar "Kilobyte" para significar 10^3 bytes, no 2^10 bytes, lo que se ha hecho históricamente. (Y así creó toda la confusión sobre qué definición de megabyte se está usando). Sin embargo, en muchos contextos, 10^3 tiene poco sentido, por lo que se introdujeron diferentes prefijos "binarios", como el "Kibibyte", que es abreviado KiB y siempre significa 1024 bytes. En su caso, existe "Mebibyte", o MiB (y cuando es por segundo, MiB/s) y significa 1024 * 1024 bytes.

Consulte el Wikipedia article on the Megabyte para obtener más información.

(Para las conversiones a bits/s, he supuesto 8 bits/byte.)

+0

Me gusta esta respuesta. Depende de con quién hables. Por lo tanto, si uso el prefijo SI no debería haber ambigüedad. – Matt

+0

+1 para eliminar mi confusión al agregar la propuesta de IEEE –

0

10^3 = Kilo

10^6 = Mega/millón de

10^9 = Giga/mil millones

Eso es lo que ya debería haber enseñado en la escuela. Pero cuando se está calculando Bytes, los cálculos son ligeramente diferentes:

2^10 bytes = 1024 bytes = 1 Kilobyte

2^20 bytes = 1024 bytes^2 = 1 Megabyte

2^30 bytes = 1024^3 bytes = 1 Gigabyte

Por supuesto, nadie te culpará si usas 10^6 bytes como 1 Megabyte. HDD fabrica utiliza 10^9 bytes como 1 Gigabyte.

Para hacer los cálculos inequívocos, a menudo se usa MiB/s (o GiB/s) en lugar de MB/s (o GB/s) cuando se hace referencia a los bytes. Por lo tanto, 1 MiB/s en realidad significa 1024^2 bytes por segundo. Sin embargo, verá muchas áreas donde simplemente se usa MB para indicar 1024^2 bytes (por ejemplo, Windows).

Ahora, depende de usted cómo calcula MB/s. Si usa MiB/s, debe apegarse a la convención y usar 1024^2 en lugar de 10^6.

+0

Sin embargo, el cálculo _debería_ no ser diferente. Tradicionalmente dividimos por 1024 porque hubo un tiempo en el que los procesadores no tenían instrucciones de división de hardware, y el desplazamiento de 10 bits a la derecha era 'lo suficientemente cerca'. Esto obviamente ya no es cierto. Además, hoy en día, la mayoría de los proveedores de discos duros utilizan el significado decimal de kilo, mega y giga; y al menos Mac OS lo hace desde hace algunos años también. – zneak

+0

estoy de acuerdo. todos deberían apegarse a una convención. Hubo un tiempo en el que solía perder con estos cálculos. ahora, acepté la convención 2^x para computadoras. – Donotalo

0

Es correcto que mega es una unidad de prefijo SI, por lo que técnicamente debe hacer referencia a 1 000 000 bytes, mientras que el prefijo mebi debe referirse a 2^20.

Los convertidores en línea no siempre siguen los estándares modernos, ya que hasta hace poco muchas personas, compañías de hardware y sistemas operativos confundían la definición de mega y la usaban para el prefijo binario, a veces de manera incoherente.

9

ver

1>Megabyte por segundo

A megabyte por segundo (MB/s o MBps) es una unidad de velocidad de transferencia de datos igual a:

1.000.000 bytes por segundo ,

2>Megabit por segundo

A megabits por segundo (Mbit/s, Mb/s, o Mbps) es una unidad de velocidad de transferencia de datos igual a:

1.000.000 bits por segundo

3> mebibyte

por segundo

a mebibyte por segundo (MiB/s o MiBps) es una unidad de velocidad de transferencia de datos igual a:

1.048.576 bytes por segundo, o

4> mebibit por segundo

A mebibit por segundo (Mibit/s o Mib/s) es una unidad de velocidad de transferencia de datos igual a:

1.048.576 bits por segundo o

ver Confusion with megabytes, 1 megabyte is 1 million bytes or 1024 * 1024 (1048576) bytes?

Cuestiones relacionadas