Zhvilluesi i lojërave Malte Skarupke krahasimi i performancës së bllokimeve të bazuara në dhe me përdorimin e planifikuesve të ndryshëm të detyrave. Testet treguan vonesa anomalisht të mëdha kur përdorej Spinlock me planifikuesin e detyrave që përdoret si parazgjedhje në Linux. Autori i testeve arriti në përfundimin se planifikuesi i detyrave në Linux ka probleme që ndikojnë negativisht në performancën e lojërave të zhvilluara për shërbimin Google Stadia, ku lojërat ekzekutohen në GPU në ambientin e mjegullt, dhe për klientin transmetohet vetëm përmbajtja e ekranit me një frekuencë prej deri në 60 kadra në sekondë. Nën këto kushte, është e nevojshme të sigurohet çdoherë transmetimi në kohë të kadreve në ekran dhe vonesat që tejkalojnë një milisekondë bëhen të dukshme.
Për të diskutuar testet Linus Torvalds, i cili i cilësoi ato si plehra («pure garbage») dhe si një shembull se si mund të arrish, pa e kuptuar plotësisht temën, parametra që nuk përfaqësojnë realitetin. Spinlock është një primitiv i nivelit të ulët, i cili duhet të përdoret me shumë kujdes në hapësirën e përdoruesit dhe duke e kuptuar plotësisht detajet, përndryshe mund të përfitoni diçka që u demonstruar nga autori i testit. Linus u këshilloi zhvilluesve të lojërave të mos përdorin spinlock dhe të mos përpiqen të ndërtuan sisteme të veta bllokimi mbi këtë bazë, por të përdorin mekanizmat ekzistues të provuar, që informojnë sistemin për pritjen e lirimit të bllokimit për të shmangur ndikimin e planifikuesit.
Përdorimi i rrotullimeve mbi bazën e Spinlock mund të jetë i vlefshëm vetëm kur jeni të sigurt se planifikuesi nuk do ta ndërpresë atë. Bllokimet e testuara mbi bazën e spinlock janë implementuar përmes një mbështetjeje të krijuar vetë, e cila operon në hapësirën e përdoruesit. Plani i detyrave mund të marrë kontrollin në çdo moment të rastësishëm gjatë ekzekutimit të kësaj mbështetjeje dhe të kalojë në ekzekutimin e një detyre tjetër. Duke qenë se matja e performancës bazohet në vlerat absolute të timerit, disa nga testet e vonesave mbulojnë jo vetëm vonesat në trajtimin e bllokimit, por edhe kodin që është ekzekutuar në një kontekst tjetër, pra maten jo vetëm ato që autori i testit mundohet të masë, por edhe "zhurmën" nga llogaritjet e tjera në sistem.
Autori i testit për të kundërshtuar Linusin, duke theksuar se përdorimi i sistemeve të bllokimit mbi bazën e spinlock shpesh praktikohet në lojëra, pasi me përdorimin e planifikuesve më të thjeshtë se në Linux, testet tregojnë performancë më të lartë. Linus , që planifikuesi Linux është universale, është rafinuar për dekada dhe është optimizuar jo vetëm për desktop dhe lojëra, por edhe për lloje të tjera ngarkese, si sistemet server, prandaj merr parasysh shumë nuanca gjatë planifikimit të ekzekutimit të detyrave.
Shtimi i optimizimeve specifike që do të lejojnë të reduktohen vonesat në lojërat Google Stadia mund të rrisë reagimin në një rast të caktuar, por me sa duket do të sjellë një ulje të efikasitetit të planifikuesit në tërësi. Për shembull, planifikuesi Windows sillet më mirë në testet e diskutueshme, pasi është ndjeshëm më i thjeshtë se planifikuesi Linux dhe është optimizuar kryesisht për detyra specifike të desktopit.
Burimi: opennet.ru
