Kurios-Inkrement Funktion in C als Library schneller? Nein!
@Falko: Wieso speicherst du die Zeit in floats 
Zuletzt geändert von Deeem2031 am 31.10.2004 02:23, insgesamt 1-mal geändert.

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
- Falko
- Admin
- Beiträge: 3535
- Registriert: 29.08.2004 11:27
- Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit) - Kontaktdaten:
-
Tibor
- Beiträge: 42
- Registriert: 29.08.2004 03:25
- Wohnort: Mittelerde, südlich der großen Grasplantagen
Jetzt der beweis, ein guter Compiler ist die halbe Miete!
Der PB Compiler optimiert nichts und deswegen ist der von PB erzeugte ASM Code langsamer.
Ich zeige ich euch mal wie C das macht.
Der PB Compiler optimiert nichts und deswegen ist der von PB erzeugte ASM Code langsamer.
Ich zeige ich euch mal wie C das macht.
Code: Alles auswählen
test.l
!mov ebx,dword [v_test]
For x = 1 To 100000000
!inc ebx
Next
!mov dword [v_test],ebx-
Tibor
- Beiträge: 42
- Registriert: 29.08.2004 03:25
- Wohnort: Mittelerde, südlich der großen Grasplantagen
Die Schleife ist doch scheiß egal!
Es geht darum das die Variable nicht immer wieder in und aus einem Register geschrieben wird.
PB macht das so:
Edit:
Mist du hast irgendwie Recht.
Während meines Optimierungswahn habe ich den original Code vergessen.
Es geht darum das die Variable nicht immer wieder in und aus einem Register geschrieben wird.
PB macht das so:
Code: Alles auswählen
test.l
For x = 1 To 100000000
!mov eax,dword [v_test]
!inc eax
!mov dword [v_test],eax
NextMist du hast irgendwie Recht.
Während meines Optimierungswahn habe ich den original Code vergessen.
PB übersetzt das außerdem, so wie freak das schon gesagt hat, zu "INC dword [v_test]" und nicht zu "mov eax,dword [v_test]: inc eax: mov dword [v_test],eax".Tibor hat geschrieben:Die Schleife ist doch scheiß egal!
Es geht darum das die Variable nicht immer wieder in und aus einem Register geschrieben wird.
PB macht das so:Edit:Code: Alles auswählen
test.l For x = 1 To 100000000 !mov eax,dword [v_test] !inc eax !mov dword [v_test],eax Next
Mist du hast irgendwie Recht.
Während meines Optimierungswahn habe ich den original Code vergessen.

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Das ist kein C-Code. Schon bemerkt ?Tibor hat geschrieben:Jetzt der beweis, ein guter Compiler ist die halbe Miete!
Der PB Compiler optimiert nichts und deswegen ist der von PB erzeugte ASM Code langsamer.
Ich zeige ich euch mal wie C das macht.Code: Alles auswählen
test.l !mov ebx,dword [v_test] For x = 1 To 100000000 !inc ebx Next !mov dword [v_test],ebx
Ich glaube niemand hat sich hier die Mühe gemacht den Assembler-Output
von PB sich anzugucken. Naja ich werd mich jetzt mal "opfern".
Code: Alles auswählen
; test.l
; For x = 1 To 100000000
MOV dword [v_x],1
_For1:
MOV eax,100000000
CMP eax,dword [v_x]
JL _Next2
; test + 1
INC dword [v_test]
; Next
_NextContinue2:
INC dword [v_x]
JMP _For1
_Next2:PB optimiert test + 1 nicht zu INC dword [v_test], der sollte sich einfach
zurückhalten und Fahrrad fahren gehen oder um es mit Dieter Nuhr zu
sagen: "Wenn man keine Ahnung hat, einfach mal Fresse halten!"
Edit: Mist, zu spät. *Deeemhau*
*Oberangebermodusan* http://www.robsite.de/php/pureboard-arc ... php?t=3675
Da steht im 1.Posting was zu Nic und Dec. Die weiteren Postings sind auch ganz interressant.
Haben wohl nicht all zu viele gelesen.
Edit2: Entschuldigung angenommen
Zuletzt geändert von Kristel am 31.10.2004 14:07, insgesamt 4-mal geändert.
