Kuitwa kweiyo memchr basa kwakarongedzerwa iyo Linux kernel, inomhanya kusvika ku4 nguva nekukurumidza

Seti yezvigamba zvine optimized kuita memchr () basa, rinoshandiswa kutsvaga chiratidzo muhurongwa, rave kukurudzirwa kuti riiswe muLinux kernel. Kusiyana neyakare vhezheni, iyo yakashandisa byte-by-byte kuenzanisa, iyo yakarongwa yekumisikidzwa inovakwa uchifunga nezvekushandisa kwakazara kwe64- uye 32-bit CPU marejista. Panzvimbo pemabheti, kuenzanisa kunoitwa uchishandisa mazwi emuchina, ayo anobvumira kanenge 4 bytes kuenzaniswa panguva.

Paunenge uchitsvaga mumatambo makuru, sarudzo itsva yakave yakakurumidza 4 nguva kupfuura yekare (somuenzaniso, kune tambo dzemavara 1000). Kune tambo diki, kushanda kweiyo kutsva kwekushandisa hakuna kunyanya kukosha, asi kuchiri kwakakwira kana ichienzaniswa neshanduro yekutanga. MuLinux kernel, saizi yetambo dzakagadziriswa memchr () inosvika 512 bytes. Kubudirira kwekuita kwe512 byte tambo, mumamiriro ezvinhu apo unhu hwakatsvaga huri pamagumo etambo, i20%.

Kuedza iyo 5.18 kernel neiyo nyowani "memchr()" sarudzo ye32-bit uye 64-bit architecture haina kuratidza chero matambudziko. Kuwana kwese kwekuita kwe kernel subsystems kana uchishandisa iyo yakagadziridzwa vhezheni ye "memchr ()" haisati yaongororwa, uye kugona kwekutsiva iyo kuita kwakaongororwa (mune kernel kodhi, kufona kune memchr () basa rinoitika 129 nguva. , kusanganisira mune kodhi yevatyairi uye mafaera masisitimu).

Source: opennet.ru

Voeg