FĂŒr den Linux-Kernel wurde die Implementierung der Funktion memchr vorgeschlagen, die bis zu 4 Mal schneller arbeitet.

Um in den Linux-Kernel aufgenommen zu werden, wurde ein Satz von Patches mit einer optimierten Implementierung der Funktion memchr() vorgeschlagen, die zum Suchen eines Zeichens in einem Array verwendet wird. Im Gegensatz zur alten Variante, die byteweise Vergleiche anwendete, wurde die vorgeschlagene Implementierung unter BerĂŒcksichtigung der vollstĂ€ndigen Nutzung von 64- und 32-Bit-CPU-Registern erstellt. Anstelle von Bytes erfolgt der Vergleich unter Verwendung von Maschinenwörtern, was es ermöglicht, mindestens 4 Bytes gleichzeitig zu vergleichen.

Bei der Suche in großen Zeichenfolgen erwies sich die neue Variante als etwa 4-mal schneller als die alte (zum Beispiel bei Zeichenfolgen mit 1000 Zeichen). Bei kleinen Zeichenfolgen ist die Effizienz der neuen Implementierung nicht so signifikant, aber dennoch höher im Vergleich zur ursprĂŒnglichen Variante. Im Linux-Kernel erreicht die GrĂ¶ĂŸe der in memchr() verarbeiteten Zeichenfolgen 512 Bytes. Der Leistungszuwachs fĂŒr 512-Byte-Zeichenfolgen betrĂ€gt in Situationen, in denen das gesuchte Zeichen am Ende der Zeichenfolge steht, 20%.

Die Testung des Kernels 5.18 mit der neuen Variante von „memchr()“ fĂŒr 32- und 64-Bit-Architekturen hat keine Probleme ergeben. Der Gesamte Performance-Zuwachs der Kernel-Subsysteme bei Verwendung der optimierten Variante von „memchr()“ wurde bisher nicht bewertet, und auch die ZweckmĂ€ĂŸigkeit einer ImplementierungsĂ€nderung wurde nicht analysiert (in den Kernel-Codes wird die Funktion memchr() 129-mal aufgerufen, einschließlich im Code von Treibern und Dateisystemen).

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster