Seite 3 von 6

Verfasst: 27.07.2005 08:05
von DarkDragon
Lebostein hat geschrieben:Bei mir wird die Funktion StrLen() nicht gefunden. Woran kann das liegen?

Sollte deine Prozedur wirklich schneller sein, dann frag ich mich wieso Fred den direkten Stringvergleich (und allgemein die Stringbefehle, denn die sind extrem lahm, ich denke nur an den MID()-Befehl) nicht optimiert, wenn es noch Geschwindigkeitspotential gibt....

... das PB ein hochoptimierter Compiler sein soll, so wie auf der PB-Homepage Werbung gemacht wird, daran glaub ich schon lange nicht mehr (seit ich Geschwindigkeitsvergleiche mit Blitz, FreeBasic und VB gesehen habe). Ich hoffe nur Fred wird sich in Zukunft mehr auf den "Kern" konzentrieren als noch mehr unsinnigen Müll wie ein "CalendarGadget" zu produzieren...
Das was du nicht brauchst ist für andere doch nützlich. CalendarGadget ist kein Müll :freak: .
Und welchen user interresiert ob er nun 200ms langsamer lädt als er könnte? Das wird kein schwein bemerken.

Verfasst: 27.07.2005 08:46
von Kiffi
> Ich hoffe nur Fred wird sich in Zukunft mehr auf den "Kern" konzentrieren
> als noch mehr unsinnigen Müll wie ein "CalendarGadget" zu produzieren...

Solch 'unsinniger Müll' steigert aber die Akzeptanz von PB in der
Öffentlichkeit enorm. Das sich daraus ergebende Resultat (mehr Käufer ->
motivierterer Fred -> mehr PB) ist aus diesem Grund eben nicht unsinnig.

Was nutzt mir eine Sprache, die wenig kann, das aber unglaublich schnell?

Grüße ... Kiffi

Verfasst: 27.07.2005 08:59
von DrShrek
Kiffi hat geschrieben:... Bastard moderator from hell ...
Wußte ich es doch! Irgendwie kam mir das Gesicht doch gleich so bekannt vor. Jetzt weiss ich wieder woher. :wink:

Nun zum Thema:
Sinnvolle Features und natürlich entsprechende Performance! Beides ist wichtig!

Verfasst: 27.07.2005 11:15
von Lebostein
DarkDragon hat geschrieben:Und welchen user interresiert ob er nun 200ms langsamer lädt als er könnte? Das wird kein schwein bemerken.
Also so ein Ausspruch von einem Programmierer, ich glaubs nicht. Jede Millisekunde zählt! Hast du schon mal einen Interpreter, z.B. für eine Scriptsprache programmiert? Da werden ständig Strings miteinander verglichen und bei einem Script von 20.000 Zeilen würde, wenn man in jeder Zeile 1 ms sparen könnte, der gesamte Ablauf 20 sekunden schneller gehen. Und das merkt sogar ein Schwein :D Und schließlich ist Geschwindigkeit ein Aushängeschild für eine Programmiersprache..

Das mit dem CalendarGadget war vielleicht etwas übertrieben von mir. Aber das grenzt doch trotzdem schon fast ein eine fertig programmierte Anwendung, oder? Das ist wie mit den LEGO-Steinen. Neuerdings gibt es nur noch "Spezialbausteine", aber ganz grundlegende und einfache Basisblöcke, mit denen man mit etwas Fantasie und Geschick auch zum Ziel kommt, findet man kaum noch...

Dann soll man lieber wichtigere Dinge in PB integrieren (wie zum Beispiel FastFile-Routinen oder fehlende Mathematik-Befehle ergänzen) als solche Gadgets, die nur 1% der User nutzen und PureBasic unnötig aufblähen. Solche Extras kann man auch als Include oder UserLibrary anbieten, sogar vielleicht als offizielle Erweiterung...

Aber das wird schon wieder Off Topic, Tschuldigung. Also es ging um Geschwindigkeit.... :D

Verfasst: 27.07.2005 11:52
von DarkDragon
Lebostein hat geschrieben:
DarkDragon hat geschrieben:Und welchen user interresiert ob er nun 200ms langsamer lädt als er könnte? Das wird kein schwein bemerken.
Also so ein Ausspruch von einem Programmierer, ich glaubs nicht. Jede Millisekunde zählt! Hast du schon mal einen Interpreter, z.B. für eine Scriptsprache programmiert? Da werden ständig Strings miteinander verglichen und bei einem Script von 20.000 Zeilen würde, wenn man in jeder Zeile 1 ms sparen könnte, der gesamte Ablauf 20 sekunden schneller gehen. Und das merkt sogar ein Schwein :D Und schließlich ist Geschwindigkeit ein Aushängeschild für eine Programmiersprache..

Das mit dem CalendarGadget war vielleicht etwas übertrieben von mir. Aber das grenzt doch trotzdem schon fast ein eine fertig programmierte Anwendung, oder? Das ist wie mit den LEGO-Steinen. Neuerdings gibt es nur noch "Spezialbausteine", aber ganz grundlegende und einfache Basisblöcke, mit denen man mit etwas Fantasie und Geschick auch zum Ziel kommt, findet man kaum noch...

