En implementation av funktionen memchr för Linux-kÀrnan har föreslagits som fungerar upp till 4 gÄnger snabbare

För att inkludera i Linux-kÀrnan har ett paket med patchar föreslagits med en optimerad implementering av funktionen memchr(), som anvÀnds för att söka efter ett tecken i en array. Till skillnad frÄn den gamla varianten, dÀr byte-jÀmförelse anvÀndes, Àr den föreslagna implementeringen byggd med full anvÀndning av 64- och 32-bitars CPU-register. IstÀllet för byte jÀmförs med hjÀlp av maskinord, vilket gör att minst 4 byte kan jÀmföras Ät gÄngen.

Vid sökning i stora strÀngar visade den nya varianten sig vara ungefÀr 4 gÄnger snabbare Àn den gamla (till exempel för strÀngar med 1000 tecken). För strÀngar av mindre storlek Àr effektiviteten hos den nya implementeringen inte sÄ betydande, men den Àr fortfarande högre jÀmfört med den ursprungliga varianten. I Linux-kÀrnan nÄr storleken pÄ strÀngarna som bearbetas i memchr() upp till 512 byte. PrestandaförbÀttringen för 512-byte-strÀngar, i situationer dÀr det sökta tecknet finns i slutet av strÀngen, uppgÄr till 20%.

Testning av kÀrna 5.18 med den nya varianten av "memchr()" för 32- och 64-bitars arkitekturer har inte avslöjat nÄgra problem. Den totala prestandaförbÀttringen för kÀrnsystemen vid anvÀndning av den optimerade varianten av "memchr()" har Ànnu inte utvÀrderats, och rimligheten av att byta implementering har inte analyserats (i kÀrnkoden förekommer funktionen memchr() 129 gÄnger, inklusive i drivrutiner och filsystem).

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster