MĂ”ned sĂ”nad meie tĂ”lkebĂŒroost: tavaliselt pĂŒĂŒtakse tĂ”lkida kĂ”ige vĂ€rskemaid materjale ja avaldusi, ja me ei ole erand. Kuid terminalid ei ole just need, mis uuenevad kord nĂ€dalas. SeetĂ”ttu tĂ”lkisime teile Antoine BoprĂ© artikli, mis ilmus 2018. aasta kevadel: vaatamata oma âvanuseleâ on see meie arvates endiselt asjakohane. Lisaks on originaal kahe artikli seeria, kuid otsustasime need ĂŒhendada ĂŒheks suureks postituseks.

Terminalid mĂ€ngivad arvuti ajaloos erilist rolli, kuid viimastel aastakĂŒmnetel on nad olnud sunnitud koos kĂ€sureaga ellu jÀÀma, kuna graafilised liidesed on laialdaselt levinud. asendasid oma , mis olid omakorda muudetud sĂŒsteemidest, mis kasutasid puidust kaartide ja lĂŒlitite sĂŒsteemi. Kaasaegsed distributsioonid pakuvad hulganisti terminali emulaatoreid eri vormide ja vĂ€rvitoonidega. Kuigi paljud on rahul standardse terminaliga, mille nende töökeskkond pakub, kasutavad mĂ”ned uhkusega tĂ”eliselt eksootilist tarkvara, et kĂ€ivitada oma lemmik shelli vĂ”i tekstiredaktorit. Kuid nagu me sellest artiklist nĂ€eme, ei ole kĂ”ik terminalid loodud ĂŒhesuguseks: need erinevad ĂŒksteisest funktsionaalsuse, suuruse ja tulemuslikkuse osas.
MĂ”ned terminalid on varustatud ĂŒllatavalt suurte turvaaukudega, lisaks omavad enamik tĂ€iesti erinevat funktsioonide komplekti, alates vahekaardiga liidese tosupportamisest kuni skriptideni. Kuigi me , on see artikkel varasemate materjalide uuendamine, mis aitab lugejatel kindlaks teha, millist terminali kasutada 2018. aastal. Artikli esimeses pooles vĂ”rreldakse funktsioone ja teises hinnatakse tulemuslikkust.
Siin on minu ĂŒlevaatuses seotud terminalid:

VĂ”imalik, et need ei ole kĂ”ige uuemad versioonid, kuna piirdusin stabiilsete kogumitega hetkel, mil materjali kirjutasingi, mille suutsin tööle saada Debian 9 vĂ”i Fedora 27 peal. Ainsaks erandiks on Alacritty. See on GPU-kiirenduse kasutav terminal ja on kirjutatud ebatavalisel ja uuel keelel - Rust. VĂ€lja jĂ€tsin oma ĂŒlevaatest veebiterminalid (sealhulgas ka ), sest eeltestid nĂ€itasid nende ÀÀrmiselt madalat jĂ”udlust.
Unicode-toe olemasolu
Alustasin oma teste Unicode-toe hindamisega. Terminaalide esimene test oli kuvada Unicode'i stringi : "Ă©, Î, Đ, ڧ, Ù , àč, ă, ć¶, è ja ë§". See lihtne test nĂ€itab, kas terminal suudab töötada kogu maailmas. Terminal xterm ei kuva araabia tĂ€hemĂ€rki vaikimisi seadistuses:

Vaikimisi kasutab xterm klassikalist "fikseeritud" fonti, mis vastavalt , sisaldab âmĂ€rkimisvÀÀrset Unicode katvust alates 1997. aastastâ. Selles fondis toimub midagi, mis pĂ”hjustab sĂŒmboli kuvamise tĂŒhjana, ja ainult siis, kui teksti fondi suurust suurendada 20+ punktini, hakkab sĂŒmbol lĂ”puks Ă”igesti kuvama. Siiski rikub selline âparandusâ teiste Unicode sĂŒmbolite kuvamist:

