24.10.2018, 06:07 UTC+2

Sie sind nicht angemeldet.

  • Anmelden
  • Registrieren

1

18.09.2018, 11:49

du -hs ./*

Hallo, was genau bewirkt das der Befehl "du -hs ./*" beim 2.mal des Ausführens deutlich schneller ist als beim ersten mal ?
Habe den Befehl auf einem externem Laufwerk gestartet, und festgestellt das beim erstenmal des ausführens , der Befehl einige Minuten braucht, .....
Wobei hingegen beim 2.mal des ausführens im selben Laufwerk der Befehl sehr viel schneller arbeitet als beim ersten mal.
Wo werden die berechneten Daten für die Dateien gespeichert, und wie genau kann ich das nachvollziehen bzw. beobachten ?
Der Befehl vmstat hat mich nicht weiter gebracht...
Danke....

Beiträge: 73

Geschlecht: Männlich

2

19.09.2018, 15:33

... vielleicht hilft es ja ...


FM_81

Fortgeschrittener

3

20.09.2018, 10:10

Guten Tag!
Ich denke mal, die Frage war nicht: wie funktioniert

Quellcode

1
du -hs ./*
sondern Warum ist es beim zweiten (oder dritten, vierten) Aufruf um so vieles schneller?
Beim ersten Mal muss es real vom Datenträger gelesen werden, bei allen weiteren Versuchen steht's wahrscheinlich schon im RAM.
Kannst Du mit

Quellcode

1
free
vorher/nachher prüfen.
Leider kann ich Dir nicht genau sagen, ob es dazu einen Pfad im Dateibaum gibt oder nicht?

Ob man dazu was Sinnvolles mit irgend einer Suchmaschine findet???
Vermutlich sind die ersten 1000 Treffer dazu nur Unfug und die nächsten 2000 Schrott; Antworten auf Fragen, die über einen gewissen "Standard" hinaus gehen, braucht man eigentlich im WEB gar nicht mehr zu suchen ...

Gruß FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FM_81« (20.09.2018, 10:23)


pit234a

Fortgeschrittener

4

20.09.2018, 11:20

Beim ersten Mal muss es real vom Datenträger gelesen werden, bei allen weiteren Versuchen steht's wahrscheinlich schon im RAM.


es kann sich aber auf dem Datenträger\im Verzeichnis etwas verändert haben. Demzufolge muss ja die Belegung wieder neu ausgelesen werden. Ich kann mir nicht vorstellen, dass Auslese-Ergebnisse irgendwo gespeichert und dann nur noch verglichen werden.
Wenn mich die Frage interessieren würde, dann täte ich einige weitere Tests, etwa sehen, was passiert, wenn das externe Medium zwischendurch ausgeworfen war. Testverzeichnisse anlegen und mit unterschiedlicher Anzahl unterschiedlich großer Dateien versuchen, ob das denn überhaupt immer so ist. Dann die Verzeichnisse gezielt verändern und wiederholen. Genauere Angaben zur Dauer kann dabei time liefern. Linux bietet auch die Möglichkeit, den Speicher zu leeren (ich habe den Befehl vergessen benutzte das aber in meinen Tests zur Schreibgeschwindigkeit, die ich hier irgendwo gepostet hatte). Dass nur du selbst im RAM bleibt, kann nicht den Geschwindigkeitsvorteil erklären. Lediglich beim Aufruf von sehr langsamen System-Medien kann das einen leichten Vorteil bringen.
Ja, und schließlich würde ich mir einfach versuchen, den Code von du anzusehen, ob das irgendwelche Magie oder Intelligenz drin hat. Ich kann mir das ehrlich nicht vorstellen. Aber man weiß ja nie...

FM_81

Fortgeschrittener

5

20.09.2018, 13:30

Mit "dauerte eine Weile" (beim ersten) und "sofort" (bei allen weiteren) meine ich ein paar Sekunden oder eben nahezu unverzögert. (Etwas auf USB2.0 wird im ersten Vers. sicher länger brauchen als eine interne Platte.)

Gerade probiert: hinzukopieren (800MB + 8MB in den gescannten Zweig) bewirkt beim 2. Mal keine erneute Verzögerung, Benutzer An-und Abmelden auch nicht, neu booten natürlich schon!
Externen Datenträger auswerfen und neu mounten ist bestimmt eine Extra-Geschichte? (hab's nicht probiert)
Also ist anzunehmen, dass die Struktur des Gelesenen irgenwo im RAM steht, und erkannt wird das nur geringfügige Änderungen gewesen sind.

Fakt ist jedenfalls, wenn man einen größeren, dauerhaft präsenten Verzeichnisbaum auf die genannte Art untersucht, dauert es bei ersten Mal signifikant länger, jedenfalls so lange es keine größeren Änderungen in dessen Struktur gab ...

Gruß, FM_81
ACHTUNG!
Ihre Systemleistung reicht nicht aus, um einen BLUE-SCREEN zu erzeugen!
Möchten Sie statt dessen einen GREEN-SCREEN sehen?

---- [Ja] ---- [Nein] ---- [Weiß noch nicht] ----

Linux HardwareLinux Computer & PCs | Linux Notebooks & Laptops | Geek Shirts | Geek und Nerd Shirt Shop