Deze is voor de abstracte denkers onder ons die goed zijn in het optimaliseren van code in VB6. Dat is niet mijn sterkste punt en dat brengt me momenteel in de problemen. Hopelijk kan ik hier iets leren van de suggesties van anderen.
Ik heb (in essentie) de volgende code:
Deze code wordt om de zoveel tijd aangeroepen. Er wordt eigenlijk param1 bytes aan data uit een bestand ingelezen. Vervolgens wordt elke byte als het ware geïnverteerd (255 wordt 0, 245, wordt 10, etc) en uiteindelijk naar de variabele param2 geschreven (param2 is een pointer).
Opzich werkt deze code goed, alleen is het te langzaam. Ik zit me af te vragen hoe ik deze code kan optimaliseren. Vooral de For-Next-lus lijkt me een doorn in het oog, zeker omdat param1 waarden van 32768 kan aannemen en dan duurt zo'n lus dus wel even. Ik kan echter geen andere manier bedenken om elke byte afzonderlijk te inverteren.
Heeft iemand optimalisatie-suggesties zodat de code sneller wordt?
Ik heb (in essentie) de volgende code:
code:
1
2
3
4
5
6
7
8
9
| Dim bytBuf() As Byte
ReDim bytBuf(0 To param1) As Byte
Dim z As Long
ReadFile user, bytBuf(0), param1, lngRead, ByVal 0&
For z = 0 To param1
bytBuf(z) = 255 - bytBuf(z)
Next z
CopyMemory ByVal param2, bytBuf(0), UBound(bytBuf) |
Deze code wordt om de zoveel tijd aangeroepen. Er wordt eigenlijk param1 bytes aan data uit een bestand ingelezen. Vervolgens wordt elke byte als het ware geïnverteerd (255 wordt 0, 245, wordt 10, etc) en uiteindelijk naar de variabele param2 geschreven (param2 is een pointer).
Opzich werkt deze code goed, alleen is het te langzaam. Ik zit me af te vragen hoe ik deze code kan optimaliseren. Vooral de For-Next-lus lijkt me een doorn in het oog, zeker omdat param1 waarden van 32768 kan aannemen en dan duurt zo'n lus dus wel even. Ik kan echter geen andere manier bedenken om elke byte afzonderlijk te inverteren.
Heeft iemand optimalisatie-suggesties zodat de code sneller wordt?