Kleine Frage zum Speed...
Kleine Frage zum Speed...
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
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
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.
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.
Der Weise weiß, dass er ein Narr ist.
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
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
Aber back to topic: Ausserdem braucht VB noch eine spezielle Runtime (auch wenn die heutzutage FAST (NICHT im englischen Sinn!
cya
Pascal
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.
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.
Hallo und Danke für die Antworten.
Dennoch habe ich jetzt zwei Aussagen:
Grüsse,
Volker
Naja, das wird wohl kaum ein Indiz für die Geschwindigkeit der Abarbeitung sein.PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an!
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.
Ich werde das Array auch durch direkten Speicherzugriff ersetzen (PokeB und PeekB). Dann sollte es wohl wirklich schneller sein, oder?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.
Grüsse,
Volker
- freedimension
- Admin
- Beiträge: 1987
- Registriert: 08.09.2004 13:19
- Wohnort: Ludwigsburg
- Kontaktdaten:
Mit PokeB und PeekB wird das eher nicht schneller da diese noch den Funktionsüberhang mit sich schleppen.
Besser richtig mit Pointern arbeiten
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
...
Hallo Volker,
Möchtegern-Experten in die Welt gesetzt wird, ist nicht totzukriegen.
jaja, dieser "PB ist schneller als VB"-Mythos, der immer wieder vonVolker Schmid hat geschrieben:Naja, das wird wohl kaum ein Indiz für die Geschwindigkeit der Abarbeitung sein.PB ist auf jeden Fall schneller als VB! Schau dir doch nur mal die Dateigrösse an!
Möchtegern-Experten in die Welt gesetzt wird, ist nicht totzukriegen.
Grüße ... KiffiKiffi 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.
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46

