Die Leistung des Ubuntu-Pakets jq konnte durch eine Neubau um das 1,9-Fache gesteigert werden.

Die Ergebnisse der Bewertung der Auswirkungen auf die Leistung der Neukompilierung von Paketen für Ubuntu mit verschiedenen Optionen und Implementierungen von Speicherzuweisungsfunktionen wurden veröffentlicht. Dem Experimentator gelang es, die Leistung des jq-Pakets zur Verarbeitung von JSON-Daten um 90 % (1,9-fach) zu steigern, indem er das Paket einfach aus dem gleichen Quellcode neu kompiliert hat, ohne Änderungen am Code selbst vorzunehmen. Die Leistungsbewertung erfolgte durch die Messung der Ausführungszeit einer typischen Filterabfrage über einen GeoJSON-Datensatz mit einer Größe von 500 MB.

Ergebnisse des Experiments:

  • Die in GCC aus denselben Quelltexten mit Standardflags kompilierte Version war 2-4 % schneller als das binäre Ubuntu-Paket.
  • Die Neukompilierung in Clang 18 mit Optimierungsgrad '-O3', einschließlich Link-Zeit-Optimierung ('-flto') und ohne Debug-Informationen ('-DNDEBUG'), führte zu einer Beschleunigung von 20 %.
  • Die Neukompilierung mit dem TCMalloc-Speichersystem (Hinzufügen von '-L/usr/lib/x86_64-linux-gnu -ltcmalloc_minimal' zu LDFLAGS) ergab eine Beschleunigung von 40 %.
  • Der Austausch von malloc-Funktionen gegen die Speichersysteme tcmalloc, jemalloc und mimalloc über 'LD_PRELOAD=/usr/lib/x86_64-linux-gnu/lib….so' führte zu einer Leistungssteigerung von 27 %, 29 % und 44 %. Bei der Ausführung mit mimalloc, die eine Beschleunigung von 44 % zeigte, wurde die Umgebungsvariable 'MIMALLOC_LARGE_OS_PAGES=1' gesetzt.
  • Die Neukompilierung des Pakets mit mimalloc in LDFLAGS anstelle einer Verknüpfung über LD_PRELOAD führte zu einer 90 % schnelleren Durchführung des Tests. Ein weiterer Test zur Verarbeitung von 2,2 GB JSON-Daten in 13.000 Dateien zeigte ebenfalls einen Leistungszuwachs von etwa dem Doppelten.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster