Seite 3 von 5

Verfasst: 09.07.2005 14:43
von remi_meier
Ich würde eher sagen, dass ich es für sehr unwahrscheinlich halte, dass
Freds Compiler nicht InlineAssembler unterstützt! So gut wie jeder C-Compiler
unterstützt InlineAsm, auch PellesC.

Verfasst: 09.07.2005 14:56
von Deeem2031
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

Verfasst: 09.07.2005 16:07
von MVXA
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.

Verfasst: 09.07.2005 16:17
von Deeem2031
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)

Verfasst: 09.07.2005 16:19
von MVXA
Kann aber sein, dass beide Funktionen ähnlich aussehen :wink:.

Verfasst: 09.07.2005 16:27
von Kiffi
> 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

Verfasst: 09.07.2005 16:34
von Deeem2031
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
Klar geht das, wenn du mal ins CodeArchiv guckst wirst du auch eine Procedure von Danilo finden, die die Grenze höher schraubt.

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? ^^

Verfasst: 09.07.2005 16:38
von MVXA
Ich hätte noch gerne so eine Funktion mit eingebaut :twisted::

Code: Alles auswählen

Equal(String1.s, String2.s)
die man dann so einsetzen könnte:

Code: Alles auswählen

Test.s = "Hallo Welt!"
If Equal(Test, "Hallo Welt!")
...
EndIf

Verfasst: 09.07.2005 16:46
von Deeem2031
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.

Verfasst: 10.07.2005 19:26
von ts-soft
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 sag nur: DG_SetPBStringSize(bytes.l)
(PBOSL)