Hier mal ein paar Zahlen
(A): Berechnung zweier FFTs hintereinander.
(B): Berechnung einer 'Dualen' FFT.
Kompiliert für win64 (Daten: double)
1024k FFT -> A: 289ms, B: 331ms
512k FFT -> A: 88ms, B: 139ms (!!)
256k FFT -> A: 29ms, B: 40ms (!!)
128k FFT -> A: 13ms, B: 13ms
64k FFT -> A: 6ms, B: 6ms
32k FFT -> A: 2,5ms, B: 2,4ms
Kompiliert für
win32 (Daten: double)
1024k FFT -> A: 309ms, B: 350ms
512k FFT -> A: 96ms, B: 142ms (!!)
256k FFT -> A: 34ms, B: 38ms
128k FFT -> A: 16ms, B: 14ms
64k FFT -> A: 7ms, B: 6ms
32k FFT -> A: 3,0ms, B: 2,7ms
Irgendwie hängt das anscheinend sehr von der Umgebung ab. Wenn ich das Programm im VTune ausführe, dann bekomme ich (
win32 + win64) bessere Werte bei der größten FFT (1024k FFT -> A: 286ms, B: 332ms,
win32 und A:269ms, B: 315ms in win64), ab 512k sind die Resultate bei 32bit gleich, bei win64 gibt's bei 512k / 'dual' ein besseres Resultat ( 126ms zu 139ms).
Insgesamt sind die Unterschiede anscheinend sehr von der Umgebung abhängig, so dass ich das alles nur als große Richtung verstehe. Interessant war und ist es aber schon.