Seite 1 von 2
Kleine Frage zum Speed...
Verfasst: 17.01.2005 13:15
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
Verfasst: 17.01.2005 19:22
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.
Verfasst: 17.01.2005 21:02
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...

Aber back to topic: Ausserdem braucht VB noch eine spezielle Runtime (auch wenn die heutzutage FAST (NICHT im englischen Sinn!

) auf jedem PC ist...)
cya
Pascal
Verfasst: 17.01.2005 21:18
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.
Verfasst: 17.01.2005 22:24
von Lars
hardfalcon hat geschrieben:PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an!
Ohne Worte.
Verfasst: 18.01.2005 09:03
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
Verfasst: 18.01.2005 09:29
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
...
Verfasst: 18.01.2005 09:45
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
Verfasst: 19.01.2005 17:09
von hardfalcon
Ja, ich gebs ja zu, ich wollte bloss "mitreden"...
Spock hat geschrieben:Bitte erinnern Sie mich daran, Ihnen die Nutzlosigkeit des menschlischen Egos zu erklären!
Ich habe allerdings schon öfters gehért, dass VB nicht die Schnellste sprache ist!
cya
Pascal
Verfasst: 19.01.2005 17:35
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

!