Dann soll man lieber wichtigere Dinge in PB integrieren (wie zum Beispiel FastFile-Routinen oder fehlende Mathematik-Befehle ergänzen) als solche Gadgets, die nur 1% der User nutzen und PureBasic unnötig aufblähen. Solche Extras kann man auch als Include oder UserLibrary anbieten, sogar vielleicht als offizielle Erweiterung...

Aber das wird schon wieder Off Topic, Tschuldigung. Also es ging um Geschwindigkeit.... :D
Ich spreche von normalen Usern, die nichts mit Programmieren zu tun haben. Keiner davon braucht nen Interpreter. Und wenn man schon was schnelles haben will, nimm gleich inline ASM.

Verfasst: 27.07.2005 15:29
von Deeem2031
Lol, da klick ich mal ein bischen voreilig auf den "Antwort erstellen"-Button und schon bricht eine neue Diskusion los :)
DarkDragon hat geschrieben:Ich spreche von normalen Usern, die nichts mit Programmieren zu tun haben. Keiner davon braucht nen Interpreter. Und wenn man schon was schnelles haben will, nimm gleich inline ASM.
Vielleicht kann nicht jeder hier ASM...? Außerdem müsste man nicht nur ASM können sondern auch wissen wie man das Prozessorfreundlich schreibt, so das auch möglichst viel Speed rauskommt. Was denke ich für einen normalen Hochsprachen-Progger zu viel ist...
Lebostein hat geschrieben:Bei mir wird die Funktion StrLen() nicht gefunden. Woran kann das liegen?
StrLen() ist aus meiner PHPString-Library, kannst du aber mit Len() ersetzen (auch wenns nicht so schnell ist ;) )

Verfasst: 31.07.2005 15:09
von Deeem2031
FERTIG :)

Endlich hab ich die StringExtension-Lib fertig. Die ist auch nicht wie die anderen nur optimiert, sondern völlig neu geschrieben.

Hier gibts die: www.deeem2031.de/StringExtension

Und dazu eine Liste der Geschwindigkeiten (Befehl/Meine Lib/PBs Lib):

Code: Alles auswählen

;(@AMD Athlon XP 2000+)

  ;Bin(10) ;                                 570/10000000   980/10000000
  ;StrF(990.10) ;                          27500/10000000 33100/10000000
  ;StrF(990.10,2) ;                        27500/10000000 34000/10000000
  ;RSet("abcde",10) ;                        344/10000000  1000/10000000
  ;RSet("abcde",10,"z") ;                    359/10000000  1000/10000000
  ;StringField("abada",20,"a") ;             250/10000000   700/10000000
  ;ReplaceString("ababc","ab","x") ;         440/10000000  3000/10000000
  ;ReplaceString("abABc","ab","x",0) ;       440/10000000  3200/10000000
  ;ReplaceString("abABc","ab","x",1) ;       730/10000000  2800/10000000
  ;ReplaceString("abABc","ab","x",0,2) ;     440/10000000  3300/10000000
  ;ReplaceString("abABc","ab","x",1,2) ;     840/10000000  2800/10000000
  ;ReplaceString("abABc","ab","xx",0|2,2) ;  340/10000000  3350/10000000
  ;ReplaceString("abABc","ab","xx",1|2,2) ;  690/10000000  2250/10000000
  ;RemoveString("abABc","ab") ;              640/10000000  5100/10000000
  ;RemoveString("abABc","ab",1) ;            640/10000000  4500/10000000
  ;CountString("ababc","ab") ;               344/10000000   800/10000000
  ;LSet("abcde",10) ;                        297/10000000  1400/10000000
  ;LSet("abcde",10,"z") ;                    330/10000000  1200/10000000
  ;ValF("12345.00") ;                      10500/10000000 10500/10000000
Feedback erwünscht ;)

Verfasst: 31.07.2005 15:58
von hardfalcon
Ich ahbs noch nicht getestet, aber es hört sich interessant an. Sollte auf jeden Fall in PB integriert werden! <)

Verfasst: 02.08.2005 01:05
von Deeem2031
Und jetzt schon jemand getestet?
Bin grad an LinkedListExtension, aber Fred hat da irgendwie Mist gebaut. funktioniert jedenfalls nicht so gut wie bei den anderen Libs..

Verfasst: 02.08.2005 01:25
von ts-soft
Ich denke mal, das nicht jeder bereit ist die Original-Libs zu überschreiben. Wäre es nicht möglich die Libs mit einem Präfix auszustatten, solange Fred sie nicht offiziel übernommen hat. Also z.B. StringExtionsD als Libnamen und den Funktionen einfach ein D voranstellen. Hab ja schon ein Ordner PB3.93 und eine PB3.94beta aber noch einen PB3.93deeem wollte ich nicht anlegen :) Wenns technisch unproblematisch ist würde es die Testwut bestimmt erhöhen :wink: