Vergleich der Schnelligkeit normale und Pointer-Version

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von 7x7 »

ts-soft hat geschrieben:ASM wird bei diesen Beispielen wohl eher gar nichts bringen, wie auch :mrgreen:

Solange nur der Speicher manipuliert wird, und nichts berechnet, hat ASM keinerlei Einfluss.
Wie bitte???
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von ts-soft »

7x7 hat geschrieben:Wie bitte???
Mit ASM kann man auch nicht schneller in den Speicher schreiben, als mit Pointern.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von 7x7 »

ts-soft hat geschrieben:Mit ASM kann man auch nicht schneller in den Speicher schreiben, als mit Pointern.
Mit Verlaub: Das ist schlichter Unfug! Lassen wir's gut sein.
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von ts-soft »

Code: Alles auswählen

*p\i = 100
Wie willst Du das in ASM schneller machen? Das ist in ASM ein MOV und in PB auch.
Auch die Addition von + SizeOf(Character) kann man nicht beschleunigen, das ist keine Runtime-Funktion, sondern
SizeOf wird bereits vom Compiler ersetzt.
Dann hätten wir noch die Schleife, die aber IMHO kein Potential hat, erheblich durch ASM beschleunigt zu werden.

Aber warum erzähle ich Dir das, Du willst es sowieso nicht wahr haben :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von STARGÅTE »

Naja, *p\i = 100 kann man sicher nicht mit ASM beschleunigen.
Aber weil du ja MOV angesprochen hast, so kann man sehr wohl mit ASM so manchen Code beschleunigen, indem man ein paar MOVs einspart und möglichst viel in den Registern lässt, was PB ja nicht immer optimiert.
So kann man die Addition von *c + SizeOf(Character) schon beschleunigen, indem kan *c nur einmal in einem Register lädt und diesen dann immer INC macht (sofern Ascii-Mode), satt immer MOV in Register, +1, MOV in Variable.
Aber ich glaube jetzt entfernen wir uns noch mehr.
Ich verstehe schon seit Seite 1 nicht, waum wir/ihr hier ReplaceString beschleunigen wollt ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von dysti »

Mit Verlaub: Das ist schlichter Unfug! Lassen wir's gut sein.
Das meine ich auch.
Im Anfängerforum mit ASM anzukommen!!!
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von ts-soft »

dysti hat geschrieben:Das meine ich auch.
Im Anfängerforum mit ASM anzukommen!!!
Das gilt aber auch für Pointer :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
7x7
Beiträge: 591
Registriert: 14.08.2007 15:41
Computerausstattung: ganz toll
Wohnort: Lelbach

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von 7x7 »

ts-soft hat geschrieben:Das gilt aber auch für Pointer :mrgreen:
Mist...das war MEIN Gedanke <)
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Vergleich der Schnelligkeit normale und Pointer-Version

Beitrag von ts-soft »

Vorraussetzungen für das Arbeiten mit Pointern.

1. Fundiertes Wissen über Strukturen
2. Erfahrungen im Umgang mit Memory, Poke, Peek usw.
3. Stringverwaltung von PB begreifen.
4. Tutorial von Freak, auf purearea.net zu finden, studiert haben.

Wenn man dann so weit ist, findet man die restlichen Infos hier im Forum.
Immer dran denken, falsch genutzte Pointer können das System zum
Absturz bringen! Also immer mit Debugger testen und andere Programme vorher
schliessen.

Wenn man dann Pointer einsetzt, sich immer Fragen, ist das wirklich nötig.
Höhere Geschwindigkeit macht sich nur in bestimmten Fällen wirklich bemerkbar.
Verschlechtert die Lesbarkeit des Codes und erhöht die Gefahr von schwer
auffindbaren Fehlern.

Damit sollte alles zu dem Thema gesagt sein.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten