Palaksanaan fungsi memchr geus diajukeun pikeun kernel Linux Ubuntu, ngajalankeun nepi ka 4 kali leuwih gancang

Hiji set patch kalawan palaksanaan dioptimalkeun tina memchr () fungsi, dipaké pikeun milarian simbol dina Asép Sunandar Sunarya, geus diajukeun pikeun citakan dina kernel Linux Ubuntu. Teu kawas versi heubeul, nu dipaké bait-demi-bait ngabandingkeun, palaksanaan diusulkeun diwangun nyokot kana akun pamakéan pinuh ku 64- sarta 32-bit CPU registers. Gantina bait, ngabandingkeun dipigawé maké kecap mesin, nu ngidinan sahanteuna 4 bait bisa dibandingkeun dina hiji waktu.

Nalika milarian dina senar ageung, pilihan énggal janten sakitar 4 kali langkung gancang tibatan anu lami (contona, pikeun senar 1000 karakter). Pikeun string leutik efisiensi palaksanaan anyar teu jadi signifikan, tapi masih leuwih luhur dibandingkeun versi aslina. Dina kernel Linux, ukuran string diolah dina memchr () ngahontal 512 bait. Gain kinerja pikeun 512 bait string, dina kaayaan dimana karakter searched aya dina tungtung string, nyaeta 20%.

Nguji kernel 5.18 kalayan pilihan "memchr ()" anyar pikeun arsitéktur 32-bit sareng 64-bit henteu ngungkabkeun masalah naon waé. Gain kinerja sakabéh subsistem kernel lamun ngagunakeun versi dioptimalkeun tina "memchr ()" teu acan ditaksir, atawa boga feasibility ngagantian palaksanaan geus dianalisis (dina kode kernel, nelepon ka memchr () fungsi lumangsung 129 kali. , kaasup dina kode supir sareng sistem file).

sumber: opennet.ru

Tambahkeun komentar