Registriert seit: 18. Feb 2005
286 Beiträge
Delphi 2010 Enterprise
|
AW: Schnittmenge von mehreren Mengen ermitteln
20. Mär 2012, 23:36
Vielen Dank für den Kompilerschalter! Hier meine Messwerte auf einem i7 M640 @ 2,8 GHz, Windows 7 64 Bit:
{$DEFINE INT64DATA}
Code:
#61, Pascal 10000000
#39, Pascal 10000000
#51, Pascal 10000000
#59, Assem 10000000
Messung #61, Pascal #39, Pascal #51, Pascal #59, Assem
1 218 154 75 38
2 212 154 73 37
3 216 148 72 39
4 214 153 74 39
5 216 152 71 41
6 217 152 82 41
7 221 155 75 39
8 220 152 72 43
9 214 160 74 51
10 213 154 73 41
11 231 156 73 37
Mittelwert 217,455 153,636 74,000 40,545
Standardabw. 5,298 2,976 2,933 3,934
Fertig.
//{$DEFINE INT64DATA}
Code:
#61, Pascal 10000000
#39, Pascal 10000000
#51, Pascal 10000000
#59, Assem 10000000
Messung #61, Pascal #39, Pascal #51, Pascal #59, Assem
1 218 158 80 34
2 219 155 71 34
3 220 166 77 38
4 225 159 76 35
5 217 164 80 40
6 218 150 72 37
7 218 161 78 36
8 220 152 71 35
9 214 164 76 37
10 217 152 70 35
11 231 166 85 38
Mittelwert 219,727 158,818 76,000 36,273
Standardabw. 4,606 5,896 4,690 1,902
Fertig.
Damit ich es kompilieren konnte musste ich einen Schreibfehler korrigieren:
Delphi-Quellcode:
{$Else} // war: eine schließende, eckige Klammer
{$AppType Console}
{$EndIf}
Das Längesetzen im _Intersect* ASM hätte ich tun sollen. Ich weiß auch nicht, warum ich das immer unterschlagen habe.
Auch wenn es die Unit Diagnostics für FreePascal so nicht zu geben schein. Dein Ersatz ist doch angemessen und gut!
Vielleicht sollte ich noch ein Wort zu den Schleifen sagen. Ich hatte ausprobiert welche schneller sind; und für mein System waren es die Repeat-Until-Schleifen, was den Algorithmus etwas verkompliziert hat. Ich hatte auch erst While-Schleifen, weil sie einfach so viel besser zum Algortihmus passen, wie ein oberflächlicher Vergleich schon zeigt. Interessanterweise zeigen die Zeiten, dass das es dieser Geschwindigkeitsgewinn nicht überall so zu geben scheint.
"Es gibt keine schlimmere Lüge als die Wahrheit, die von denen, die sie hören, missverstanden wird."
|