Seite 2 von 4
Verfasst: 13.05.2005 15:48
von Deeem2031
Was denn?
AddCSlashes.s(String.s,Charlist.s) ?
stripcslashes() kommt ja noch...
Verfasst: 13.05.2005 15:49
von Leo
Er meint imo, dass PB's Len schneller sein soll, als dein StrLen.
Verfasst: 13.05.2005 15:53
von Deeem2031
Und warum soll das dann mehr Sinn ergeben?
Ich glaub kaum das Fred Zeit dazu hat sich jede Procedure stundenlang anzugucken und nach Möglichkeiten sucht die die Proc ein bisl schneller macht. Zudem ist StrLen() um einiges größer als Len(), es ist also nur schneller, nicht kleiner.
Verfasst: 13.05.2005 16:05
von PureFan
Jeder weiss, das Fred nicht viel Wert auf Optimierung gelegt hat... aber diese Befehle sind nun mal Hand-Optimiert und extra so gecoded, das damit eine maximale Geschwindigkeit erreicht wird.. also meiner Meinung ergibt das Sinn!
[EDIT: Nochmal zur Erklärung, Fred hat damals fast alles mit den Standart C-Befehlen erstellt, um es später auch auf MAC etc konvertieren zu können. Und der C-Compiler ist leider nicht ganz so gut wie handoptimiertes Assembler (hier nur halb so schnell)]
Aber warten wir einfach mal ab, denn wie ich weiss plant Fred ja sowieso schon Threadsichere Strings und hat vor in diesem Zug auch andere String-Funktionen zu optimieren..
Verfasst: 13.05.2005 16:36
von bobobo
Deeem2031 hat geschrieben:Und warum soll das dann mehr Sinn ergeben?
Ich glaub kaum das Fred Zeit dazu hat sich jede Procedure stundenlang anzugucken und nach Möglichkeiten sucht die die Proc ein bisl schneller macht. Zudem ist StrLen() um einiges größer als Len(), es ist also nur schneller, nicht kleiner.
ne ne .. alles falsch .. ich meinte dass man eigentlich mal ne PHP-Klasse schreiben müsste die die unsägliche PHP-Syntax bereinigt ..
Nichts brauch ich mehr als ne Dokumentation wenn ich mit PHP rummachen muss. Jeder Befehl heisst irgendwie anders und kommt dazu auch noch in drei verschiedenen Versionen vor ..
Der PHP->PB Ansatz ist schon gut

Version 0.22
Verfasst: 14.05.2005 23:33
von Deeem2031
Version 0.22:
Neue Befehle:
AddSlashes.s(String.s) - Schützt die Zeichen " ' \ mit einem Backslash (\) (Das Nullbyte zu schützen würde wohl kaum Sinn machen)
StrStr.s(String.s, SuchString.s) - Ähnlich wie StrPos, nur das nicht die Position sondern der String ab der Position zurückgegeben wird.
Optimiert:
StrTok; SubStr
Leider ist uns vorhin aufgefallen das alle Procs die Strings zurückgeben buggy sind, nämlich wenn man einen String an das Ergebniss anhängen will, aber das wird natürlich auch noch gefixt.
Verfasst: 15.05.2005 03:57
von Deeem2031
Hab jetzt alle Procs außer StrStr() (is nich so einfach :\ ) gefixt.
Verfasst: 15.05.2005 06:37
von DarkDragon
PureFan hat geschrieben:Jeder weiss, das Fred nicht viel Wert auf Optimierung gelegt hat... aber diese Befehle sind nun mal Hand-Optimiert und extra so gecoded, das damit eine maximale Geschwindigkeit erreicht wird.. also meiner Meinung ergibt das Sinn!


Ich merke es gerade an meinem MeshEditor: Ich compilier ihn ohne den Optimizer(danke remi!), dann seh ich den Courser flackern und alles ist ein wenig hinterher(kein wunder, auf nem Laptop). Wenn ich ihn mit dem Optimizer Optimieren lasse, geht alles wunderbar, der Courser flackert höchstens noch in 3 Sekunden ein mal(sichtbarer Weise) und man kann wunderbar die Meshes bearbeiten/erstellen/anschauen in 4 verschiedenen Sichtweisen. Wie's bei 20 Viewports aussieht weiß ich nicht

aber wer nutzt soviele?
Ich werd mir die PHPString Lib auf jeden Fall im Hinterkopf runterladen

.
Version 0.23
Verfasst: 15.05.2005 16:17
von Deeem2031
Version 0.23:
Neue Befehle:
UCFirst.s(String.s) - Ändert den ersten Buchstaben zu einem Großbuchstaben.
Repariert:
StrStr.s()
Jetzt müssten also alle Stringprocs richtig laufen!
Re: Version 0.23
Verfasst: 16.05.2005 15:06
von Deeem2031
Version 0.23f:
Neue Befehle:
-
Repariert:
UCFirst.s(String.s) - War noch leicht buggy, der Orginalstring wurde nämlich geändert. (UCFirst("a"):Debug "a"; -> A)
Sonstiges:
Count_Chars() und Count_CharsS() heißen jetzt CountChars() und CountCharsS(), weil der PBCompiler mit den Unterstrichen nicht umgehen kann.
Außerdem sind in der Lib jetzt FreeArray() und CountArray() enthalten, die Procs brauch ich nämlich später zum zurückgeben des Arrays von Explode(). Explode() ist zwar auch schon enthalten aber nicht zu gebrauchen, war nur zu faul die Proc wieder rauszunehmen, ist ja auch eigentlich nur ein Bugfix für UCFirst().