Need ekraanipildid tehti Fedora 27-s, kuna see andis paremaid tulemusi kui Debian 9, kus mĂ”ned vanemad terminaliversioonid (konkreetsemalt â mlterm) ei suutnud fonte korralikult kĂ€sitleda. Ănneks on see hiljemates versioonides parandatud.
NĂŒĂŒd pöörake tĂ€helepanu xterm-is oleva rea kuvamisele. Selgub, et sĂŒmbol Mem ja sellele jĂ€rgnev Semitic kuuluvad RTL () stiilide alla, seega peaksid nad tehniliselt kuvama paremale. Veebibrauserid, nĂ€iteks Firefox 57, töötlevad ĂŒlaltoodud rida Ă”igesti. Lihtsam nĂ€ide RTL-tekstist on sĂ”na ââ heebrea keeles (). ĂŒtleb jĂ€rgmist:
âPaljud arvutiprogrammid ei suuda kahe suunalist teksti Ă”igesti kuvada. NĂ€iteks juudi nimi âSaraâ koosneb tĂ€htedest sin (Ś©) (mis tuleb paremale), seejĂ€rel resh (Śš) ja lĂ”puks chet (Ś) (mis peaks ilmuma vasakule).â
Paljud terminalid ei lĂ€binud seda testi: Alacritty, Gnome ja XFCE VTE-pĂ”hised terminalid, urxvt, st ja xterm kuvavad âSaraâ vastupidises jĂ€rjekorras, nagu oleksime selle nime kirjutanud kui âArasâ.

Teine kahe suunalise teksti probleem on see, et neid tuleb kuidagi joondada, eriti kui tegemist on RTL ja LTR tekstide segamisega. RTL stsenaariumid peaksid algama terminali akna paremas servas, kuid mis peaks juhtuma terminalidega, mis vaikimisi töötavad LTR-inglise keeles? Enamik neist ei oma mingeid spetsiaalseid mehhanisme ja joondavad kogu teksti vasakule (sealhulgas Konsole). Eranditeks on pterm ja mlterm, mis jÀrgivad standardeid ja joondavad sellised read paremale.

Sisestamise kaitse
JÀrgmine kriitiline omadus, mille ma enda jaoks mÀÀratlesin, on sisestamise kaitse. Kuigi on laialdaselt teada, et sellised loitsud:
$ curl http://example.com/ | shon koodide tĂ€itmiseks mĂ”eldud push-kĂ€sklused, kuid vĂ€he on neid, kes teavad, et peidetud kĂ€sud vĂ”ivad kopitud ja kleebitud veebibrauserist konsooli sattuda, isegi pĂ€rast pĂ”hjalikku ĂŒlevaatamist. tĂ”husalt illustreerib, kuidas nĂ€iliselt kahjutu kĂ€sk:
git clone git://git.kernel.org/pub/scm/utils/kup/kup.gitmuutub Horni saidilt kleepimisel terminalis tÔeliseks probleemiks:
git clone /dev/null;
clear;
echo -n "Tere ";
whoami|tr -d 'n';
echo -e '!nSee oli halb mĂ”te. Ăra kopeeri koodi veebilehtedelt, mida sa ei usalda!
Siin on esimene rida sinu /etc/passwd: ';
head -n1 /etc/passwd
git clone git://git.kernel.org/pub/scm/utils/kup/kup.gitKuidas see töötab? Kahjulik kood on eraldatud plokki , mis on CSS-i vahendite abil kasutaja silmist eemaldatud.
on selgelt ette nĂ€htud sarnaste rĂŒnnakute neutraliseerimiseks. Sel moel paigutavad terminalid sisestatud teksti paaridesse erilistesse escape-jĂ€rjestustesse, et teavitada shelli selle teksti pĂ€ritolust. Nii saab shell signaali, et ta vĂ”ib ignoreerida neid erimĂ€rke, mida sisestatud tekst vĂ”iks sisaldada. KĂ”ik terminalid, sealhulgas austatav xterm, toetavad seda funktsiooni, kuid Bracketed-reĆŸiim vajab toetust samuti shellilt vĂ”i rakenduselt, mis töötab terminalis. NĂ€iteks tarkvara, mis kasutab (sama Bash), vajab faili ~ /.inputrc:
set enable-bracketed-paste onKahjuks nĂ€itab Horni testimisait ka seda, kuidas seda kaitset ĂŒletada teksti enda vormindamise kaudu ja Bracketed-reĆŸiimi rakendamise enneaegse lĂ”petamisega. See töötab, sest mĂ”ned terminalid filtreerivad escape-jĂ€rjestused valesti enne omaenda lisamist. NĂ€iteks ei suutnud ma isegi Ă”ige konfiguratsiooni korral oma teste Konsole'is edukalt lĂ”petada .inputrc faili. See tĂ€hendab, et saate kergesti kahjustada sĂŒsteemi konfiguratsiooni toetamata rakenduse vĂ”i vale seadistuse tĂ”ttu. See on eriti ohtlik kaugserveritele logimise korral, kus konfiguratsiooni hoolikas töötlus esineb harvemini, eriti kui teid on palju selliseid kaugmasinaid.
Hea lahendus selle probleemi jaoks on terminali kinnitusplugin urxvt, mis lihtsalt kĂŒsib luba igasuguste uute ridadega teksti kleepimiseks. Minu jaoks pole selle kirjeldatud Horno tekstirĂŒnnaku jaoks turvalisemat varianti.
Vahekaartide ja profiilide
Populaarne funktsioon, mida nĂŒĂŒd toetatakse, on sakkide liidese tugi, mida mÀÀratleme kui ĂŒhe terminali akna, mis sisaldab endas veel mitmeid terminale. Erinevate terminalide jaoks erineb see funktsioon ning kuigi traditsioonilised xterm tĂŒĂŒpi terminalid ei toeta ĂŒldse sakke, on kaasaegsemad terminali versioonid nagu Xfce Terminal, GNOME Terminal ja Konsole selle funktsiooni omavad. Samuti on sakivaatamistoetuse olemas Urxvt, kuid ainult juhul, kui kasutatakse pluginat. Kuid sakivaatamise toetuse osas on terminator absoluutne liider: see toetab mitte ainult sakke, vaid suudab terminale paigutada ka suvalisse jĂ€rjekorda (vt allolevat pilti).

