Kleine Frage zum Speed...

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Kleine Frage zum Speed...

Beitrag von Kukulkan »

Hallo,

Ich habe ein Programm in VB6 das Bilder von einer Webcam einliest und in Echtzeit verarbeitet. Dabei wandle ich die Bitmap in ein Byte-Array (R G B R G B R G B etc. per GetBitmapBits aus der gdi32.dll) und bearbeite mit Variablen und Pufferarrays. Dabei arbeite ich mit einigen Schleifen (For Next) und recht häufig mit vielen If Then Else Abfragen.

Ich frage mich nun, ob ich einen wirklichen Vorteil durch die Benutzung von PureBasic erreichen kann oder ob in diesem Bereich nur wenig zu holen ist. Hat da jemand Erfahrung? Ich weiss auch, dass durch optimale Programmierung viel zu holen ist. Ich frage mich nur, ob PB Schleifen und Arrays schneller oder langsamer als PB verarbeitet. Vor allem, ob sich das Signifikant auswirkt.

Wenn jemand Infos dazu hat, wäre das super. Wenn nicht, werde ich ein kleines Testprojekt aufsetzen müssen.

Grüsse,

Volker
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

meiner erfahrung nach ist PB bei schleifen und ifs (fast) immer etwas schneller,
da ein schlankerer ASM-Code erzeugt wird.

auch bei der Array-bearbeitung sollte es leichte vorteile bieten,
die du durch die verwendung von pointern ggf. noch steigern kannst.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an! Wenn du ASM kannst, kannst du ausserdem den ASM-code des PB-Programms manuell tunen. Aber ich fürchte, dukannst kein ASM... Tstststs... Unverzeihlich! /:-> Aber durch einen völlig bedeutungslosen Zufall kann ich auch kein ASM. Dieser völlig bedeutungslose Zufall wird auch oft als "Faulheit" umschrieben... :mrgreen:
Aber back to topic: Ausserdem braucht VB noch eine spezielle Runtime (auch wenn die heutzutage FAST (NICHT im englischen Sinn! :twisted: ) auf jedem PC ist...)

cya
Pascal
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

wenn er kein assembly kann ist das doch für ihn vollkommen belanglos. die größe der executable ist kein indiz für die ausführungsgeschwindigkeit. größere executables können sogar schneller sein.

es würde mich wundern wenn pb kompilate wirklich generell schneller sind, denn soweit ich bisher gehört habe optimiert purebasic fast garnicht, während der vb kompiler definitiv ein optimierender kompiler ist.

geschwindigkeitsvergleiche zwischen kompilern die nicht genau die selbe sprache implementieren sind aber ohnehin unsinn.
beide dürften aber schnell genug sein für deine zwecke, weshalb es nur darauf hinausläuft, in was du lieber programmierst.
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

hardfalcon hat geschrieben:PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an!
Ohne Worte.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo und Danke für die Antworten.
PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an!
Naja, das wird wohl kaum ein Indiz für die Geschwindigkeit der Abarbeitung sein.

Dennoch habe ich jetzt zwei Aussagen:
meiner erfahrung nach ist PB bei schleifen und ifs (fast) immer etwas schneller, da ein schlankerer ASM-Code erzeugt wird.
es würde mich wundern wenn pb kompilate wirklich generell schneller sind, denn soweit ich bisher gehört habe optimiert purebasic fast garnicht, während der vb kompiler definitiv ein optimierender kompiler ist.
Ich werde das Array auch durch direkten Speicherzugriff ersetzen (PokeB und PeekB). Dann sollte es wohl wirklich schneller sein, oder?

Grüsse,

Volker
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Mit PokeB und PeekB wird das eher nicht schneller da diese noch den Funktionsüberhang mit sich schleppen.

Besser richtig mit Pointern arbeiten

Code: Alles auswählen

a$ = "hallo"
*mybyte.BYTE = @a$
Debug *mybyte\b
*mybyte + 1
Debug *mybyte\b
*mybyte + 1
Debug *mybyte\b
...
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Hallo Volker,
Volker Schmid hat geschrieben:
PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an!
Naja, das wird wohl kaum ein Indiz für die Geschwindigkeit der Abarbeitung sein.
jaja, dieser "PB ist schneller als VB"-Mythos, der immer wieder von
Möchtegern-Experten in die Welt gesetzt wird, ist nicht totzukriegen. /:->
Kiffi hat geschrieben:Regelmässig wird hier die pauschale und nicht überdachte Behauptung
aufgestellt, dass VB generell langsamer als PB ist. Das ist ein
weitverbreitetes und nicht haltbares Gerücht. Ich sehe es auch nicht als
meine Aufgabe, jedes mal, wenn irgendwer so was behauptet, einen
Gegenbeweis anzutreten.

> belegt das was ihr schriebt doch mal mit 2 beispiel exe'n

nun gut, hier ausnahmsweise ein Beispiel. Es geht speziell um meinen
ersten Beitrag und reines PB (also ohne Userlibraries) und reines VB

http://www.robsite.de/php/pureboard-arc ... php?t=3563

Wie gesagt: Ohne die FastFile-Libs von Rings, denn ich verwende in VB ja
auch keine third-party-tools.
Grüße ... Kiffi
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

Ja, ich gebs ja zu, ich wollte bloss "mitreden"... :oops:
Spock hat geschrieben:Bitte erinnern Sie mich daran, Ihnen die Nutzlosigkeit des menschlischen Egos zu erklären!
:mrgreen:

Ich habe allerdings schon öfters gehért, dass VB nicht die Schnellste sprache ist!

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

Beitrag von MVXA »

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 ;)!
Bild
Antworten