( zeller | 2020. 01. 05., v – 18:24 )

százezre vagy épp milliós(!) darabszámú fájlt tartalmazó könyvtárban fájlnév minta és mtime alapján próbálj takarítani (rm). Az a find, ami adott Linux disztrón elérhető volt, az minden egyes fájlra(!) csinált két(!) stat/fstat hívást, ami az univerzális kivitel miatt oké, de adott feladatra erősen elmarad az optimálistól. A megoldás egyébként falk egyszerű volt: perl-ben könyvtár megnyit, a fájlneveken végigmenve mindet vizsgált a minta alapján, és amelyik illeszkedett rá, arra egy stat(), és ha az mtime is megfelelt az elvártnak, akkor unlink. Nagyon nem mindegy, hogy mondjuk 1M fájlból n darab kipucolásához 2M+n rendszerhívás kell, vagy 1+k+n, ahol k az illeszkedő névvel bíró fájlok száma...