Linux միջուկի համար առաջարկվել է memchr ֆունկցիայի իրականացում, որն աշխատում է մինչև 4 անգամ ավելի արագ

Լինուքսի միջուկում ներառելու համար առաջարկվել է մի շարք պատչեր՝ memchr() ֆունկցիայի օպտիմիզացված իրականացմամբ, որն օգտագործվում է զանգվածում խորհրդանիշ որոնելու համար: Ի տարբերություն հին տարբերակի, որն օգտագործում էր բայթ առ բայթ համեմատություն, առաջարկվող իրականացումը կառուցված է՝ հաշվի առնելով 64 և 32-բիթանոց պրոցեսորի ռեգիստրների ամբողջական օգտագործումը: Բայթերի փոխարեն համեմատությունը կատարվում է մեքենայական բառերի միջոցով, ինչը թույլ է տալիս միաժամանակ համեմատել առնվազն 4 բայթ:

Մեծ տողերով որոնելիս նոր տարբերակը մոտ 4 անգամ ավելի արագ է ստացվել, քան հինը (օրինակ՝ 1000 նիշանոց տողերի համար)։ Փոքր լարերի համար նոր ներդրման արդյունավետությունը այնքան էլ նշանակալի չէ, բայց դեռ ավելի բարձր է սկզբնական տարբերակի համեմատ։ Linux միջուկում memchr()-ում մշակված տողերի չափը հասնում է 512 բայթի։ Կատարման շահույթը 512 բայթ տողերի համար, այն իրավիճակում, երբ որոնված նիշը տողի վերջում է, 20% է:

5.18 միջուկի փորձարկումը նոր «memchr()» տարբերակով 32-բիթանոց և 64-բիթանոց ճարտարապետությունների համար ոչ մի խնդիր չբացահայտեց: Միջուկի ենթահամակարգերի ընդհանուր արդյունավետությունը «memchr()»-ի օպտիմիզացված տարբերակն օգտագործելիս դեռ չի գնահատվել, ինչպես նաև չի վերլուծվել իրականացումը փոխարինելու իրագործելիությունը (միջուկի կոդում memchr() ֆունկցիայի զանգերը տեղի են ունենում 129 անգամ: , ներառյալ դրայվերների և ֆայլային համակարգերի կոդում):

Source: opennet.ru

Добавить комментарий