BogoMIPS
BogoMIPS (от англ. bogus (поддельный) и MIPS — англ. Millions of Instructions Per Second) — в ядре Линукс способ измерения скорости исполнения инструкций на компьютере, предназначенный для калибровки внутренних циклов. Термин изобрёл Линус Торвальдс в 1993. BogoMIPS шутливо определяется как «сколько миллионов раз в секунду компьютер может абсолютно ничего не делать». Несмотря на наличие MIPS в названии величины, она ненаучна и не является метрикой общей производительности.
Причина возникновения такой величины в том, что для работы с некоторыми видами оборудования ядру системы требуются короткие временны́е задержки, которые реализуются в форме пустых циклов. Чтобы узнать, сколько именно раз надо повторять пустой цикл, необходимо выяснить скорость его выполнения на данной машине — именно для этого используется BogoMIPS.
При начальной загрузке ядра выдаётся сообщение примерно такого вида:
Calibrating delay loop… 2994.99 BogoMIPS
Во время работы значение BogoMIPS можно узнать, прочитав файл /proc/cpuinfo
Величина BogoMIPS обычно пропорциональна тактовой частоте процессора, но также зависит от архитектуры и микроархитектуры процессора и работы кэша.
Для многих современных процессоров (x86, SPARC, 68k, Alpha 21264), величина BogoMIPS близка к удвоенной частоте.[1]
Интересные факты
[править | править код]- Использование инструкций nop в цикле задержки без калибровки может приводить к странным последствиям, так как некоторые x86 процессоры, выпущенные в 2010-х, способны исполнять до 4 операций в каждый такт[2].
Примечания
[править | править код]- ↑ BogoMips mini-Howto, «2.2 How to estimate what the proper BogoMips rating should be»: «… clock * 2.00»
- ↑ Архивированная копия . Дата обращения: 7 июля 2014. Архивировано из оригинала 30 июля 2014 года.
Ссылки
[править | править код]- BogoMips mini-Howto // Wim van Dorst, v33, 2002-04-07
- BogoMips mini-Howto // Wim van Dorst, 2006-03-02, version V38
- Устаревшая версия перевода BogoMIPS Howto.
- https://github.com/vitalyvch/Bogo/tree/BogoMIPS_v1.3 // Sources of a classic standalone benchmark