Eilert Brinkmann wrote:
Bernd Brodesser wrote:
Mit ls -U wird nicht sortiert, dann dürfte es deutlich schneller sein. Versuch doch mal /bin/ls -U und auch /bin/ls -Ul. Würde mich auch mal interessieren, wie schnell das ist.
Ich habe mal in einem Verzeichnis mit etwas weniger als 100000 (leeren) Dateien einen Test gemacht. Das Verzeichnis selbst hatte eine Größe von knapp 2 MB. Ergebnis:
/bin/ls ca. 3 Sekunden /bin/ls -U ca. 0,5 Sekunden /bin/ls -Ul 19 Minuten, 45 Sekunden
(Jeweils keine Bildschirmausgabe, sondern Ausgabeumleitung nach wc -l.)
In anderen Worten: Falls man das Abfragen der Dateieigenschaften nicht vermeiden kann, kommt's auf das Sortieren nicht mehr an. Übrigens wird bei dieser Verzeichnisgröße auch das Anlegen oder Löschen von Dateien schon merklich langsamer.
Ohne Farben dürfte es aber deutlich schneller sein.
Ja. Die Verwendung von Farben und -l dürften auf die Geschwindigkeit ungefähr den gleichen Effekt haben, da ja beide auf dem Abfragen der Informationen in den I-Nodes der einzelnen Dateien abhängen.
Vielleicht darf ich mein urspruengliches Problem noch mal etwas genauer schildern. Ich habe naemlich nicht primaer ein Problem mit "ls", nur das Verhalten ist proportional. Ich produziere mittels "gs" aus einer(!) sehr grossen Postscript-Datei eben jene grosse Anzahl von tiff-Dateien, die spaeter einzeln gedruckt werden muessen. An diesen Vorgaben kann ich nichts aendern. Der "gs" bietet ueber den Schalter "-sOutputFile=<prefix>%06d.." die Option die vielen Output-Dateien zu benennen. Aber sie landen unweigerlich in einem Verzeichnis. Dieses Verzeichnis wird ueber SAMBA exportiert, weil der ganze Druck- Klapperatismus auf einer Win-Kiste laeuft(auch dagegen ist nichts zu machen). Die Drucksoftware auf Win hat die Liste der vollstaendigen Dateinamen im Bauch und liest eine Datei nach der anderen ueber Samba und knallt sie auf einem Hochleistungseinzelblattdrucker raus. Nun zeigt sich, dass bei dieser grossen Anzahl von Dateien, das Lesen ueber SAMBA so lange dauert, dass der Drucker zwischen zwei Druckauftraegen (sprich A4-Seiten) in einen Wartemodus geht, weil der naechste Job nicht schnell genug kommt. Dadurch schaukelt sich die Zeit der Abarbeitung drastisch hoch. Es hat sich gezeigt, dass das Verhalten von der Anzahl der Dateien im Verzeichnis abhaengt, analog wie beim "ls". Im Bereich 1000-2000 gibt es kein Problem. Aus dem analogen Verhalten bin ich erstmal nicht davon ausgegangen, dass es sich um ein reines SAMBA-Problem handelt. Bevor ich nun die Folterinstrumente raushole und in den Ghostscript eine Logik reinprogrammiere die Unterverzeichnisse nach einem bestimmten Schema anlegt, wollte ich erstmal die Systemseite abklopfen und habe hier mal angefragt, ob es vielleicht Kerneleinstellungen u. ae. gibt, an denen man mal drehen sollte. Noch mal richtig Hauptspeicher nachfassen wollen wir als erstes. Eines hatte ich bislang auch noch nicht erwaehnt. Ich habe kein ext2-System, sondern benutze reiserfs, da das extra verspricht, gerade viele Dateien besonders effizient handeln zu koennen. Thomas