Anders Jonsson
anders.jonsson@norsjovallen.se 2015

# Disksökningar ansedda skadliga

Disksökningar är en av de dyraste operationerna du kan utföra. Det kan vara svårt att inse om man betänker hur många av dem vi utför, men tro mig, det är de. Försök därför hålla dig från följande ej optimala beteende:

Placera massor av små filer över hela disken.

Öppna, köra ”stat” på och läsa ett stort antal filer över hela disken

Göra det ovanstående på filer som lagts ut vid olika tidpunkter, så att de säkert är fragmenterade och orsakar än mer sökning.

Göra det ovanstående på filer som är i olika kataloger, så att de säkert är i olika cylindergrupper och orsakar än mer sökning.

Att upprepat göra det ovanstående då det bara behöver göras en gång.

Vägar på vilket du kan optimera din kod att bli mer sökvänlig:

Samla data i en enda fil.

Håll data samlat i samma katalog.

Cacha data så att det inte konstant behöver läsas om.

Dela data så att det inte behöver läsas om från disk då varje program läses in.

Överväg att cacha alla data i en enstaka binärfil som är korrekt justerad och du kan köra mmap på.

Problemet med disksökningar förvärras för läsningar, vilket dessvärre är vad vi gör. Kom ihåg att läsningar generellt är synkrona medan skrivningar är asynkrona. Detta förvärrar bara problemet, serialiserar varje läsning och bidrar till programlatens.