Velikost bufferu
Zde jsou dva kódy, pomocí nichž je možné otestovat rychlost čtení pro různé velikosti bufferu.
mkhole.c – Vytvoří veliký soubor s dírou (nezabírá tak téměř žádné místo na disku).
bufread.c – Přečte zadaný soubor a spočítá
xor
každého bajtu. Soubor čte po bufferu o zadané velikosti.
Následovně můžete porovnat čas běhu pro velikosti bufferu
1
a 256
na souboru o velikosti
1 GiB
.
c99 -o mkhole mkhole.c
c99 -o bufread bufread.c
./mkhole bigfile 1024 ahoj
time ./bufread bigfile 256
time ./bufread bigfile 1
Srovnání s mmap
Následně můžete porovnat rychlost čtení pro alternativní způsob přístup čtení souboru.
- mread.c – Přečte zadaný soubor a spočítá
stejný výsledek jako
bufread.c
výše. Čtení však provádí po namapování souboru do paměti procesu pomocímmap
.
c99 -o mread mread.c
time ./mread bigfile