DaisyDisk scannt die HD meines Mac blitzschnell im Vergleich zu beispielsweise du
. Ich frage mich, was der Trick ist. Ich vermute, dass es auf Nicht-Mac-Dateisystemen nicht so schnell sein würde, aber ich habe es nicht versucht. Irgendwelche Hinweise?
Ich habe DaisyDisk noch nie benutzt, aber nach der Videodemo auf ihrer Website zu urteilen, scheinen sie ein paar Tricks anzuwenden, um es schnell zu machen.
Sind Sie sicher, dass du
das langsamer ist? Versuchen Sie, es auszuführen, du / >/dev/null
und sehen Sie, ob es schneller als DaisyDisk ist. Wohlgemerkt, das Dateisystem wurde möglicherweise zwischengespeichert, nachdem das Dateisystem aus Zeitgründen zuerst ausgeführt wurde, sodass der zweite Durchlauf diesen Vorteil hat.
du
ist ziemlich schnell, da es nur Verzeichniseinträge betrachtet und Pfad- und Dateigrößen meldet. Der einzige Weg, um zu wissen, was eine Datei ist, wäre, anhand der Dateierweiterung zu raten oder sich die Datei anzusehen, um ihren Typ zu bestimmen (z. B. UNIX „magische“ Bytes). Die Dateierweiterungsroute ist schnell, die Untersuchung der Datei ist offensichtlich viel langsamer, da Sie die Datei abrufen müssen.
Mit der du
Ausgabe konnte man schnell die Ansicht der Verzeichnisse der obersten Ebene bestimmen; Sie können das im Code filtern und eine Darstellung machen, wie es DaisyDisk tut, und nur große Tortenstücke anzeigen. Wenn sie in die Verzeichnisse (z. B. /Benutzer) eindringen, wiederholen Sie den Vorgang, konzentrieren sich jedoch nur auf diese Ebene. Da DaisyDisk Ihnen nur die Top 10 oder 20 Platzfresser zeigt, muss es nicht ins Detail gehen, um herauszufinden, was die kleineren Dateien sind (beachten Sie, dass es sie bequem in „Kleinere Dateien 750 MB“ oder eine andere Bezeichnung zusammenfasst). Zu diesem Zeitpunkt musste es noch nicht so tief in die eigentlichen Dateien eintauchen, und wenn es nicht per Erweiterung raten würde, musste es vielleicht nur die "Magie" einiger weniger großer Dateien bestimmen, was sehr schnell geht.
Was wir also wahrscheinlich sehen, ist, dass es schnell den Namen, den Pfad und die Größe jeder Datei auf dem Laufwerk ermittelt (wie du
demonstriert werden kann), aber geschickt nur die Top-Straftäter anzeigt, um Ihnen zu helfen, das zu erreichen, woran Sie am meisten interessiert sind Die Leute werden ein Tool wie dieses nicht verwenden, um an die pingelig kleinen Dateien zu kommen; Sie werden zum Finder gehen, um die Dateien zu untersuchen, wenn Sie sich auf dieser Ebene überhaupt die Mühe machen . Es scheint hier nicht wirklich etwas Besonderes zu sein, außer dass es den Dateityp oder Inhalt nur dann untersuchen muss, wenn der Benutzer ausdrücklich danach fragt, und das Programm diese schwere Arbeit die meiste Zeit vermeidet.
Was also macht DaisyDisk besonders im Vergleich zu (sagen wir) der kostenlosen „Grand Perspective“-Anwendung für OSX? Schickes Interface zum einen (ich mag die Datei untersuchen und zum Sammeln/Löschen ziehen), aber ich denke auch, dass GP die Dateien während des Scannens untersucht, da es alles in seiner grafischen Ansicht und Farben nach Dateityp anzeigt. Sie könnten den Mechanismus zum Färben nach Typ du
auch mit einem Ansatz durchführen, aber Sie raten nur basierend auf der Dateierweiterung und / oder dem Ort, an dem Sie die Datei gefunden haben.
Alles in allem ist es eine raffinierte Anwendung mit einer cleveren Benutzeroberfläche. Warum ist es schnell? Weil sie anscheinend Abkürzungen genommen haben, um schweres Heben zu vermeiden, bis es absolut notwendig wäre. Für mich geht es mir gut mit Grand Perspective :-)
Ich bin der Entwickler von DaisyDisk. Ich müsste ausführlich erklären, wie wir das auf der technischen Seite erreichen, aber ich kann Ihnen versichern, dass die App keine „Abkürzungen“ oder „Tricks“ macht. Das Scannen ist real und vollständig.
Wie bereits erwähnt, ist es aufgrund des Disk-Cachings schwierig, eine genaue Messung durchzuführen. Jedes Experiment gibt Ihnen eine andere Zeit, abhängig von vielen Faktoren. Aber es stimmt, dass DaisyDisk bei weitem schneller ist als jeder andere Disk-Scanner. Dies macht sich besonders bei SSD-Laufwerken bemerkbar. Ich habe jedoch nicht versucht, es mit "du" zu vergleichen.
du
), um die schnelle Ausgabe zu erstellen. Der Untersuchungstyp müsste entweder schnell anhand der Dateierweiterung (oder wo es gefunden wurde, zB iTunes-Musikverzeichnis) oder der Untersuchung der Datei (langsamer) angenommen werden. Da das Timing von bmike eng du
mit DD übereinstimmt, würde ich davon ausgehen, dass DD den Dateiinhalt nicht untersucht. So oder so, schöne App und tolle Benutzeroberfläche!Ich kann keinen großen Unterschied in du
oder DaisyDisk messen, außer der nativen App, die in einigen Fällen langsamer ist als das Befehlszeilentool.
time du ~ > /dev/null 2>&1
Der erste Lauf du
war 0m7.947s und der zweite war 0m5.465s und DaisyDisk war beide Male ungefähr 8 Sekunden mit einer Stoppuhr.
Ich vermute, Sie sehen Verzögerungen aufgrund der Bildschirmausgabe der Befehlszeilentools, die mehr von der Festplatte messen. Verwenden Sie DaisyDisk zum Scannen als Administrator?
Ich habe bemerkt, dass es in einem Single-Thread-Modus du
verwendet wird . getattrlist()
Ich hatte Code gefunden, den Apple irgendwann mit der Veröffentlichung von High Sierra als Open Source veröffentlicht hatte. Daisydisk verwendet wahrscheinlich getattrlistbulk()
mehrere Threads, da ich eine gleichmäßigere CPU-Kernauslastung festgestellt habe.
Auf meinem Mac ist daisydisk immer 2x - 3x schneller als du
. Ich habe dies mit meinem Home-Ordner mit 100 GB, 20 KB Verzeichnissen und 350 KB Dateien getestet. Das Dateisystem führt etwas Caching durch, daher ist es besser, dies auf einem kalten System oder mit einem großen Verzeichnis zu testen, um die Caching-Vorteile zu reduzieren.
Ich fand dieses Code-Snippet hilfreich für getattrlistbulk
- https://www.snip2code.com/Snippet/526248/A-sample-on-how-to-properly-use-getattrl
Dieses Snippet verwendet immer noch einen einzelnen Thread, und der Thread war IO-gebunden, meine CPU-Auslastung betrug nur etwa 35 %. Wenn Sie die Arbeit irgendwie auf mehrere Threads verteilen, gehe ich davon aus, dass dies super schnell geht.
Morpheu5