Teise olulise omadusena vĂ”imaldab Terminator ârĂŒhmitadaâ need sakkid kokku ja saata samu klahvivajutusi mitu terminali korraga, mis pakub jĂ€medat tööriista massiliste toimingute tegemiseks mitmel serveril korraga. Sarnane funktsioon on olemas ka Konsole'is. Selle funktsiooni kasutamiseks teistes terminalides on vajalik kolmanda osapoole tarkvara, nagu , vĂ”i .
Eriti hĂ€sti töötavad sakkid koos profiilidega: nĂ€iteks vĂ”ite omada ĂŒhte sakkid e-kirjade jaoks, teist jututoas jne. Seda toetavad hĂ€sti terminalid Konsole ja GNOME Terminal. MĂ”lemad vĂ”imaldavad igal sakkidel automaatselt kĂ€ivitada oma profiili. Terminator toetab samuti profiile, kuid ma ei leidnud viisi teatud programmide automaatseks kĂ€ivitamiseks, kui avatakse konkreetne sakk. Teised terminalid ei tunne ĂŒldse mĂ”istet âprofiilâ.
RĂŒĂŒsid
Viimased, mida ma esimeses osas kĂ€sitlen, on terminalide vĂ€limus. NĂ€iteks GNOME, Xfce ja urxvt toetavad lĂ€bipaistvust, kuid hiljuti on nad taustapiltide toe lĂ”petanud, mis on sundinud mĂ”nda kasutajat ĂŒle minema terminalile. . Isiklikult mul see sobib ja on lihtsalt Xresources, mis seadistab urxvt jaoks pĂ”hikomplekti taustavĂ€rve. Siiski vĂ”ivad mittestandardsete vĂ€rviteemade kasutamine tekitada probleeme. NĂ€iteks, rakendustega ja , kuna need kasutavad juba oma vĂ€rve.
ei toetanud vĂ€rve ja uued olid sageli piiratud 256 vĂ€rvi paletiga. Kogenud kasutajatele, kes stiilivad oma terminale, vĂ”ivad kĂ€surea vĂ”i oleku ridadel keerulised viisid osutuda ebamugavaks piiranguks. jĂ€lgib, millised terminalid toetavad "True Color". Minu testid kinnitavad, et st, Alacritty ja VTE-pĂ”hised terminalid toetavad True Colorit suurepĂ€raselt. Teised terminalid ei tunne end selles osas eriti hĂ€sti ja ei nĂ€ita isegi 256 vĂ€rvi. Allpool nĂ€ete erinevust True Color toetuses GNOME, st ja xterminaalide vahel, mis teevad selle ĂŒlesande 256-vĂ€rvilise paletiga hĂ€sti, ja urxvt, mis mitte ainult ei pruugi testi lĂ€bida, vaid nĂ€itab isegi vilkuvaid sĂŒmboleid.

