Verfasst: 13.02.2009 08:53
Ich würde stat PeekX() mit Pointern arbeiten, das ist theortisch noch ne Spur schneller.
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Soweit hast du natürlich Recht, aber das Einlesen in den Speicher kann man damit auch sehr gut optimieren.hjbremer hat geschrieben:Dieses Blockweise lesen ist ja gut und schön, aber wir haben 2009
Heutige Rechner haben mindestens 500 MB, meistens 1 GB und Windows XP und der Rest brauchen ca 200-300 MB. Bleibt also genügend über um eine 100 MB Datei in den Speicher zu laden.
PeekX() benutzt Pointer.cxAlex hat geschrieben:Ich würde stat PeekX() mit Pointern arbeiten, das ist theortisch noch ne Spur schneller.
Es fällt der Call weg!PMV hat geschrieben:Was da schneller sein soll ist mir zwar
schleierhaft, aber bei PB kann man das ja nie wissen, bevor man nicht den
ASM-Code gesehen hat
MFG PMV
Code: Alles auswählen
Procedure FindChar13(*z.Character, ende)
For *p.Character = *z To ende
If *p\c = 13
ProcedureReturn *p
EndIf
Next
ProcedureReturn 0
EndProcedure
Stimmt ... das Springen auf die richtige Adresse und das Push und Pop fürts-soft hat geschrieben:Es fällt der Call weg!
Code: Alles auswählen
Procedure FindChar(*Start.CHARACTER, Size.i, ToFind.c)
Protected *End = *Start + Size - SizeOf(CHARACTER)
While *Start <= *End
If *Start\c = ToFind
ProcedureReturn *Start
EndIf
*Start + SizeOf(CHARACTER)
Wend
ProcedureReturn #False
EndProcedure