Seite 2 von 3

Verfasst: 19.10.2006 06:16
von kaspar
Danke an Euch. Hätte besser lesen sollen. Da ich eine Übergabe an andere Sprachen gedacht habe kommen mir Pointer gerade recht. Bin gespannt ob PureBasic wirklich schnell ist. Weil ich in C so faul bin hatte ich eine bequmere Sprache gesucht. Brauche Geschwindigkeit bei Messwert-Verarbeitung.

Verfasst: 19.10.2006 06:22
von kaspar
Danke. Pointer kommen mir gerade recht. Ist PureBasic wirklich so schnell?

Schreibe nochmal weil ich nicht sicher bin das die erste Antwort angekommen ist

Verfasst: 19.10.2006 06:33
von ts-soft
kaspar hat geschrieben:Danke. Pointer kommen mir gerade recht. Ist PureBasic wirklich so schnell?
Wenns eng wird, einfach Deine Routinen optimieren, ein bissel pointern, bzw.
ASM. Dann kanns eigentlich mit allem mir bekannten mithalten.
Hängt also mehr von Deinem Können ab. Aber die normallen Funktionen sind
meist mehr als ausreichend schnell.

Gruß
Thomas

Verfasst: 19.10.2006 06:48
von Kaeru Gaman
wenn man aufn paar kniffe achtet, kann man viel rausholen.

eine abfrage gibt kürzeren ASM code als

Code: Alles auswählen

If a <> 0
afaik wird auch direkt in ein INC übersetzt.
(a=a+1 kannste dir sparen, a+1 geht)

Verfasst: 19.10.2006 07:48
von kaspar
Danke. Am Optimieren kommt man ja nie vorbei, aber viele Sprachen schleppen ja eine Menge Zeug mit sich rum. Habt Ihr mal einenen schicken Zeitmesser für mich? So ca. 1ms genau oder t=?

Verfasst: 19.10.2006 07:52
von Kaeru Gaman
schau mal hier:
http://www.purebasic.fr/german/viewtopi ... 805#110805

der normale ElapsedMilliseconds() gibt zwar ms aus, ist aber ca. 13ms ungenau.
trotzdem kann man ihn für performance-tests nutzen:
- den kritischen vorgang oft genug durchführen ( > 5sec )
- bei tests immer den debugger abschalten.

Verfasst: 19.10.2006 13:50
von remi_meier
Eigenwerbung:
Für Zeitmessungen für Optimierungen gibts den "Analyzer 4.0" auf
www.PureArea.net
:)

Verfasst: 20.10.2006 07:07
von kaspar
Hallo, habe noch einmal gelesen un versucht einen Weg für die Übergabe un Änderung von Strings zu machen. Bitte, wenn Euch das nicht neu ist, ich habe mich gerade ein paar Tage mit PureBasic beschäftigt, macht kein Grinse, Grinse.

Haubtprogramm:

Bla,Bla

c.s{40} ; Das ist der Punkt. Is ja wie array

c="BÄ"
teststr(@c)
Debug "Draussen"+c ; --> "Hallo"

Include Datei

Procedure teststr (*x.s)
Debug "Drinnen1"+ *x ; -->"BÄ"
*x = "Hallo"
Debug "Drinnen2" + *x ; -->"Hallo"
EndProcedure

Verfasst: 20.10.2006 07:31
von edel
*x ist ein Pointer auf einen String und kein String.
Den Inhalt kannst du mit Peeks auslesen oder mit
PokeS aendern.

Verfasst: 20.10.2006 09:43
von #NULL
die dereferenzierung geschieht in der proc schon automatisch. nur must du die proc vorher definieren (oder Declare verwenden).

Code: Alles auswählen

Procedure teststr (*x.s)
Debug "Drinnen1"+ *x ; -->"BÄ"
*x = "Hallo"
Debug "Drinnen2" + *x ; -->"Hallo"
EndProcedure
c.s{40} ; Das ist der Punkt. Is ja wie array

c="BÄ"
teststr(@c)
Debug "Draussen"+c ; --> "Hallo"

;Include Datei