MĂ”ned terminalid analĂŒĂŒsivad ka teksti URL-mustrite tuvastamiseks, et muuta lingid klikkimiseks sobivaks. See kehtib kĂ”igi VTE-pĂ”histe terminalide kohta, samas kui urxvt vajab spetsiaalset plugina, mis muudab URL-aadresse klikkimise vĂ”i klahvikombinatsiooni abil. Teised testitud terminalid kuvavad URL-e muul viisil.
LÔpuks on uus trend terminalides - kerimisbuffri valikulisus. NÀiteks st-s puudub kerimisbuffers; eeldatakse, et kasutaja kasutab terminali multiplexerit, nagu tmux ja .
Alacritty-l puuduvad ka tagasikerimise moodulid, kuid selle tugi «ulatusliku tagasiside» tÔttu sellel teemal kasutajatelt. Lisaks nendele eranditele toetab iga kontrollitud terminal, mille ma suutsin leida, tagasikerimist.
VahekokkuvÔte
Teises osas materjalist (originaalis olid need kaks erinevat artiklit, â toimetaja mĂ€rkus.) vĂ”rdleme jĂ”udlust, mĂ€lu kasutamist ja viivitust. Kuid me nĂ€eme juba, et mĂ”ned arutatavad terminalid omavad tĂ”siseid puudusi. NĂ€iteks vĂ”ivad regulaarsetes RTL-skriptidega töötavad kasutajad pöörata tĂ€helepanu mltermile ja ptermile, kuna need saavad sellega paremini hakkama kui teised. Konsole on samuti hĂ€sti esinenud. RTL-skriptidega mitte töötavad kasutajad vĂ”ivad valida midagi muud.
Turvalisuse seisukohalt paistab urxvt silma oma erilise kaitsetehnoloogia poolest, mis kaitseb kahjuliku koodi lisamise rĂŒnnakute eest â see tundub tĂ”eliselt mugav. Neile, kes otsivad rohkem funktsioone, tasub vaadata Konsole'i. LĂ”puks vÀÀrib mĂ€rkimist, et VTE on suurepĂ€rane baas terminalide jaoks, tagades toega vĂ€rve, URL-ide tuvastamise ja nii edasi. Esmapilgul vĂ”ib teie lemmikeskeskkonnaga kaasasolev vaike-terminal vastata kĂ”igile nĂ”udmistele, kuid jĂ€tame selle kĂŒsimuse lahtiseks, kuni saame aru jĂ”udlusest.
JĂ€tkame vestlust
Tegelikult vĂ”ib terminalide jĂ”udlus tunduda liialdatud probleemina, kuid nagu selgus, nĂ€itavad mĂ”ned neist ĂŒllatavalt suurt viivitust sellise fundamentaalse tarkvara jaoks. Samuti vaatleme edasi seda, mida tavaliselt nimetatakse âkiirusâ (tĂ”epoolest, see on kerimise kiirus) ja terminali mĂ€lu tarbimist (kortsu silmas pidades, et tĂ€na ei ole see nii kriitiline kui kĂŒmneid aastaid tagasi).
Viivitus
PÀrast terminalide jÔudluse pÔhjalikku uurimist jÔudsin jÀreldusele, et selle osas on kÔige olulisem parameeter viivituse suurus (ping). Oma artiklis Pavel Fatin vaatas erinevate tekstiredaktorite viivitust ja vihjas, et terminalid vÔivad selles osas töötada aeglasemalt kui kÔige kiiremad tekstiredaktorid. Just see vihje tÔi mind lÔpuks oma testide lÀbiviimisele ja selle artikli kirjutamisele.
Aga mis on viivitus ja miks see on nii oluline? Oma artiklis mÀÀratles Fatin selle kui «viivituse klahvi vajutamise ja vastava ekraani uuendamise vahel» ning tsiteeris , milles öeldakse: «Ekraanil visuaalse tagasiside viivitus mÔjutab oluliselt masinakirjutaja kÀitumist ja rahulolu».
Fatin selgitab, et see pinge on sĂŒgavamate tagajĂ€rgedega kui pelgalt rahulolu: "trĂŒkkimine muutub aeglasemaks, vigu tekib rohkem, silmade ja lihaste pinge suureneb." TeisisĂ”nu, suurem viivitus vĂ”ib viia trĂŒkivigadeni ning koodi kvaliteedi langusele, suurendades aju tĂ€iendavat kognitiivset koormust. Kuid mis veel hullem, pinge "suurendab silmade ja lihaste pinget", mis viitab selgelt sellele, et tulevikus (ilmselt mĂ”tleb autor silmade, selja, kĂ€te ja loomulikult nĂ€gemise probleemidele â tĂ”lkija mĂ€rkus.) korduva pinge tĂ”ttu.
MĂ”ned neist mĂ”judest on ammu tuntud ning 1976. aastal ajakirjas Ergonomics avaldatud tulemused nĂ€itavad, et 100 millisekundi viivitus "halvendab mĂ€rkimisvÀÀrselt trĂŒkkimise kiirus." Hiljuti viidi GNOME'i kasutajate juhendisse vastuvĂ”etav reageerimisaeg Microsoft Research nĂ€itab, et ideaal on 1 millisekund.
Fatin viis oma teste lĂ€bi tekstiredaktorites; ta lĂ”i portaabeltööriista nimega , mida kasutasin pingete kontrollimiseks terminali emulatorites. Pidage meeles, et test viidi lĂ€bi simuleerimisreĆŸiimis: tegelikult peab arvesse vĂ”tma ka sisendi (klaviatuur, USB-kontroller jne) ja vĂ€ljundi (videokaardi puhversĂ€ilitamine, monitor) hilinemist. Fateri sĂ”nul on tĂŒĂŒpilistes konfiguratsioonides see umbes 20 ms. MĂ€ngijate varustusega on vĂ”imalik saavutada tulemuseks ainult 3 millisekundit. Kuna meil on juba nii kiire varustus, ei tohiks rakendus veelgi oma viivitust lisada. Fatini eesmĂ€rk on viia rakenduse viivitus 1 millisekundini vĂ”i vĂ”imalusel saavutada mÀÀramatute viivitustenii, IntelliJ IDEA 15 .
Siin on minu mÔÔtmiste tulemused, samuti mÔned Fatini tulemused, et nÀidata, et minu eksperiment on kooskÔlas tema testidega:

