Hier tragen einige Faktoren bei.
Um eine Liste aller Dateinamen in einem Verzeichnis abrufen zu können, müssen die unteren Dateinamen dekodiert, analysiert und entschlüsselt werden.
Die stat () - Aufrufe von du veranlassen eine Suche, die das Zuweisen eines eCryptfs-Inodes erfordert, das Lesen eines Teils der Metadaten der unteren Datei, das Überprüfen, ob es sich um eine eCryptfs-Datei handelt, und das anschließende Analysieren der unverschlüsselten Dateigröße, um das i_size-Feld des eCryptfs-Inodes festzulegen . Beachten Sie, dass das Lesen der Metadaten aus dem unteren Dateisystem das Lesen einer Seite in den Seitencache des unteren Dateisystems beinhaltet.
Aufgrund des Designs von eCryptfs ist der Aufwand für eine große Anzahl von Dateien mit Unannehmlichkeiten verbunden. Ich bin sicher, dass trotz des Designs einige Verbesserungen / Verbesserungen vorgenommen werden müssen, aber die Optimierung dieses Codeteils war bisher nicht mein Schwerpunkt.