Как рассчитать MB/s & MiB/s?
Недавно я обнаружил, что MB/s технически эквивалентен 8 миллионам бит/с
и не 1024 ^ 2 бит в секунду, которые следует называть Mebibyte.
Это должно быть легко, но при сравнении результатов из разных источников я получаю разные ответы, даже от google, который считает, что между этими мерами нет никакой разницы.
Если я переношу 1381530 байт в 17797601 наносекундах, какова скорость передачи данных в этих двух измерениях? и какова формула, которую вы используете для расчета?
В настоящее время у меня есть: где продолжительность в наносекундах.
double data_rate_MiBps = (num_bytes/1024/1000) / ((double)duration * 1e-9);
double data_rate_MBps = (num_bytes/1024/1024) / ((double)duration * 1e-9);
Спасибо за ответы. Я получал цифры, которые раньше не имели смысла, но теперь они это делают. Вышеприведенный код должен быть следующим:
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);
Поэтому я получаю:
74.085 MiB/s
75.863 MB/s
Что я думаю, имеет смысл.
Вероятно, лучший вопрос. Почему в первую очередь было 1024 байта, выбранных как 1KB вместо 1000. Так как Kilo (и т.д.) = 1000 везде.
Ответы
Ответ 1
Если я переношу 1381530 байт в 17797601 наносекундах, какова скорость передачи данных в этих двух измерениях?
0.0776 bytes/ns.
Во-первых, осторожно:
Недавно я обнаружил, что MB/s технически эквивалентен 8000 миллионов бит/с
Я никогда не слышал об этом определении.
"MB/s" обычно означает "мегабайты в секунду". Это может быть одно из двух определений, в зависимости от того, кого вы спрашиваете:
- 1 миллион байт в секунду (8 миллионов бит в секунду) (в соответствии с определением IEEE)
- Наиболее часто встречающееся определение 1024 * 1024 (1048576) байтов в секунду (8388608 бит в секунду), часто встречающееся во многих режимах использования.
В некоторых действительно очень редких случаях "МБ/с" может означать "мегабит в секунду", но мегабит в секунду обычно сокращается до "Мбит/с" или "Мбит/с". Контекст чаще всего подскажет вам, в чем уместно: скорость беспроводной передачи, карты Ethernet и т.д. Обычно измеряются в мегабит в секунду; передача файлов через Интернет измеряется в мегабайтах (или mebibyte, см. следующий параграф) в секунду.
IEEE предложила, чтобы компьютеры следовали префиксам SI и использовали "Kilobyte" для обозначения 10 ^ 3 байта, а не 2 ^ 10 байтов, что было сделано исторически. (И таким образом создавалась вся путаница, над которой фактически используется определение мегабайта). Однако во многих контекстах 10 ^ 3 мало смысла, поэтому были введены разные "бинарные" префиксы, такие как "Kibibyte", который сокращенный KiB и всегда означает 1024 байта. В вашем случае есть "Mebibyte" или MiB (и в секунду, MiB/s) и означает 1024 * 1024 байта.
Подробнее см. статью Википедии о мегабайте.
(Для преобразований в бит/с я принял 8 бит/байт.)
Ответ 2
см.
1 > Мегабайт в секунду
Мегабайт в секунду (MB/s или MBps) - это единица скорости передачи данных, равная:
1 000 000 байт в секунду,
2 > Мегабит в секунду
Мегабит в секунду (Мбит/с, Мбит/с или Мбит/с) - это единица скорости передачи данных, равная:
1,000,000 бит в секунду
3 > Мебибайт в секунду
Мебибайт в секунду (MiB/s или MiBps) - это единица скорости передачи данных, равная:
1,048,576 байт в секунду или
4 > Мебибит в секунду
Мебибит в секунду (Mibit/s или Mib/s) - это единица скорости передачи данных, равная:
1,048,576 бит в секунду или
см. Путаница с мегабайтами, 1 мегабайт - 1 миллион байт или 1024 * 1024 (1048576) байта?
Ответ 3
10 ^ 3 = Kilo
10 ^ 6 = Mega/Million
10 ^ 9 = Гига/Миллион
То, что вы должны были уже преподавать в школе. Но когда вы вычисляете байты, вычисления немного отличаются:
2 ^ 10 bytes = 1024 bytes = 1 Kilobyte
2 ^ 20 bytes = 1024 ^ 2 байта = 1 мегабайт
2 ^ 30 bytes = 1024 ^ 3 байта = 1 гигабайт
Конечно, никто не будет обвинять вас, если вы используете 10 ^ 6 байт как 1 мегабайт. HDD производит 10 ^ 9 байтов в 1 гигабайт.
Чтобы сделать вычисления недвусмысленными, MiB/s (или GiB/s) часто используется вместо MB/s (или GB/s) при обращении к байтам. Таким образом, 1 MiB/s на самом деле означает 1024 ^ 2 байта в секунду. Тем не менее, вы увидите много областей, где просто МБ используется для указания 1024 ^ 2 байта (например, Windows).
Теперь, до вас, как вы вычисляете MB/s. Если вы используете MiB/s, вы должны придерживаться соглашения и использовать 1024 ^ 2 вместо 10 ^ 6.
Ответ 4
Верно, что мега является префиксом SI, поэтому технически он должен относиться к 1 000 000 байт, в то время как префикс mebi должен ссылаться на 2 ^ 20.
Онлайн-преобразователи не всегда соответствуют современным стандартам, так как до недавнего времени многие люди, аппаратные компании и ОС смешивали определение мега и иногда использовали его для двоичного префикса.