Esimene, mis mind ĂŒllatas, oli vanade programmide, nagu xterm ja mlterm, parem reageerimisaeg. Kehvema katkestuse latentsus (2,4 ms) saavutas tulemused, mis olid paremad kui kĂ”ige kiiremal tĂ€napĂ€evasel terminalil (10,6 ms st jaoks). Ăkski tĂ€napĂ€evane terminal ei jÀÀ alla 10 millisekundi lĂ€vendile. Eriti Alacritty ei vasta nĂ”uetele, et olla "kiireim olemasolevatest terminali emulatoritest," kuigi selle tulemused on paranenud pĂ€rast esimese kontrolli 2017. aastal. TĂ”epoolest, projekti autorid ja töötavad kuvamise parendamise nimel. Samuti tuleb mĂ€rkida, et GTK3-d kasutav Vim on oma GTK2 analoogist vĂ”rreldes oluliselt aeglasem. Sellest vĂ”ib jĂ€reldada, et GTK3 tekitab tĂ€iendavat latentsust, mis kajastub kĂ”igis teistes terminalides, mis seda kasutavad (Terminator, Xfce4 Terminal ja GNOME Terminal).
Kuid silmale vÔivad erinevused olla mÀrkamatud. Nagu selgitab Fatin: "ei ole alati vajalik teadvustada viivitust, et see oleks teie jaoks efektiivne." Fatin hoiatab ka standardhÀlbe eest: "kÔik katkestused viivituse kestuses (vÀrisemine) pÔhjustavad tÀiendavat koormust nende ettearvamatuse tÔttu."

