Ukuqaliswa komsebenzi we-memchr kuphakanyiswe i-kernel ye-Linux, egijima ngokushesha izikhathi ezi-4

Isethi yamapeshi anokusetshenziswa okuthuthukisiwe komsebenzi we-memchr(), osetshenziselwe ukusesha uphawu kumalungu afanayo, iphakanyiswe ukuthi ifakwe kuhlu lwe-Linux. Ngokungafani nenguqulo yakudala, esebenzisa ukuqhathanisa kwe-byte-by-byte, ukuqaliswa okuhlongozwayo kwakhiwe kucatshangelwa ukusetshenziswa okugcwele kwamarejista we-CPU angama-64 nama-32-bit. Esikhundleni samabhayithi, ukuqhathanisa kwenziwa kusetshenziswa amagama omshini, okuvumela okungenani amabhayithi angu-4 ukuba aqhathaniswe ngesikhathi.

Lapho usesha ezintanjeni ezinkulu, inketho entsha ivele yashesha cishe izikhathi ezi-4 kunendala (isibonelo, iyunithi yezinhlamvu enezinhlamvu eziyi-1000). Kuzintambo ezincane, ukusebenza kahle kokuqaliswa okusha akubalulekile kangako, kodwa kusephezulu uma kuqhathaniswa nenguqulo yokuqala. Ku-Linux kernel, usayizi wezintambo ezicutshungulwe ku-memchr() ufinyelela ku-512 bytes. Inzuzo yokusebenza yeyunithi yezinhlamvu engu-512 byte, esimweni lapho uhlamvu oluseshiwe lusekupheleni kweyunithi yezinhlamvu, ingu-20%.

Ukuhlola i-5.18 kernel ngenketho entsha ye-"memchr()" ye-32-bit kanye ne-64-bit architecture akuvezanga izinkinga. Inzuzo yonke yokusebenza ye-kernel subsystems uma kusetshenziswa inguqulo ethuthukisiwe ye-“memchr()” akukakahlolwa, futhi nokwenzeka kokuthatha indawo yokusetshenziswa akukahlaziywa (kukhodi ye-kernel, izingcingo eziya ku-memchr() umsebenzi zenzeka izikhathi eziyi-129. , okuhlanganisa kukhodi yabashayeli nezinhlelo zamafayela).

Source: opennet.ru

Engeza amazwana