เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆ memchr เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเบชเปเบฒเบฅเบฑเบš Linux kernel, เปเบฅเปˆเบ™เป„เบงเบ‚เบถเป‰เบ™เป€เบ–เบดเบ‡ 4 เป€เบ—เบปเปˆเบฒ.

ะ”ะปั ะฒะบะปัŽั‡ะตะฝะธั ะฒ ัะพัั‚ะฐะฒ ัะดั€ะฐ Linux ะฟั€ะตะดะปะพะถะตะฝ ะฝะฐะฑะพั€ ะฟะฐั‚ั‡ะตะน ั ะพะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝะฝะพะน ั€ะตะฐะปะธะทะฐั†ะธะตะน ั„ัƒะฝะบั†ะธะธ memchr(), ะฟั€ะธะผะตะฝัะตะผะพะน ะดะปั ะฟะพะธัะบะฐ ัะธะผะฒะพะปะฐ ะฒ ะผะฐััะธะฒะต. ะ’ ะพั‚ะปะธั‡ะธะต ะพั‚ ัั‚ะฐั€ะพะณะพ ะฒะฐั€ะธะฐะฝั‚ะฐ, ะฒ ะบะพั‚ะพั€ะพะผ ะฟั€ะธะผะตะฝัะปะพััŒ ะฟะพะฑะฐะนั‚ะพะฒะพะต ัั€ะฐะฒะฝะตะฝะธะต, ะฟั€ะตะดะปะพะถะตะฝะฝะฐั ั€ะตะฐะปะธะทะฐั†ะธั ะฟะพัั‚ั€ะพะตะฝะฐ ั ัƒั‡ั‘ั‚ะพะผ ะฟะพะปะฝะพะณะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั 64- ะธ 32-ั€ะฐะทั€ัะดะฝั‹ั… ั€ะตะณะธัั‚ั€ะพะฒ CPU. ะ’ะผะตัั‚ะพ ะฑะฐะนั‚ะพะฒ ัั€ะฐะฒะฝะตะฝะธะต ะพััƒั‰ะตัั‚ะฒะปัะตั‚ัั ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ะผะฐัˆะธะฝะฝั‹ั… ัะปะพะฒ, ั‡ั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะทะฐ ั€ะฐะท ัั€ะฐะฒะฝะธะฒะฐั‚ัŒ ะบะฐะบ ะผะธะฝะธะผัƒะผ 4 ะฑะฐะนั‚ะฐ.

ะŸั€ะธ ะฟะพะธัะบะต ะฒ ะฑะพะปัŒัˆะธั… ัั‚ั€ะพะบะฐั… ะฝะพะฒั‹ะน ะฒะฐั€ะธะฐะฝั‚ ะพะบะฐะทะฐะปัั ะฑั‹ัั‚ั€ะตะต ัั‚ะฐั€ะพะณะพ ะฟั€ะธะผะตั€ะฝะพ ะฒ 4 ั€ะฐะทะฐ (ะฝะฐะฟั€ะธะผะตั€, ะดะปั ัั‚ั€ะพะบ ะฒ 1000 ัะธะผะฒะพะปะพะฒ). ะ”ะปั ัั‚ั€ะพะบ ะฝะตะฑะพะปัŒัˆะพะณะพ ั€ะฐะทะผะตั€ะฐ ัั„ั„ะตะบั‚ะธะฒะฝะพัั‚ัŒ ะฝะพะฒะพะน ั€ะตะฐะปะธะทะฐั†ะธะธ ะฝะต ัั‚ะพะปัŒ ะทะฝะฐั‡ะธั‚ะตะปัŒะฝะฐ, ะฝะพ ะฒัั‘ ั€ะฐะฒะฝะพ ะฒั‹ัˆะต ะฟะพ ัั€ะฐะฒะฝะตะฝะธัŽ ั ะธัั…ะพะดะฝั‹ะผ ะฒะฐั€ะธะฐะฝั‚ะพะผ. ะ’ ัะดั€ะต Linux ั€ะฐะทะผะตั€ ะพะฑั€ะฐะฑะฐั‚ั‹ะฒะฐะตะผั‹ั… ะฒ memchr() ัั‚ั€ะพะบ ะดะพัั‚ะธะณะฐะตั‚ 512 ะฑะฐะนั‚. ะŸั€ะธั€ะพัั‚ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะดะปั 512 ะฑะฐะนั‚ะพะฒั‹ั… ัั‚ั€ะพะบ, ะฒ ัะธั‚ัƒะฐั†ะธะธ, ะบะพะณะดะฐ ะธัะบะพะผั‹ะน ัะธะผะฒะพะป ะฝะฐั…ะพะดะธั‚ัั ะฒ ะบะพะฝั†ะต ัั‚ั€ะพะบะธ, ัะพัั‚ะฐะฒะปัะตั‚ 20%.

ะขะตัั‚ะธั€ะพะฒะฐะฝะธะต ัะดั€ะฐ 5.18 ั ะฝะพะฒั‹ะผ ะฒะฐั€ะธะฐะฝั‚ะพะผ ยซmemchr()ยป ะดะปั 32- ะธ 64-ั€ะฐะทั€ัะดะฝั‹ั… ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ ะฝะต ะฒั‹ัะฒะธะปะพ ะบะฐะบะธั…-ะปะธะฑะพ ะฟั€ะพะฑะปะตะผ. ะžะฑั‰ะธะน ะฟั€ะธั€ะพัั‚ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะฟะพะดัะธัั‚ะตะผ ัะดั€ะฐ ะฟั€ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะธ ะพะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝะฝะพะณะพ ะฒะฐั€ะธะฐะฝั‚ะฐ ยซmemchr()ยป ะฟะพะบะฐ ะฝะต ะพั†ะตะฝะธะฒะฐะปัั, ะบะฐะบ ะฝะต ะฐะฝะฐะปะธะทะธั€ะพะฒะฐะปะฐััŒ ะธ ั†ะตะปะตัะพะพะฑั€ะฐะทะฝะพัั‚ัŒ ะทะฐะผะตะฝั‹ ั€ะตะฐะปะธะทะฐั†ะธะธ (ะฒ ะบะพะดะต ัะดั€ะฐ ะฒั‹ะทะพะฒ ั„ัƒะฝะบั†ะธะธ memchr() ะฒัั‚ั€ะตั‡ะฐะตั‚ัั 129 ั€ะฐะท, ะฒ ั‚ะพะผ ั‡ะธัะปะต ะฒ ะบะพะดะต ะดั€ะฐะนะฒะตั€ะพะฒ ะธ ั„ะฐะนะปะพะฒั‹ั… ัะธัั‚ะตะผ).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™