Wie Arbeitet CompareMemory() ??
- remi_meier
- Beiträge: 1078
- Registriert: 29.08.2004 20:11
- Wohnort: Schweiz
Nagut, wenn das so ist war die Diskusion sinnlos 
Die Memory-Lib birgt aber noch mehr Möglichkeiten, z.B. CopyMemory: von 520 ms auf 380 ms (10000000*50)
Link, wie immer: www.deeem2031.de/Memory

Die Memory-Lib birgt aber noch mehr Möglichkeiten, z.B. CopyMemory: von 520 ms auf 380 ms (10000000*50)

Link, wie immer: www.deeem2031.de/Memory

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Ich bin auch dafür, dass zumindest die Librarys Open Source werden. Dann kann man nicht nur alle Libs zu ASM optimieren sondern man kann auch die Librarys schneller auf andere Betriebsysteme portieren.
Achja:
Das deine Prozedur schneller ist als der normale Stringvergleich in PB habe ich mir schon gedacht. Fred wird dort sicher die selbe Funktion wie CompareMemory nutzen. Deswegen ist diese noch etwas schneller. Wenn du deine Procedure noch dazu optimierst Strings zu vergleichen (keine Länge mehr angeben sondern auf 0 byte überprüfen) dürften die Stringvergleiche vielleicht nochmal etwas mehr an Speed gewinnen.
Achja:
Das deine Prozedur schneller ist als der normale Stringvergleich in PB habe ich mir schon gedacht. Fred wird dort sicher die selbe Funktion wie CompareMemory nutzen. Deswegen ist diese noch etwas schneller. Wenn du deine Procedure noch dazu optimierst Strings zu vergleichen (keine Länge mehr angeben sondern auf 0 byte überprüfen) dürften die Stringvergleiche vielleicht nochmal etwas mehr an Speed gewinnen.
Fred benutzt zum StringVergleich eine "SYS_" Procedure die AFAIK im Compiler integriert ist, es wär auch Schwachsinn für Stringvergleiche CompareMemory zu benutzen, weil es viel langsamer sein würde. (normalerweise)

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
> Die Memory-Lib birgt aber noch mehr Möglichkeiten
ist zwar jetzt ein wenig Off-Topic, weil's nichts mit der Memory-Lib zu tun hat,
aber hier mal eine vielleicht naive Frage: Könnte man die String-Lib so
manipulieren, dass sie mit Strings > 64 kB zurechtkommen würde?
Das wäre ein echter Knaller!
Grüße ... Kiffi
ist zwar jetzt ein wenig Off-Topic, weil's nichts mit der Memory-Lib zu tun hat,
aber hier mal eine vielleicht naive Frage: Könnte man die String-Lib so
manipulieren, dass sie mit Strings > 64 kB zurechtkommen würde?
Das wäre ein echter Knaller!
Grüße ... Kiffi
a²+b²=mc²
Klar geht das, wenn du mal ins CodeArchiv guckst wirst du auch eine Procedure von Danilo finden, die die Grenze höher schraubt.Kiffi hat geschrieben:> Die Memory-Lib birgt aber noch mehr Möglichkeiten
ist zwar jetzt ein wenig Off-Topic, weil's nichts mit der Memory-Lib zu tun hat,
aber hier mal eine vielleicht naive Frage: Könnte man die String-Lib so
manipulieren, dass sie mit Strings > 64 kB zurechtkommen würde?
Das wäre ein echter Knaller!
Grüße ... Kiffi
Ich bin jetzt übrigens fertig mit dem optimieren der ganzen Library. Hab allerdings nicht alles getestet, besonders CopyMemoryString() könnte noch Fehler beinhalten, weil ich die Proc praktisch neu geschrieben habe.
Hoffe aber ich hab alles richtig gemacht

Link, wie immer: www.deeem2031.de/Memory
PS. Der Thread passt super in den Anfängerbereich, findet ihr nicht auch? ^^

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Ich hätte noch gerne so eine Funktion mit eingebaut
:
die man dann so einsetzen könnte:

Code: Alles auswählen
Equal(String1.s, String2.s)
Code: Alles auswählen
Test.s = "Hallo Welt!"
If Equal(Test, "Hallo Welt!")
...
EndIf
Ich glaub das passt aber nicht in die Memory Lib, das würde eher zur String-Library passen. Aber glaub nich das ich die jetzt auchnoch optimiere 
Aber ich kann dir meinetwegen eine extra Library dafür basteln...
[EDIT] Es gibt doch CompareMemoryString() - das ist zwar nur eine Weiterleitung auf _strcmp@8 aus der API, aber das dürfte auch relativ schnell sein.

Aber ich kann dir meinetwegen eine extra Library dafür basteln...
[EDIT] Es gibt doch CompareMemoryString() - das ist zwar nur eine Weiterleitung auf _strcmp@8 aus der API, aber das dürfte auch relativ schnell sein.

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
- 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
Ich sag nur: DG_SetPBStringSize(bytes.l)Kiffi hat geschrieben:> Die Memory-Lib birgt aber noch mehr Möglichkeiten
ist zwar jetzt ein wenig Off-Topic, weil's nichts mit der Memory-Lib zu tun hat,
aber hier mal eine vielleicht naive Frage: Könnte man die String-Lib so
manipulieren, dass sie mit Strings > 64 kB zurechtkommen würde?
Das wäre ein echter Knaller!
Grüße ... Kiffi
(PBOSL)
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
