Kleine Frage zum Speed...

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

LittleFurz hat geschrieben:Kann ich auch nur bestätigen. VB ist in dingen schneller als PB :|. Die Datei operationen sind verdammt langsam! Zum Glück gibt es aber die FastFile Lib ;)!
"VB ist in dingen schneller als PB."
Häh? Fehlen da nicht ein oder mehrere Wörter? Wenn ich das richtig verstehe, willst du sagen, dass PB nicht zwangsläufig schneller oder langsamer als z.B. VB ist, sondern dass solche Aussagen nur "library-spezifisch" getroffen werden können... Hmmm, eigentlich logisch, denn man kann von den "4 oder 5" PB-Entwicklern (also Fred, Andre, Fr34k, etc... das PB-Team halt) unmöglich verlangen kann, dass sie alle möglichen Einsatzmöglichkeiten von PBbis ins kleinste Detail beherrschen. Allerdings wundere ich mich, dass diese Unterschiede grade auch bei der File-Lib auftreten sollen. Ich dachteimmer, die File-lib sei mit WinAPI implementiert.... :? Aber egal, ich habe da eh (noch) zuwenig Ahnung... :wink:

cya
Pascal
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Ich denke schon das VisualBasic ziemlich laaahm ist, jedenfalls VB.NET, ich das .NET VisualStudio.
Es is meiner Meinung nach komplizierter auch (ok darum gehts nicht :oops: )
Wies mit VB6 steht, weiß ich nich.

Ich find PB is die beste und schlankste und leichteste (vielleicht auch schnellste) Sprache die ich kenne, und man kann sauuuvieeel machen (winAPI (ja freu, endlich kann ichs benutzen, hab grad die Vollversion gekriegt <) <) <) ), userlibraries, usw....)

PB Rulezzz!!! :lol: :lol: :lol: :lol: :lol:

Mfg,
AndyX
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Alles oben genannte kannst du auch mit VB, Delphi und C/C++ realisieren. Da fehlt kein Wort. Kann sein das der Satz etwas verwirrend ist da er entstand als ich gerade im Praktikum ne kleine Pause gemacht habe. PB hat seine Funktionen eigentlich nur aus Libs. Wenn du ganz pingelig bist und du keine Sätze nachbauen kannst hier nochmal der volle Satz: "PB ist in manchen Dingen langsamer als VB".

So kompliziert ist VB6 garnicht. Es ist sogar verdammt simpel. Es gleicht einem Spielzeugkasten. Mensch kopiert sich ganz einfach ein paar Buttons und Textfenster auf das Dialog und schon hat meine eine GUI. Klickt man nun auf diese Buttons fopt ein Codefenster auf und man kann gemütlich seinen Code eingeben. Ich finde das verdammt einfach.

ich bin reif für die Falle :freak:
Bild
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Ich finde das verdammt einfach.

... das würde auch PB ein ziemliches Stück nach vorne bringen.

Grüße ... Kiffi
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Ich benutze zwar gerne den VisualDesigner, da er meine arbeit beträchtlich vereinfacht, aber ich verstehe einfach nicht weshalbman das Resultat nicht von vornherein als PB-Source anstelle als pbv.Binary speichern kann. Denn es wäre sicher nicht soooo schwierig, die Fenster aus dem PB-Source zu lesen.... Wenn ich z.B. ein bestehendes GUI erweitern möchte, kann ich mit dem VisualDesigner immer meinen ganzen Source neuschreiben. Das nervt einfach! Ist Paul's "PureVision" da eigentlich besser?
Aber ansonsten finde ich es auch gut, dass man mit dem VisualDesigner nur das Interface (und noch die Eventschleife dazu) proggen kann, aber nicht ein ganzes Programm "zusammenklickt". Da kann ja nix gescheites rauskommen, das lockt nur "Möchtegernprogger" (wie mich :mrgreen: :twisted: ) an...

cya
PAscal
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo zusammen,

Erstmal Danke für die Kommentare und Anmerkungen. Tatsächlich scheint die Frage aber nicht Einfach zu sein (und wurde auch schon öfters ausführlich diskutiert).

Aus meiner Sicht kann ich folgendes zur Diskussion beitragen:

1. VB ist manchmal sauschnell. Man muss es (wie andere Programmiersprachen auch) aber erst beherrschen und die vielen Tricks kennen. Das ist in PB genauso wie in JAVA, C++ C# etc....

2. Mir ging es darum, ob ich mit PB bei pixelweiser Bildmanipulation eventuell Vorteile haben kann. Ich habe den Code bereits in VB und compiliert ist der wirklich beeindruckend schnell. Ich kopiere das Bild per API in ein Byte-Array. Dieses Bearbeite ich dann in Schleifen und mit relativ vielen If...Then Bedingungen. Da lag es nahe, dass ich unter PB mit dessen Assembler-Nähe eventuell Vorteile schinden könnte...

