Ariadne Conill, die Entwicklerin des Musikplayers Audacious, Initiatorin des IRCv3-Protokolls und Teamleiterin für die Sicherheitsmaßnahmen von Alpine Linux, hat untersucht, wie die Leistung des Tools cat, das die Ausgabe eines oder mehrerer Dateien an den Standardausgabestrom vornimmt, optimiert werden kann. Zwei Optimierungsansätze zur Leistungssteigerung von cat in Linux wurden vorgeschlagen, die auf den Systemaufrufen sendfile und splice basieren, um Daten direkt zwischen Dateideskriptoren auf Kernel-Ebene ohne Kontextwechsel in den Benutzerraum zu kopieren.
Die Basisimplementierung, die traditionelle Aufrufe von read und write verwendet, die zu einem Kontextwechsel führen, zeigte beim Kopieren einer 4GB-Datei aus tmpfs eine Leistung von 3,6 GB/s. Die Variante auf Basis von sendfile konnte die Leistung auf 6,4 GB/s steigern, während die Variante auf Basis von splice sogar 11,6 GB/s erreichte, was mehr als dreimal schneller war als die ursprüngliche Version.
Quelle: opennet.ru