Ălaltoodud graafik on saadud puhtal Debian 9 (stretch) pĂ”hjal . See keskkond annab parimad tulemused viivituse mÀÀramise testides. Nagu selgus, loob GNOME kĂ”igi mÔÔtmiste jaoks tĂ€iendava 20 ms pingi. Sellele vĂ”ib olla vĂ”imalik seletus, et olemas on programmid, mis töötlevad sisendite sĂŒndmusi sĂŒnkroonselt. Fatin toob selle juhtumi jaoks nĂ€iteks , mis lisab viivituse, töötledes kĂ”ik sisend-sĂŒndmused sĂŒnkroonselt. Vaikimisi on GNOME varustatud ka aknahalduriga , mis loob tĂ€iendava puhverdamise taseme, mis mĂ”jutab pingi ja lisab vĂ€hemalt 8 millisekundi viivitust.

Kerimiskiirus
JĂ€rgmine test on traditsiooniline «kiirus» vĂ”i «bĂ€nnide» kontroll, mis mÔÔdab, kui kiiresti terminal suudab lehte sirvida, kuvades suurt hulka teksti ekraanil. Testi mehhaanika varieerub; algne test koosnes lihtsalt sama teksti rea genereerimisest kĂ€suga seq. Teised testid hĂ”lmavad Thomas E. Dicki kontrolli (kaasa arvatud xterm), mille raames toimub korduv . Veel ĂŒhes terminalide jĂ”udluse ĂŒlevaates kasutab base32 kodeeringus juhuslike baitide rida, mis nĂ€idatakse terminalis kĂ€suga cat. Luu peab sellist testi "nii kasutuks standardiks, kui see vaid mĂ”eldav on", ning soovitab selle asemel kasutada terminali vastust pĂ”hinĂ€itajana. Diki nimetab oma testi eksitavaks. Siiski tunnustavad mĂ”lemad autorid, et terminali akna lĂ€bilaskevĂ”ime vĂ”ib olla probleem. Luu avastas Emacs Eshelli kĂŒlmumise suurte failide kuvamisel, samas kui Diki optimeeris terminali, et vabaneda visuaalsest aeglustumisest xtrerm. SeetĂ”ttu on selles testis ikkagi teatud mĂ”te, kuid kuna renderdamisprotsess erineb terminalist terminali, saab seda kasutada ka testkomponendina teiste parameetrite kontrollimiseks.