3. VB ist wirklich Einfach. Dennoch bin ich immer wieder Überrascht welche komplexe und gute Programme man damit erstellen kann. Es gibt wirklich nicht sehr viele Bereiche in denen VB die Füsse strecken muss. Mir fallen spontan nur ein paar ein: Treiberprogrammierung, Timing-kritisches wie zB Audio-, Video- und Midi-Bearbeitung und ein paar Nischenanwendungen (USB-Sachen etc.). Aber da hat man auch mit anderen Sprachen so seine Probleme. Unschlagbar ist es im Umgang mit Datenbanken und im Zusammenspiel mit der ganzen ActiveX-Sache (unglaublich viele Controls verfügbar). Eben ein RAD-Tool.

4. Ja, PB würde mit einem VB-Artigen Tool wirklich besser werden. Einen guten Ansatz stellt da das http://www.hellobasic.com/pbdev.htm. Ist aber noch nicht ganz ausgereift.

Grüsse,

Volker
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Dieses Bearbeite ich dann in Schleifen und mit relativ vielen If...Then
> Bedingungen.

versuche mal, das ganze so umzugestalten, daß Du Select-Case verwenden
kannst. Das sollte dann noch einmal ein wenig mehr an Speed bringen.

In PB übrigens ist das umgekehrt (Select-Case ist langsamer als If-EndIf)

Hier noch ein netter Link bzgl. Tuning von VB-Codes: http://www.xbeat.net/vbspeed/

Grüße ... Kiffi
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

@kiffi:

Danke für deine Tipps...
versuche mal, das ganze so umzugestalten, daß Du Select-Case verwenden kannst. Das sollte dann noch einmal ein wenig mehr an Speed bringen.
In PB übrigens ist das umgekehrt (Select-Case ist langsamer als If-EndIf)
Dass Select...Case in VB schneller ist, wusste ich. Dass es in PB umgekehrt ist, wusste ich nicht!

Danke für den Link, aber leider kenne ich den schon. Ist wirklich gut diese Seite. Ich verwende bereits seit über einem Jahr eine optimierte Instr()-Klasse die ich aus Code dieser Seite erstellt hab...

Volker
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Weiss denn keiner von euch, ob es einen "VisualDesigner-Ersatz" für PB gibt, der die Fenster als PB-Source lesen/importieren kann? Dass der VD PB-Source eportiert, weiss ich (sonst wäre das Programm ja sinnlos!), aber warum zum Teufel kann es das Ergebnis meiner "Arbeit" :mrgreen: nicht einfach als PB-Source SPEICHERN ??? Und mit "speichern" meine ich, dass er es später auch wieder einlesen kann!

cya
Pascal
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Beitrag von Danilo »

Kaeru Gaman hat geschrieben:meiner erfahrung nach ist PB bei schleifen und ifs (fast) immer etwas schneller,
da ein schlankerer ASM-Code erzeugt wird.
AndyX hat geschrieben:(vielleicht auch schnellste) Sprache die ich kenne
hardfalcon hat geschrieben:PB ist auf jeden Fall schneller als VB!
Das haben schon einige Leute in der Praxis getestet, so z.B.
zwischen mehreren C-Compilern, VB und PB.
PB belegte immer den letzten Platz, VC++ war meist der
Gewinner, die anderen C-Compiler und VB dazwischen.
Diskutiert wurden die Ergebnisse damals im Chat und im
englischen Forum, inkl. den entspr. Testcodes.

Ich habe keine Lust das nochmal durchzukauen - aber bitte
erzählt nicht "einfach so" das PB das Beste ist (speziell hardfalcon & Co.).
Bei solchen Tests ist es meist genau das Gegenteil.

PB könnt ihr ja trotzdem weiterhin verwenden, auch wenn es
bei einem PaarMillionen-Schleifendurchlauf mal 500ms langsamer ist.
Auch wenn ihr PB verehrt: bleibt bitte in der Realität... denn gegenüber
wissenden Menschen macht Ihr Euch mit solchen Aussagen nur lächerlich.
freedimension hat geschrieben:Mit PokeB und PeekB wird das eher nicht schneller da diese noch den Funktionsüberhang mit sich schleppen.

Besser richtig mit Pointern arbeiten
Da sage ich nur: Vorsicht, bei dieser Aussage!

Du gehst hier von Allgemeinwissen aus, da Pointer in so gut
wie jeder anderen Sprache schneller sein sollten - da die Funktionen
Peek & Poke aufgerufen werden und wieder zurückspringen.

In der Praxis sieht das bei PB allerdings etwas anders aus:
Da kann man nicht von solchem Wissen ausgehen, sondern
muß es immer testen, je nach Anwendung.
Ich hatte schon ein Beispiel, da waren Peek&Poke schneller als
Pointer, da der erzeugte Pointer-ASM-Code von PB nicht gerade
zum jubeln ist. Ich war damals auch sehr erstaunt (da eig.
theoretisch unmöglich), aber als ich mir dann den ASM-Output
angeschaut habe war es auch klar.
Damals wollte ich einen Peek/Poke-Code aus dem Forum
(glaube von Sylvia) mit Pointer optimieren - war also reiner
Zufall.

Also besser immer erst testen. Je nach Schleife und Anwendungsform
_kann_ es mit Peek/Poke auch schonmal schneller sein.
Nur mal im Kopf behalten, und wenn das nächste mal gebraucht,
dann selbst testen... ;)

Schlechter (generierter) ASM-Code ist immernoch langsamer als
guter/optimierter (generierter) ASM-Code.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten