Ubuntu-Pakete um 90 % schneller machen: Eine Geschichte von Neukompilierung und Allokatoren
Dieser Beitrag beschreibt, wie die Neukompilierung des von Ubuntu verwendeten jq-Quellpakets zu einer erstaunlichen Performance-Verbesserung von 90 % geführt hat. Der Autor hat Benchmarks mit einer 500 MB großen GeoJSON-Datei durchgeführt. Das bloße Neukompilieren des Pakets führte zu einer kleinen, aber spürbaren Beschleunigung. Weitere Optimierungen beinhalteten die Verwendung des clang-Compilers mit besseren Flags (-O3, -flto, -DNDEBUG), was zu einer Steigerung von 20 % führte. Der Wechsel zum TCMalloc-Allokator verbesserte die Performance um weitere 40 %. Schließlich führte die Verwendung von mimalloc, entweder dynamisch geladen oder in den Neukompilierungsprozess integriert, zu der bemerkenswerten Geschwindigkeitsverbesserung von 90 %. Das mit mimalloc neu kompilierte jq ist in verschiedenen Tests fast doppelt so schnell wie das Standard-Ubuntu-Paket.