Siit nĂ€eme, et rxvt ja st tĂ”usevad konkurentide seas esile, neid jĂ€rgneb palju uuem Alacritty, mis on vĂ€lja töötatud jĂ”udluse rĂ”huasetusega. JĂ€rgmised on Xfce (VTE perekond) ja Konsole, mis töötavad peaaegu kaks korda kiiremini. LĂ”pus on xterm, mis on viis korda aeglasem kui rxvt. Testi ajal nĂ€itas xterm ka tugevat virvendamist, mööduvat teksti oli raske nĂ€ha, isegi kui see oli sama rida. Konsole osutus kiireks, kuid aeg-ajalt âpettesâ: kuvamine jÀÀb mĂ”nikord pidama, nĂ€idates teksti osaliselt vĂ”i mitte nĂ€idates seda ĂŒldse. Teised terminalid, sealhulgas st, Alacritty ja rxvt, nĂ€itasid ridu selgelt.
Diki selgitab, et jĂ”udluse erinevused tulenevad erinevate terminalide kerimisbuffrite disainist. EelkĂ”ige sĂŒĂŒdistab ta rxvt ja teisi terminale selles, et need "ei jĂ€rgi ĂŒldisi reegleid":
Erinevalt xterm'ist ei pĂŒĂŒdnud rxvt kĂ”iki vĂ€rskendusi kuvada. Kui see jÀÀb maha, loobub see mĂ”nedest vĂ€rskendustest, et jĂ€rgida, mis on rohkem mĂ”jutanud nĂ€iliselt kerimise kiirusest kui sise-mĂ€lu korraldusest. Ăheks puuduseks oli see, et ASCII animatsioon oli pisut ebatĂ€pne.
Selle nĂ€ilise aegluse parandamiseks xterm'i puhul soovitab Dick kasutada ressurssi , mis vĂ”imaldab xterm'il filtreerida mĂ”ned ekraani vĂ€rskendused, et mitte maha jÀÀda voost. Minu testid kinnitavad, et fastScroll parandab jĂ”udlust ja tĂ”stab xterm'i rxvt tasemele. See aga on ĂŒsna jĂ€ik lahendus, nagu Dick ise selgitab: "MĂ”nikord tundub xterm - nagu konsool - peatuma, kuna ootab uut ekraani vĂ€rskenduste komplekti pĂ€rast seda, kui mĂ”ned neist on eemaldatud". Sellega seoses nĂ€ib, et teised terminalid on leidnud parima tasakaalu kiiruse ja ekraani terviklikkuse vahel.
Ressursikasutamine
Hoolimata sellest, kui asjakohaseks vÔiks pidada kerimise kiirusest rÀÀkimist kui jÔudluse nÀitajast, vÔimaldab see test simuleerida koormust terminalides, mis omakorda vÔimaldab meil mÔÔta teisi parameetreid, nagu mÀlu vÔi ketta kasutamine. Metrika saadakse, kÀivitades antud testi. seq Python protsessi jÀlgimise all. See kogus loenduri andmeid. kuna ru_maxrss, summa ru_oublock ja ru_inblock ja lihtne ajataimer.

Sel testil saavutab ST esikoha kĂ”ige vĂ€iksema keskmise mĂ€lu tarbimisega 8 MB, mis pole ĂŒllatav, arvestades, et projekti pĂ”hieesmĂ€rk on lihtsus. Natuke rohkem tarbivad mlterm, xterm ja rxvt â umbes 12 MB.Veel ĂŒks silmapaistev tulemus on Alacritty, mille tööks on vajalik 30 MB. JĂ€rgmisel kohal on VTE pere terminĂĄlid, mille nĂ€itajad ulatuvad 40-60 MB-ni, mis on ĂŒsna palju. Selline tarbimine on seletatav sellega, et need terminalid kasutavad kĂ”rgema taseme teeke, nagu GTK. Konsole jÀÀb viimaseks, tarbides testi ajal tohutult 65 MB mĂ€lu, kuigi seda saab Ă”igustada tema ulatusliku funktsioonide komplektiga.
vĂ”rreldes kĂŒmne aasta taguste tulemustega, on kĂ”ik programmid hakanud oluliselt rohkem mĂ€lu tarbima. Varem nĂ”udis Xterm 4 MB, kuid nĂŒĂŒd vajab see kĂ€ivitamiseks 15 MB. Samuti on rxvt kasvanud ja nĂ”uab nĂŒĂŒd koheselt 16 MB. Xfce terminal vĂ”tab 34 MB, mis on kolm korda rohkem kui varem, samas kui GNOME Terminal vajab vaid 20 MB. Loomulikult viidi kĂ”ik varasemad testid lĂ€bi 32-bitistel arhitektuuridel. LCA 2012 sĂŒndmuses rÀÀkis Rasti Russell , et on palju peenemaid pĂ”hjuseid, mis vĂ”ivad seletada mĂ€lutarbimise suurenemist. Sellega seoses elame tĂ€napĂ€eval ajal, mil meil on terveid gigabaite mĂ€lu, nii et me saame sellega kuidagi hakkama.
Siiski ei saa ma minema jĂ€tta tunnet, et suurema mĂ€lu eraldamine nii pĂ”hilisele tarkvarale nagu terminal on lihtsalt ressursi raiskamine. Need programmid peaksid olema kĂ”ige vĂ€iksemad, suutma töötada igasugune 'karbis', isegi kingakarbis, kui peaksime kunagi olukorda, kus need peavad olema varustatud Linux-sĂŒsteemidega (ja teate kĂŒll, et see tuleb). Kuid nende numbritega muutub mĂ€lu kasutamine tulevikus probleemiks igas keskkonnas, kui avada mitu terminali, vĂ€lja arvatud olukord, kus on mĂ”ned kĂ”ige kergemad ja piiratud vĂ”imalustega. Selle kompenseerimiseks on GNOME Terminalil, Konsolel, urxvt-l, Terminatoril ja Xfce Terminalil Daemon-reĆŸiim, mis vĂ”imaldab hallata mitut terminali ĂŒhe protsessi kaudu, piirates nende mĂ€lu tarbimist.

