Verfasst: 06.12.2006 18:58
Hätte da mal so ne Idee, wie wäre es, wenn man das
xor eax, eax
durch ein
and eax, 0x00
ersetzt? Testen kann man es ja mal
.
xor eax, eax
durch ein
and eax, 0x00
ersetzt? Testen kann man es ja mal

Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Als ich mich noch mit OS-Proggen befasst habe, hieß es immer, dass Ersteres das beste überhaupt sei, da es nur 1 Byte Opcode benötigt. Ob es schneller ist, weiß ich nicht, ich glaube aber nicht, dass man da noch viel Optimieren kann, schließlich ist EAX ja schon mit der schnellste Speicher, der von der CPU angesprochen werden kann, vlt holt man so ein paar Nanosekunden raus, mehr nicht.MVXA hat geschrieben:Hätte da mal so ne Idee, wie wäre es, wenn man dasdurch einCode: Alles auswählen
xor eax, eax
Code: Alles auswählen
and eax, 0x00
und ohne !mov eax,7:Debug Output hat geschrieben:Erster Versuch:
---CODE Start---
For i=0 To 10 000 000
!mov eax,7
!xor eax,eax
Next
----CODE End----
Needed time: 741 ms
----------------
Zweiter Versuch:
---CODE Start---
For i=0 To 10 000 000
!mov eax,7
!and eax,0
Next
----CODE End----
Needed time: 781 ms
Ein $00 hingegen führt dazu, dass ohne !mov eax,7 eine weitere Verlangsamung um 10 ms stattfindet, mit !mov eax,7 jedoch... Sieh selbst:Debug Output hat geschrieben:Erster Versuch:
---CODE Start---
For i=0 To 10 000 000
!xor eax,eax
Next
----CODE End----
Needed time: 731 ms
----------------
Zweiter Versuch:
---CODE Start---
For i=0 To 10 000 000
!and eax,0
Next
----CODE End----
Needed time: 741 ms
Debug Output hat geschrieben:Erster Versuch:
---CODE Start---
For i=0 To 100 000 000
!mov eax,7
!xor eax,eax
Next
----CODE End----
Needed time: 7591 ms
----------------
Zweiter Versuch:
---CODE Start---
For i=0 To 100 000 000
!mov eax,7
!and eax,$00
Next
----CODE End----
Needed time: 7390 ms
Nö, in keinster WeiseNTQ hat geschrieben:Achso, ich würde vorschlagen, den größten Teil dieses Threads
auszulagern. Hat jemand was dagegen?
<offtopic>MVXA hat geschrieben:Hab aber mal wo gelesen, dass die and logik viel einfacher für den Prozessor
als eine xor sein soll.
ICE_GetFPS.asm
The pipe has been ended
Unbehandelte Ausnahme: System.FormatException: Die Eingabezeichenfolge hat das falsche Format.
bei System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Bollean parseDecimal)
bei System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
bei System.Int32.Parse(String s)
bei Val(String val)
bei Main()