Ir ierosināta memchr funkcijas ieviešana Linux kodolam, kas darbojas līdz pat 4 reizēm ātrāk

Iekļaušanai Linux kodolā ir ierosināts ielāpu komplekts ar optimizētu funkcijas memchr() ieviešanu, ko izmanto simbola meklēšanai masīvā. Atšķirībā no vecās versijas, kurā tika izmantots salīdzinājums pa baitiem, piedāvātā ieviešana ir veidota, ņemot vērā 64 un 32 bitu CPU reģistru pilnīgu izmantošanu. Baitu vietā salīdzināšana tiek veikta, izmantojot mašīnvārdus, kas ļauj vienā reizē salīdzināt vismaz 4 baitus.

Meklējot lielās virknēs, jaunā opcija izrādījās apmēram 4 reizes ātrāka nekā vecā (piemēram, 1000 rakstzīmju virknēm). Mazām virknēm jaunās ieviešanas efektivitāte nav tik nozīmīga, taču joprojām ir augstāka salīdzinājumā ar sākotnējo versiju. Linux kodolā memchr () apstrādāto virkņu lielums sasniedz 512 baitus. Veiktspējas pieaugums 512 baitu virknēm situācijā, kad meklētā rakstzīme atrodas virknes beigās, ir 20%.

Pārbaudot 5.18 kodolu ar jauno "memchr()" opciju 32 bitu un 64 bitu arhitektūrām, problēmas netika atklātas. Kodola apakšsistēmu kopējais veiktspējas pieaugums, izmantojot optimizēto “memchr()” versiju, vēl nav novērtēts, kā arī nav analizēta ieviešanas aizstāšanas iespēja (kodola kodā funkcijas memchr() izsaukumi notiek 129 reizes , tostarp draiveru un failu sistēmu kodā).

Avots: opennet.ru

Pievieno komentāru