Linux yadrosi uchun 4 baravar tezroq ishlaydigan memchr funksiyasini amalga oshirish taklif qilindi.

Massivdagi ramzni qidirish uchun foydalaniladigan memchr() funksiyasining optimallashtirilgan amalga oshirilishiga ega yamoqlar to‘plami Linux yadrosiga kiritish uchun taklif qilingan. Bayt-bayt taqqoslashdan foydalangan eski versiyadan farqli o'laroq, tavsiya etilgan dastur 64 va 32 bitli CPU registrlaridan to'liq foydalanishni hisobga olgan holda qurilgan. Baytlar o'rniga taqqoslash mashina so'zlari yordamida amalga oshiriladi, bu bir vaqtning o'zida kamida 4 baytni solishtirish imkonini beradi.

Katta satrlarni qidirishda yangi variant eskisiga qaraganda taxminan 4 baravar tezroq bo'lib chiqdi (masalan, 1000 belgidan iborat satrlar uchun). Kichik satrlar uchun yangi dasturning samaradorligi unchalik muhim emas, lekin asl versiyaga nisbatan yuqoriroq. Linux yadrosida memchr() da qayta ishlangan satrlar hajmi 512 baytga etadi. Qidirilayotgan belgi satr oxirida joylashgan vaziyatda 512 baytlik satrlar uchun unumdorlikni oshirish 20% ni tashkil qiladi.

5.18 yadrosini 32 va 64 bitli arxitekturalar uchun yangi "memchr()" opsiyasi bilan sinovdan o'tkazish hech qanday muammoni aniqlamadi. “Memchr()” ning optimallashtirilgan versiyasidan foydalanganda yadro quyi tizimlarining umumiy unumdorligi hali baholanmagan va amalga oshirishni almashtirish imkoniyati tahlil qilinmagan (yadro kodida memchr() funksiyasiga qo‘ng‘iroqlar 129 marta sodir bo‘ladi. , shu jumladan drayverlar va fayl tizimlarining kodida).

Manba: opennet.ru

a Izoh qo'shish