Hallo,
Die Variante mit Sprungtabelle ist fertig.
Die braucht bei mir 38 Takte, ein JMP bremst enorm.
Das wäre gegenüber ASM3, mit durchschnittlich 32 Takte, langsamer.
Vielleicht wäre es für INTEL Chips, da bei Dano Core2 die schnellste Version ASM3 45 Takte braucht.
Ich habe die Gesamtzeit angeben. Die Overhead braucht ja immer, ausser man schafft es inline, was bei meinem Test so nicht ging.
Gruß Horst
Code:
MaxRound 100004884 , F_CPU = 3.2 Ghz
Tests mit Dummy/ Overhead des Aufrufs
Anzahl: 100004884 t 224,092 ms: 7,171 CPU-Takte
Tests mit Selectionsort3Down
Anzahl: 100004884 t 3008,814 ms: 96,277 CPU-Takte
Tests mit NetworkSort2
Anzahl: 100004884 t 2597,955 ms: 83,130 CPU-Takte
Tests mit NetworkSortAsmDown
Anzahl: 100004884 t 1795,201 ms: 57,444 CPU-Takte
Tests mit NetworkSortAsmDown2
Anzahl: 100004884 t 1841,396 ms: 58,922 CPU-Takte
Tests mit NetworkSortAsmDown2Horst
Anzahl: 100004884 t 1548,641 ms: 49,554 CPU-Takte
Tests mit NetworkSortAsmDown3
Anzahl: 100004884 t 989,808 ms: 31,672 CPU-Takte
Tests mit SORTSprungTabelle
Anzahl: 100004884 t 1194,537 ms: 38,223 CPU-Takte