一回あたり44ビットONのデータで測定。つまり一個のイテレータで44回ループ処理した。
for (long i = 0; i < 1000000L; i++) {
CBitPos a(0x7777777777773333LL);
int pos = a.next();
while (pos)
pos = a.next();
}
ちなみに MSB (Most Significant Bit) を求める方法を用いると三倍くらい遅くなる。
---
x |= (x >> 1);
x |= (x >> 2);
x |= (x >> 4);
x |= (x >> 8);
x |= (x >> 16);
x |= (x >> 32);
x &= ~(x >> 1);
---
次に memtest86 をインストールします。
$ wget http://www.memtest86.com/memtest86-3.2.tar.gz $ tar xvzf memtest86-3.2.tar.gz
$ cd memtest86-3.2/
$ make
$ make install
dd <memtest.bin >/dev/fd0 bs=8192
11+1 records in
11+1 records out
94356 bytes (94 kB) copied, 3.53392 seconds, 26.7 kB/s