Útfærsla á memchr aðgerðinni hefur verið lögð til fyrir Linux kjarnann, sem keyrir allt að 4 sinnum hraðar

Sett hefur verið upp plástra með bjartsýni útfærslu á memchr() aðgerðinni, sem notuð er til að leita að tákni í fylki, til að setja inn í Linux kjarnann. Ólíkt gömlu útgáfunni, sem notaði bæti-fyrir-bæta samanburð, er fyrirhuguð útfærsla byggð með hliðsjón af fullri notkun 64- og 32-bita CPU-skráa. Í stað bæta er samanburðurinn gerður með því að nota vélarorð, sem gerir kleift að bera saman að minnsta kosti 4 bæti í einu.

Þegar leitað var í stórum strengjum reyndist nýi valkosturinn vera um það bil 4 sinnum hraðari en sá gamli (til dæmis fyrir strengi upp á 1000 stafi). Fyrir litla strengi er skilvirkni nýju útfærslunnar ekki svo veruleg, en er samt meiri miðað við upprunalegu útgáfuna. Í Linux kjarnanum nær stærð strengja sem unnið er með í memchr() 512 bætum. Frammistöðuaukning fyrir 512 bæta strengi, í aðstæðum þar sem stafurinn sem leitað er að er í lok strengsins, er 20%.

Að prófa 5.18 kjarnann með nýja „memchr()“ valkostinum fyrir 32-bita og 64-bita arkitektúr leiddi ekki í ljós nein vandamál. Heildarframmistöðuaukning kjarnaundirkerfa þegar bjartsýni útgáfa af „memchr()“ er notuð hefur ekki enn verið metin, né hefur verið greindur hagkvæmni þess að skipta út útfærslunni (í kjarnakóðann koma símtöl í memchr() aðgerðina fram 129 sinnum , þar á meðal í kóða ökumanna og skráarkerfa).

Heimild: opennet.ru

Bæta við athugasemd