Gast
#7286879
Ich habe gerade mal die Geschwindigkeit der sinf() - Funktion mit folgndem Progrämmchen getestet:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Die volatile sind notwendig, damit der Compiler die Schleife nicht wegoptimiert. dt enthält die vergangene Zeit in Millisekunden. Bei 48MHz CPU-Takt bekomme ich dt= 5948 ms. Ersetze ich den Ausdruck sinf(phi) durch phi, braucht der STM nur 33ms. Daraus folgt, dass eine Sinusfunktion 59µs, also über 2800 Takte benötigt. Wie kann das sein? Meine Vermutung ist, dass die Mathematikbibliothek die Gleitkommahardware nicht nutzt. Leider habe ich keinen Sourcecode. Die Hardware floating point unit ist aktiviert (-mfloat=abi-hard), die Linker-Option -lm ist aktiv.