In ymplemintaasje fan 'e memchr-funksje is foarsteld foar de Linux-kernel, dy't oant 4 kear rapper rint

In set fan patches mei in optimalisearre ymplemintaasje fan de memchr () funksje, brûkt om te sykjen nei in symboal yn in array, is foarsteld foar opname yn de Linux kernel. Oars as de âlde ferzje, dy't byte-by-byte-fergeliking brûkte, wurdt de foarstelde ymplemintaasje boud mei rekkening mei it folsleine gebrûk fan 64- en 32-bit CPU-registers. Ynstee fan bytes wurdt de fergeliking útfierd mei masinewurden, wêrtroch op syn minst 4 bytes tagelyk fergelike wurde kinne.

By it sykjen yn grutte snaren die bliken dat de nije opsje sawat 4 kear flugger wie as de âlde (bygelyks foar snaren fan 1000 tekens). Foar lytse snaren is de effisjinsje fan 'e nije ymplemintaasje net sa wichtich, mar is noch hieltyd heger yn ferliking mei de oarspronklike ferzje. Yn 'e Linux-kernel berikt de grutte fan stringen ferwurke yn memchr () 512 bytes. De prestaasjeswinst foar 512 byte snaren, yn in situaasje dêr't it socht karakter is oan 'e ein fan' e tekenrige, is 20%.

It testen fan de 5.18 kernel mei de nije "memchr()" opsje foar 32-bit en 64-bit arsjitektuer hat gjin problemen iepenbiere. De totale prestaasjeswinst fan kernel-subsystemen by it brûken fan de optimalisearre ferzje fan "memchr ()" is noch net beoardiele, noch is de helberens fan it ferfangen fan de ymplemintaasje analysearre (yn 'e kernelkoade komme oproppen nei de memchr () funksje 129 kear foar. , ynklusyf yn 'e koade fan bestjoerders en bestânsystemen).

Boarne: opennet.ru

Add a comment