Geschwindigkeitstest von ASM-Optimierungen

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Geschwindigkeitstest von ASM-Optimierungen

Beitrag von Deeem2031 »

Da ich noch weiter nach Optimierungen für meinen Optimierer suche und ich gestern einen Tip bekommen habe, habe ich diesen auch genauer untersucht. Nur war das Ergebnis leider nicht sehr eindeutig. Soll heißen bei mir entsprach alles den Erwartungen, bei einem Freund trat aber genau das Gegenteil ein und unter bestimmten Umständen wars dann wieder ganz anders. Desswegen würde ich gerne zu ein paar mehr Ergebnisse kommen um dann einschätzen zu können ob es sinnvoll ist die Optimierungen einzubauen.

Test1:

Code: Alles auswählen

SetThreadPriority_(GetCurrentThread_(),#THREAD_PRIORITY_TIME_CRITICAL)
#r = 500000000

Time0 = ElapsedMilliseconds()
For i = 0 To #r-1
  !XOR EAX, EAX
  !MOV AL, 3
  !MOV EBX, EAX   
Next
Time0 = ElapsedMilliseconds() - Time0
 
Time1 = ElapsedMilliseconds()
For i = 0 To #r-1
  !MOV AL, 3
  !MOV EBX, EAX   
Next
Time1 = ElapsedMilliseconds() - Time1
 
MessageRequester("",Str(time0)+" "+Str(time1))
Test2:

Code: Alles auswählen

tmp1 = 0
tmp2 = 0
tmp3 = 0

SetThreadPriority_(GetCurrentThread_(),#THREAD_PRIORITY_TIME_CRITICAL)
#r = 500000000

Time0 = ElapsedMilliseconds()
For i = 0 To #r-1
  !MOV EBX, [v_tmp1]     ; 1 uop  (D0)
  !INC EBX             ; 1 uop  (D1)
  !ADD EAX, [v_tmp2]     ; 2 uops (D0)
  !ADD [v_tmp3], EAX     ; 4 uops (D0)
Next
Time0 = ElapsedMilliseconds() - Time0
 
Time1 = ElapsedMilliseconds()
For i = 0 To #r-1
  !ADD EAX, [v_tmp2]     ; 2 uops (D0)
  !MOV EBX, [v_tmp1]     ; 1 uop  (D1)
  !INC EBX             ; 1 uop  (D2)
  !ADD [v_tmp3], EAX     ; 4 uops (D0)
Next
Time1 = ElapsedMilliseconds() - Time1
 
MessageRequester("",Str(time0)+" "+Str(time1))
Interessant wäre dabei: CPU, Optimierer (wenn ja welche) und die Zeit natürlich


Meine Ergebnisse:
-AMD Athlon XP 2000+
-meinen und Remis Optimierer
-Test1: 1600 1750
-Test2: 1765 1328
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
SoS
Beiträge: 340
Registriert: 29.08.2004 09:31
Kontaktdaten:

Beitrag von SoS »

CPU: P4 2.6 Ghz mit HT

Optimierer: keine

Test 1: 1172 781

Test 2: 1578 1563
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Erster Test : 2133 1693
Zweiter Test: 1953 2033


System:
Pentium M 745 (1.8GHz, 400MHz FSB, 2MB L2 Cache)
512 MB DDR
WIN XP SP2
Keine Optimierer.
Optimismus ist ein Mangel an Information.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Erster Test: 20969 20906
Zweiter Test: 21266 21875
System: profil
keine optimierung.
Bild
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

Krasse Unterschiede :?
Optimismus ist ein Mangel an Information.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Optimierer: keiner
Test 1a: 2053 1742
Test 1b: 2013 1713
Test 2a: 2163 2133
Test 2b: 2123 2103
System: Profil
Nero
Beiträge: 285
Registriert: 08.11.2004 01:50

Beitrag von Nero »

Mit DB
T1: 14016 14516
T2: 14266 14031

[Edit]

Ups hatte vergessen den Debuger auszumachen

Ohne DB
T1: 1219 1000
T2: 1219 1219

System: Profil
Opti: keiner
Zuletzt geändert von Nero am 23.11.2005 00:43, insgesamt 2-mal geändert.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

; beide optimizer
1203 1391
1140 1047

;mit deeems optimizer
1203 1406
1156 1063

;mit remis optimizer
953 1250
1172 1187

; ohne optimizer
1031 1359
1187 1188

Processor: AMD Athlon(tm) XP 3000+, MMX, 3DNow, ~2.2GHz
Memory: 1024MB RAM
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Optimierer: nix

Debugger: ein
Test 1: 11469 11969
Test 2: 11704 13406

Debugger: aus
Test 1: 1406 1536
Test 2: 1328 1406

Rechner: siehe Profil


Ähm, warum dauert denn das bei mir so lange? Bei anderen scheint es ja nicht so lange zu dauern.

Edit:
Ah, danke Hallodri. Den Debugger hatte ich tatsächlich an.
Zuletzt geändert von Laurin am 20.11.2005 22:54, insgesamt 1-mal geändert.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Deine Werte erreiche ich auch mit Debugger.
Antworten