Ik ben bezig met een programmaatje dat nog wel wat snelheid kan gebruiken.
Ik heb een grote array of byte daar wil op elke willekeurig plaats een byte,word of cardinal uitlezen. Dat lukt op zich wel maar als ik bekijk wat de compiler er van maakt dan vrees ik toch dat de optimizer er niet slim genoeg voor is.
Dit zou sneller moeten kunnen maar hoe?
ps c++ en assambler zijn (voorlopig nog) geen optie voor mij.
Ik heb een grote array of byte daar wil op elke willekeurig plaats een byte,word of cardinal uitlezen. Dat lukt op zich wel maar als ik bekijk wat de compiler er van maakt dan vrees ik toch dat de optimizer er niet slim genoeg voor is.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| VAR ba : array[0..veel] of byte; w : word; c : cardinal; n : integer; begin ........... w := ba[n] shl 8 + ba[n+1]; ........... c := ba[n] shl 24 + ba[n+1] shl 16 + ba[n+2] shl 8 +ba[n+3] |
Dit zou sneller moeten kunnen maar hoe?
ps c++ en assambler zijn (voorlopig nog) geen optie voor mij.