Деление под компилятором Ардуины у ESP32 и Nucleo F411RE организовано далеко не лучшим образом по сравнению с оптимизированным онлайн компилятором RTOS mbed.
=======================================================
ESP-32 WROOM DEVKIT V1 Arduino (ESP32 cores v 1.0.1)
240MHz float
time for 1 mio. plus calculations in s: 0.02
result= 122862.06
time for 1 mio. minus calculations in s: 0.03
result= 1.00
time for 1 mio. multiplications in s: 0.04
result= 2.71
time for 1 mio. divisions in s: 0.22
result= 1.00
time for 1 mio. analog reads in s: 9.70
240MHz double
time for 1 mio. plus calculations in s: 0.23
result= 123001.00
time for 1 mio. minus calculations in s: 0.27
result= 1.00
time for 1 mio. multiplications in s: 0.45
result= 2.72
time for 1 mio. divisions in s: 2.53
result= 1.00
time for 1 mio. analog reads in s: 9.80
=======================================================
Nucleo F411RE Arduino (STM Cores 1.4.0)
96MHz float
time for 1 mio. plus calculations in s: 0.04
result= 122862.06
time for 1 mio. minus calculations in s: 0.04
result= 1.00
time for 1 mio. multiplications in s: 0.05
result= 2.71
time for 1 mio. divisions in s: 0.15
result= 1.00
time for 1 mio. analog reads in s: 53.10
96MHz double
time for 1 mio. plus calculations in s: 0.88
result= 123001.00
time for 1 mio. minus calculations in s: 0.91
result= 1.00
time for 1 mio. multiplications in s: 0.77
result= 2.72
time for 1 mio. divisions in s: 6.27
result= 1.00
time for 1 mio. analog reads in s: 52.70
======================================================
Nucleo F411RE Mbed OS 5.11.3
96MHz float
time for 1 mio. plus calculations in s: 0.025030
result= 122862.062500
time for 1 mio. minus calculations in s: 0.025040
result= 0.995740
time for 1 mio. multiplications in s: 0.025040
result= 2.710328
time for 1 mio. divisions in s: 0.025040
result= 0.995730
time for 1 mio. analog reads in s: 9.120400
96MHz double
time for 1 mio. plus calculations in s: 0.581990
result= 123001.000000
time for 1 mio. minus calculations in s: 0.615780
result= 1.000000
time for 1 mio. multiplications in s: 0.790040
result= 2.718268
time for 1 mio. divisions in s: 1.163930
result= 1.000000
time for 1 mio. analog reads in s: 9.140400
Сообщение отредактировал Aleksk: 03 февраля 2019 - 22:54