В прошлый раз я писал о бенчмарках Raspberry Pi3 vs Orange Pi PC vs OrangePi PC2 в SysBench.
Цифры вызвали недоумение, как у меня, так и у читателей. И не без основания. Шутка ли - разница в SysBench в 10 раз. Мягко говоря, доверия результаты не вызывают.
Поэтому было принято стратегическое решение - померить ещё как-нибудь.
Методика тестирования
В качестве теста использовались пакеты Phoronix и PyPerformance. Из Phoronix были выбраны тесты:
- 7Zip
- PyBench
Из PyPerformance:
- chameleon
- crypto_paes
- django_template
- regex_compile
- regex_v8
- tornado_http
На каком, собственно, основании ? Причин несколько. Во-первых нужно было проверить “raw performace” процессора. Во-вторых исключить тесты, которые активно обращаются к диску, дабы исключить влияние SD-карты. В-третьих - тесты, более или менее отражающие real-life применение.
Ну и общая идея - измерения производились на том, что есть. То есть все пакеты ставились из стандартных репозитариев. Если “репы” Debian содержат “плохие” бинарники - это проблемы пользователя Debian :).
Результаты
И вот, результаты. Spoiler: кто-то врёт.
Единицы измерения | Raspberry Pi 3 | Orange Pi PC | Orange Pi PC 2 | Примечание | |
---|---|---|---|---|---|
Phoronix | |||||
7 Zip Compression | MIPS | 1723 | 790 | 1376 | Больше — лучше |
PyBench | Milliseconds | 17250 | 21572 | 22881 | Меньше — лучше |
PyPerformance | |||||
chameleon | Milliseconds | 163 | 232 | 213 | Меньше — лучше |
crypto_pyaes | Seconds | 1,76 | 2,34 | 2,08 | Меньше — лучше |
django_template | Seconds | 2,17 | 5,61 | 3,06 | Меньше — лучше |
regex_compile | Seconds | 2,45 | 3,7 | 3,27 | Меньше — лучше |
regex_v8 | Milliseconds | 276 | 376 | 348 | Меньше — лучше |
tornado_http | Seconds | 2,27 | 4,88 | 3,28 | Меньше — лучше |
Ужас-ужас. Но, для начала - некоторые пояснения.
Raspberry Pi 3 - использовался Raspbian.
Orange Pi PC и Orange Pi PC2 - самосборный дистрибутив Debian Jessie. Во всех системах минимизировано использование swap, дабы исключить влияние SD-карты. В случае с OrangePi пришлось пойти на некоторые уловки для уставновки Phoronix, дабы обмануть систему управления пакетами. Armbian пришлось исключить, ибо а) Пакеты те же б) Его нет для Orange Pi PC2
Для точности вот PasteBin каждого из устройств. Там же можно найти ссылки на OpenBenchmarking.org (для Orange).
Raspberry Pi 3
Orange Pi PC
Orange Pi PC 2
Почему всё так ?
Как же так получилось, что Raspberry 3 в режиме ARM7 опередила новейший OrangePi PC2 ?
Предположений масса.
Версия первая, конспирологическая
Если китайские разработчики смогли обмануть Antutu и завысить бенчмарки для своих процессоров, то почему бы не сделать то же самое для SysBench ?
Версия вторая, оправдательная
Raspbian - хорошо оптимизированная система. В частности “бинарник” 7Zip для тестов в Raspbian “приезжает” из репозитаориев, а для Orange Pi - собирается “на месте” без всяких оптимизаций. Тоже самое касается python/cpython.
Вполне может быть, что это сыграло свою роль. AArch64 собран с какими-нибудь “дефолтными флагами”, и, как результат - мы имеет жуткую картину на результатах тестов. Правда, это никак не объясняет десятикратный прирост производительности в SysBench.
Версия третья, жизненная.
А может быть Orange Pi PC и Orange Pi PC2 просто собраны из говна и палок ? Вот и результат. Однако, тут стоит сделать реверанс в сторону авторов RetrOrangePi, которые выжимают из дистрибутива максимум…
Версия четвёртая, не менее жизненная.
Что-то не было учтено. Но, по крайней мере, если кто-то решит воспроизвести результаты - у него есть поле для деятельности и оптимизации.
Генерально, у тестов нет одного важного показателя - а именно, $$$ за единицу производительности. Тут, думаю Orange Pi всех должен уделать, даже с учётом стоимости доставки.
Посмотрим, как будут развиваться события в ядро- и дистрибутиво-строении.