AufrufConventionen

Fragen und Bugreports zur PureBasic 4.0-Beta.
kaspar
Beiträge: 18
Registriert: 17.10.2006 06:19
Wohnort: 15859 Storkow/Mark

Beitrag 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.
kaspar
Beiträge: 18
Registriert: 17.10.2006 06:19
Wohnort: 15859 Storkow/Mark

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
kaspar
Beiträge: 18
Registriert: 17.10.2006 06:19
Wohnort: 15859 Storkow/Mark

Beitrag 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=?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Eigenwerbung:
Für Zeitmessungen für Optimierungen gibts den "Analyzer 4.0" auf
www.PureArea.net
:)
kaspar
Beiträge: 18
Registriert: 17.10.2006 06:19
Wohnort: 15859 Storkow/Mark

Beitrag 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
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

*x ist ein Pointer auf einen String und kein String.
Den Inhalt kannst du mit Peeks auslesen oder mit
PokeS aendern.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag 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

my pb stuff..
Bild..jedenfalls war das mal so.
Gesperrt