Oma testide kĂ€igus jĂ”udsin veel ĂŒhe ootamatu tulemuseni, mis puudutab ketta lugemist-kirjutamist: ma ei oodanud siit ĂŒldse midagi nĂ€ha, kuid selgus, et mĂ”ned terminalid kirjutavad kĂ”ige suuremaid andmeid ketta. NĂ€iteks VTE teek hoiab tegelikult ketas kerimise vahemĂ€lu (see omadus , ja see toimub siiani). Kuid erinevalt vanadest rakendustest on nĂŒĂŒd vĂ€hemalt need andmed AES256 GCM krĂŒptimisega kaitstud (). Kuid tekib mĂ”istlik kĂŒsimus, mis on siis nii erilist VTE raamatukogus, et see vajab sellist ebatavalist lĂ€henemist rakenduseleâŠ
KokkuvÔte
Artikli esimeses osas leidsime, et VTE-pĂ”hised terminalid omavad head funktsioonide kogumit, kuid nĂŒĂŒd nĂ€eme, et nende jĂ”udluse tagamine toob kaasa teatud kulud. Praegu pole mĂ€lu probleem, kuna kĂ”iki VTE-terminalid saab hallata Daemon-protsessi kaudu, mis piirab nende vajadusi. Siiski vĂ”ivad vanad sĂŒsteemid, millel on fĂŒĂŒsilised piirangud operatiivmĂ€lu ja tuuma pufferi koguse osas, endiselt vajada varasemaid versioone terminalidest, kuna need tarbivad mĂ€rgatavalt vĂ€hem ressursse. Kuigi VTE-terminalid on lĂ€bi teinud head testid ribalaiuse (kerimise) osas, on nende andmete kuvamise latentsus ekraanil kĂ”rgem kui GNOME'i kasutajajuhendi kehtestatud piir. TĂ”enĂ€oliselt peaks VTE arendajatele seda silmas pidama. Arvestades, et isegi Linuxi algajate kasutajate jaoks on terminaliga kohtumine vĂ€ltimatu, vĂ”iksid nad muuta selle kasutajasĂ”bralikumaks. Kogenud tehnikutele tĂ€hendab vaikimisi terminali vahetus isegi visuaalse koormuse vĂ€hendamist ja professionaalsete vigastuste ning haiguste vĂ€ltimist tulevikus pikaajaliste töösessioonide tĂ”ttu. Kahjuks viivad meid maagilisse 10 millisekundi pingepingesse ainult vanad xterm ja mlterm, mis on paljudele vastuvĂ”etamatud.
KontrollmÔÔtmised on samuti nĂ€idanud, et tĂ€nu Linuxi graafiliste keskkondade arengule pidid arendajad tegema mitmeid kompromisse. MĂ”ned kasutajad peaksid vaatama tavapĂ€raste aknahaldurite poole, kuna need pakuvad mĂ€rkimisvÀÀrset pingelangust. Kahjuks ei Ă”nnestunud Waylandi viivitust mÔÔta: programm Typometer, mida kasutasin, oli loodud selleks, et Wayland takistab â teiste aknade pealt nuhkimise. Loodan, et Waylandi komposiit on jĂ”udluselt parem kui X.org, ja loodan ka, et tulevikus keegi leiab viisi viivituse taseme hindamiseks selles keskkonnas.
Allikas: habr.com
