Apèsi sou Emulation tèminal yo

Kèk mo nan biwo tradiksyon nou an: anjeneral tout moun fè efò pou tradui dènye materyèl ak piblikasyon yo, epi nou pa gen okenn eksepsyon. Men, tèminal yo pa yon bagay ki mete ajou yon fwa pa semèn. Se poutèt sa, nou te tradui pou ou yon atik Antoine Beaupré, ki te pibliye nan sezon prentan 2018: malgre konsiderab "laj" li yo pa estanda modèn, nan opinyon nou, materyèl la pa te pèdi enpòtans li ditou. Anplis de sa, sa a te orijinèlman yon seri de atik, men nou te deside konbine yo nan yon sèl gwo pòs.

Apèsi sou Emulation tèminal yo

Tèminal yo gen yon plas espesyal nan istwa òdinatè, men nan dènye deseni yo te fòse yo siviv ansanm ak liy lòd la kòm entèfas grafik vin omniprésente. Emulateur tèminal ranplase pwòp pa yo pyès ki nan konpitè frè, ki, nan vire, yo te yon modifikasyon nan sistèm ki baze sou kat trou ak switch baskile. Distribisyon modèn vini ak yon varyete emulateur tèminal nan tout fòm ak koulè. Epi pandan ke anpil moun kontan ak tèminal estanda anviwònman travay yo bay, gen kèk ak fyète ki sèvi ak lojisyèl kareman ekzotik pou kouri kokiy yo pi renmen oswa editè tèks yo. Men, jan nou pral wè nan atik sa a, se pa tout tèminal yo te kreye nan menm imaj la: yo diferan anpil nan fonksyonalite, gwosè ak pèfòmans.

Gen kèk tèminal ki gen twou sekirite kareman etone, plis pifò gen yon seri fonksyon konplètman diferan, ki soti nan sipò pou yon koòdone onglet nan scripting. Malgre ke nou te gade emulateur tèminal nan tan lontan an, atik sa a se yon aktyalizasyon nan materyèl anvan an ki pral ede lektè detèmine ki tèminal yo itilize nan 2018. Premye mwatye nan atik la konpare karakteristik, ak dezyèm mwatye evalye pèfòmans.

Men tèminal mwen revize yo:

Apèsi sou Emulation tèminal yo

Sa yo ka pa dènye vèsyon yo, paske mwen te limite nan bati ki estab nan moman an ekri, ke mwen te kapab woule sou Debian 9 oswa Fedora 27. Sèl eksepsyon nan se Alacritty. Li se yon desandan tèminal GPU akselere epi li ekri nan yon lang etranj ak nouvo pou travay sa a - Rust. Mwen eskli tèminal entènèt nan revizyon mwen an (ki gen ladan sa yo sou Elèktron), paske tès preliminè yo te montre pèfòmans ekstrèmman pòv yo.

Unicode sipò

Mwen te kòmanse tès mwen yo ak sipò Unicode. Premye tès la nan tèminal yo te montre fisèl Unicode soti nan Atik Wikipedya: "é, Δ, И, ק, م, ๗, あ, 叶, 葉 ak 말." Tès senp sa a montre si tèminal la ka opere kòrèkteman atravè lemond. xterm tèminal pa montre karaktè arab memwa nan konfigirasyon default:

Apèsi sou Emulation tèminal yo

Pa default, xterm itilize klasik "fiks" font la, ki, dapre toujou menm Vicki, gen "garantite Unicode anpil depi 1997". Gen yon bagay k ap pase nan font sa a ki lakòz karaktè a parèt kòm yon ankadreman vid epi li se sèlman lè font tèks la ogmante a plis pase 20 pwen ke karaktè a finalman kòmanse montre kòrèkteman. Sepandan, "ranje" sa a kraze ekspozisyon lòt karaktè Unicode:

Apèsi sou Emulation tèminal yo

Ekran sa yo te pran nan Fedora 27, paske li te bay pi bon rezilta pase Debian 9, kote kèk vèsyon ki pi ansyen nan tèminal (espesyalman mlterm) pa t 'kapab jere polis byen. Chans sa a te fiks nan vèsyon pita.

Koulye a, remake ki jan liy lan parèt nan xterm. Li sanble ke senbòl la Mem ak semitik sa yo qoph al gade nan scripts style RTL (dwa-a-gòch), kidonk teknikman yo ta dwe parèt de dwat a goch. Navigatè entènèt tankou Firefox 57 okipe liy ki anwo a kòrèkteman. Yon vèsyon ki pi senp nan tèks RTL se mo "Sara"nan lang ebre (Sara). Paj Wiki sou tèks bidireksyon di sa ki annapre yo:

"Anpil pwogram òdinatè pa ka montre tèks bidireksyon kòrèkteman. Pou egzanp, non an ebre "Sarah" konsiste de karaktè yo sin (ש) (ki parèt sou bò dwat la), Lè sa a, resh (ר) epi finalman li (ה) (ki ta dwe parèt sou bò gòch la)."

Anpil tèminal echwe tès sa a: Alacritty, terminaux Gnome ki sòti nan VTE ak XFCE, urxvt, st ak xterm montre "Sara" nan lòd ranvèse, kòm si nou te ekri non an kòm "Aras".

Apèsi sou Emulation tèminal yo

Yon lòt pwoblèm ak tèks bidireksyon se ke yo bezwen yo dwe aliyen yon jan kanmenm, espesyalman lè li rive melanje tèks RTL ak LTR. Scripts RTL yo ta dwe kouri soti nan bò dwat la nan fenèt tèminal la, men ki sa ki ta dwe rive pou tèminal ki default nan LTR angle? Pifò nan yo pa gen okenn mekanis espesyal ak aliman tout tèks sou bò gòch la (ki gen ladan nan Konsole). Eksepsyon yo se pterm ak mlterm, ki konfòme yo ak estanda yo ak aliman dwat liy sa yo.

Apèsi sou Emulation tèminal yo

Pwoteksyon ensèsyon

Pwochen karakteristik kritik mwen te idantifye se pwoteksyon anti-ensèsyon. Malgre ke li se lajman konnen ke òneman tankou:

$ curl http://example.com/ | sh

se kòd ekzekisyon pouse kòmandman, kèk moun konnen ke kòmandman kache ka fofile nan konsole a lè kopye ak kole soti nan yon navigatè entènèt, menm apre enspeksyon atansyon. Sit verifikasyon Gianna Horna briyan montre kouman kòmandman an inosan:

git clone git: //git.kernel.org/pub/scm/utils/kup/kup.git

vire nan tankou yon nwuizans lè kole soti nan sit entènèt Horn nan tèminal la:

git clone /dev/null;
    clear;
	echo -n "Hello ";
	whoami|tr -d 'n';
	echo -e '!nThat was a bad idea. Don'"'"'t copy code from websites you don'"'"'t trust! 
	Here'"'"'s the first line of your /etc/passwd: ';
	head -n1 /etc/passwd
	git clone git://git.kernel.org/pub/scm/utils/kup/kup.git

Ki jan li fonksyone? Kòd move enkli nan blòk la , ki deplase soti nan vi itilizatè a lè l sèvi avèk CSS.

Mòd keratin bracketed se klèman fèt pou netralize atak sa yo. Nan mòd sa a, tèminal fèmen tèks kole a nan yon pè sekans chape espesyal pou di koki a sou orijin tèks la. Sa a di koki a ke li ka inyore karaktè espesyal ke tèks la kole ka genyen. Tout tèminal tounen nan venerable xterm la sipòte karakteristik sa a, men kole nan mòd bracketed mande sipò nan koki a oswa aplikasyon ki kouri sou tèminal la. Pou egzanp, lojisyèl lè l sèvi avèk GNU Readline (menm Bash), bezwen yon dosye ~/.inputrc:

set enable-bracketed-paste on

Malerezman, sit tès Horn la montre tou ki jan yo kontoune pwoteksyon sa a atravè fòma tèks la tèt li epi prematireman fini aplike mòd Bracketed nan li. Sa a travay paske kèk tèminal pa kòrèkteman filtre sekans chape anvan yo ajoute pwòp yo. Pa egzanp, nan mwen mwen pa t janm kapab konplete avèk siksè tès Konsole yo menm ak konfigirasyon kòrèk la .antre dosye. Sa vle di ke ou ka fasilman jwenn konfigirasyon sistèm ou a pèvèti akòz yon aplikasyon ki pa sipòte oswa yon kokiy ki mal configuré. Sa a se espesyalman danjere lè w konekte nan serveurs aleka, kote travay konfigirasyon atansyon se mwens komen, espesyalman si ou gen anpil machin aleka sa yo.

Yon bon solisyon a pwoblèm sa a se Plugin konfimasyon keratin pou tèminal la urxvt, ki tou senpleman mande pèmisyon pou mete nenpòt tèks ki gen nouvo liy. Mwen pa jwenn yon opsyon ki pi an sekirite pou atak tèks Horn dekri a.

Onglet ak pwofil

Yon karakteristik popilè kounye a se sipò pou yon koòdone ongle, ke nou pral defini kòm yon fenèt tèminal ki gen plizyè lòt tèminal. Fonksyon sa a diferan pou tèminal diferan, e byenke tèminal xterm tradisyonèl yo pa sipòte onglet ditou, enkarnasyon tèminal ki pi modèn tankou Xfce Terminal, GNOME Terminal ak Konsole gen fonksyon sa a. Urxvt sipòte tou onglè, men sèlman si ou itilize yon plugin. Men, an tèm de sipò tab tèt li, Terminator se lidè enkonteste: li pa sèlman sipòte onglè, men li ka tou fè aranjman pou tèminal nan nenpòt lòd (gade imaj anba a).

Apèsi sou Emulation tèminal yo

Yon lòt karakteristik nan Terminator se kapasite nan "groupe" onglet sa yo ansanm epi voye menm frap yo nan tèminal miltip an menm tan an, bay yon zouti brit pou fè operasyon esansyèl sou plizyè serveurs ansanm. Yon karakteristik menm jan an tou aplike nan Konsole. Pou itilize karakteristik sa a nan lòt tèminal, ou dwe itilize lojisyèl twazyèm pati tankou Cluster SSH, xlax oswa tmux.

Onglet yo travay espesyalman byen lè yo asosye ak pwofil: pou egzanp, ou ka gen yon tab pou imèl, yon lòt pou chat, ak sou sa. Konsole Tèminal ak Tèminal GNOME sipòte sa a byen. Tou de pèmèt chak tab otomatikman lanse pwòp pwofil li. Terminator sipòte tou pwofil, men mwen pa t 'kapab jwenn yon fason yo otomatikman lanse sèten pwogram lè ou louvri yon tab espesifik. Lòt tèminal pa gen okenn konsèp nan "pwofil" nan tout.

Volan

Dènye bagay mwen pral kouvri nan premye pati atik sa a se aparans tèminal yo. Pa egzanp, GNOME, Xfce ak urxvt sipòte transparans, men dènyèman te abandone sipò pou imaj background, fòse kèk itilizatè yo chanje nan tèminal la. Tilix. Pèsonèlman, mwen kontan ak li epi li se senp xresources, ki mete seri de baz koulè background pou urxvt. Sepandan, tèm koulè ki pa estanda ka kreye pwoblèm tou. Pa egzanp, Solarize pa travay ak aplikasyon yo htop и IPTraf, paske yo deja itilize pwòp koulè yo.

Tèminal orijinal VT100 pa t sipòte koulè, ak nouvo yo te souvan limite a yon palèt 256-koulè. Pou itilizatè avanse ki style tèminal yo, envit koki oswa ba estati nan fason konplèks ka yon limit anmèdan. Gist tren ki tèminal ki gen sipò "True Color". Tès mwen yo konfime ke st, Alacritty ak tèminal ki baze sou VTE sipòte True Color parfe. Lòt tèminal pa mache trè byen nan sans sa a epi, an reyalite, pa menm montre 256 koulè. Anba a ou ka wè diferans ki genyen ant sipò True Color nan tèminal GNOME, st ak xterm, ki fè yon bon travay nan sa a ak palèt koulè 256 yo, ak urxvt, ki pa sèlman echwe tès la, men menm montre kèk karaktè k ap klere olye yo.

Apèsi sou Emulation tèminal yo

Gen kèk tèminal tou analize tèks pou modèl URL yo fè lyen klike sou. Sa a aplike a tout tèminal ki sòti nan VTE, pandan y ap urxvt mande pou yon plugin espesyal ki ta transfòme URL sou yon klike oswa lè l sèvi avèk yon chemen kout klavye. Lòt tèminal mwen te teste adrès URL yo nan lòt fason.

Finalman, yon nouvo tandans nan tèminal se opsyonèl nan tanpon woulo liv la. Pou egzanp, st pa gen okenn tanpon woulo liv; li sipoze ke itilizatè a pral sèvi ak yon multiplexeur tèminal tankou tmux ak GNU ekran.

Alacritty tou manke backscroll tanpon, men pral ajoute byento sipò li akòz "abondan fidbak" sou sijè sa a soti nan itilizatè yo. Apa de debutan sa yo, chak tèminal mwen te teste ke mwen te kapab jwenn sipò defile ranvèse.

Sou-total

Nan dezyèm pati a nan materyèl la (nan orijinal la sa yo te de atik diferan - approx. liy) nou pral konpare pèfòmans, itilizasyon memwa ak latansi. Men, nou deja wè ke kèk nan tèminal yo nan kesyon yo gen enpèfeksyon grav. Pou egzanp, itilizatè ki travay regilyèman ak scripts RTL yo ka vle konsidere mlterm ak pterm, paske yo pi bon nan manyen travay menm jan an pase lòt moun. Konsole tou fè byen. Itilizatè ki pa travay ak scripts RTL yo ka chwazi yon lòt bagay.

An tèm de pwoteksyon kont ensèsyon kòd move, urxvt kanpe deyò paske nan aplikasyon espesyal li nan pwoteksyon kont sa a kalite atak, ki sanble definitivman pratik pou mwen. Pou moun kap chèche kèk klòch ak sifle, Konsole vo yon gade. Finalman, li vo anyen ke VTE se yon baz ekselan pou tèminal, ki garanti sipò koulè, rekonesans URL, ak sou sa. Nan premye gade, tèminal default ki vini ak anviwònman pi renmen ou a ka satisfè tout kondisyon yo, men ann kite kesyon sa a louvri jiskaske nou konprann pèfòmans lan.

Ann kontinye konvèsasyon an


An jeneral, pèfòmans tèminal yo nan tèt li ka sanble tankou yon pwoblèm lwen-chache, men kòm li vire soti, kèk nan yo montre latansi etonan segondè pou lojisyèl nan yon kalite fondamantal konsa. Epitou pwochen nou pral gade nan sa ki tradisyonèlman rele "vitès" (an reyalite, sa a se vitès la defile) ak konsomasyon memwa nan tèminal la (ak opozisyon an ke sa a se pa osi kritik jodi a jan li te ye dè dekad de sa).

Reta

Apre yon etid apwofondi sou pèfòmans tèminal, mwen te rive nan konklizyon ke paramèt ki pi enpòtan nan sans sa a se latansi a (ping). Nan atik li a "Nou enprime ak plezi" Pavel Fatin te gade latansi plizyè editè tèks e li te fè konnen tèminal yo nan sans sa a ka pi dousman pase editè tèks ki pi rapid yo. Li te allusion sa a ki finalman mennen m 'nan kouri pwòp tès mwen yo ak ekri atik sa a.

Men, ki sa ki latansi, e poukisa li tèlman enpòtan? Nan atik li a, Fatin te defini li kòm "reta ant peze yon kle ak aktyalizasyon ekran ki koresponn lan" epi li te site "Gid pou entèraksyon moun-òdinatè", ki deklare: "Reta nan fidbak vizyèl sou yon ekspozisyon òdinatè gen yon enpak enpòtan sou konpòtman ak satisfaksyon daktylo."

Fatin eksplike ke ping sa a gen pi gwo konsekans pase jis satisfaksyon: "tape vin pi dousman, plis erè rive, epi tansyon nan je ak nan misk ogmante." Nan lòt mo, yon gwo reta ka mennen nan typos epi tou pi ba bon jan kalite kòd, kòm li mennen nan plis chaj mantal sou sèvo a. Men, sa ki pi mal se ke ping "ogmante je ak souch nan misk," ki sanble vle di. devlopman nan blesi travay nan lavni (Aparamman, otè a vle di pwoblèm ak misk yo nan je, do, bra ak, nan kou, vizyon - approx. liy) akòz estrès repetitif.

Gen kèk nan efè sa yo te konnen pou yon tan long, ak rezilta yo rechèch, pibliye tounen an 1976 nan jounal Ergonomics, te di ke yon reta nan 100 milisgond "siyifikativman afekte vitès sezisman." Plis dènyèman, Gid Itilizatè GNOME te prezante tan repons akseptab nan 10 milisgond, epi si ou ale pi lwen, lè sa a Microsoft Research montre ke 1 milisgond se ideyal.

Fatin te fè tès li sou editè tèks; li te kreye yon enstriman pòtab ki rele Typometer, ki mwen itilize pou teste ping nan emulateur tèminal yo. Kenbe nan tèt ou ke tès la te fèt nan mòd simulation: an reyalite, nou bezwen pran an kont tou de opinyon (klavye, USB kontwolè, elatriye) ak pwodiksyon (tanpon kat videyo, pou kontwole) latansi. Dapre Fatin, nan konfigirasyon tipik li se sou 20 ms. Si ou gen ekipman jwèt, ou ka reyalize figi sa a nan jis 3 milisgond. Depi nou deja gen pyès ki nan konpitè vit konsa, aplikasyon an pa bezwen ajoute pwòp latansi li yo. Objektif Fatin se pote latansi aplikasyon an a 1 milisgond, oswa menm reyalize konpoze san yo pa reta mezirab, ki jan nan IntelliJ IDEA 15.

Men rezilta mezi mwen yo, ansanm ak kèk rezilta Fatin yo, pou montre eksperyans mwen an dakò ak tès li yo:

Apèsi sou Emulation tèminal yo

Premye bagay ki te frape m 'te pi bon tan repons nan pwogram ki pi gran tankou xterm ak mlterm. Avèk latansi enskri ki pi mal la (2,4 ms), yo te fè pi bon pase tèminal ki pi rapid modèn (10,6 ms pou st). Pa gen tèminal modèn ki tonbe anba papòt 10 milisgond la. An patikilye, Alacritty echwe pou satisfè reklamasyon "pi rapid emulateur tèminal ki disponib", byenke nòt li yo te amelyore depi premye revizyon li an 2017. Vreman vre, otè yo nan pwojè a okouran de sitiyasyon an epi yo ap travay pou amelyore ekspozisyon an. Li ta dwe tou remake ke Vim lè l sèvi avèk GTK3 se yon lòd nan grandè pi dousman pase kontrepati GTK2 li yo. Apati sa a nou ka konkli ke GTK3 kreye latansi adisyonèl, e sa a reflete nan tout lòt tèminal ki sèvi ak li (Terminator, Xfce4 Terminal ak GNOME Terminal).

Sepandan, diferans yo ka pa aparan nan je a. Jan Fatin eksplike, "ou pa bezwen konnen reta a pou li gen yon efè sou ou." Fatin tou avèti sou devyasyon estanda: "nenpòt latwoublay nan latansi (jitter) kreye plis estrès akòz enprevizib yo."

Apèsi sou Emulation tèminal yo

Se graf ki pi wo a pran sou Debian 9 pi (detire) ak manadjè fenèt i3. Anviwònman sa a pwodui pi bon rezilta nan tès latansi yo. Kòm li sanble, GNOME kreye yon ping adisyonèl 20 ms pou tout mezi. Yon eksplikasyon posib pou sa a se prezans nan pwogram ak pwosesis synchrone nan evènman opinyon. Fatin bay yon egzanp pou yon ka konsa workrave, ki ajoute yon reta lè yo trete tout evènman opinyon yon fason synchrone. Pa default, GNOME tou vini ak yon manadjè fenèt Mutter, ki kreye yon kouch adisyonèl nan tanpon, ki afekte ping epi ajoute omwen 8 milisgond nan latansi.

Apèsi sou Emulation tèminal yo

Scroll vitès

Pwochen tès la se yon tès tradisyonèl "vitès" oswa "bandwidth", ki mezire konbyen vit tèminal la ka woule yon paj pandan y ap montre gwo kantite tèks sou ekran an. Mekanik tès la varye; tès orijinal la te senpleman jenere menm fisèl tèks la lè l sèvi avèk lòd seq la. Lòt tès yo enkli tès Thomas E. Dickey a (xterm keeper), ki te repete se fichye terminfo.src telechaje. Nan yon lòt revizyon sou pèfòmans tèminal Den Luu sèvi ak yon kòd base32 kode bytes o aza, ki se pwodiksyon nan tèminal la lè l sèvi avèk chat. Luu konsidere yon tès konsa "tankou yon referans initil jan yon moun ka imajine" epi li sijere itilize repons tèminal kòm yon metrik prensipal olye. Dickey tou rele tès li twonpe. Sepandan, tou de otè yo rekonèt ke Pleasant fenèt tèminal yo ka yon pwoblèm. Luu te dekouvri Emacs Eshell konjelasyon lè li te montre gwo fichye yo, epi Dickey te optimize tèminal la pou debarase m de paressè vizyèl xtrerm la. Se konsa, gen toujou kèk merit nan tès sa a, men depi pwosesis rann lan trè diferan de tèminal nan tèminal, li kapab tou itilize kòm yon eleman tès pou teste lòt paramèt.

Apèsi sou Emulation tèminal yo

Isit la nou wè rxvt a ak st rale devan konpetisyon an, ki te swiv pa Alacritty a pi nouvo, ki fèt ak yon konsantre sou pèfòmans. Apre yo se Xfce (fanmi VTE) ak Konsole, ki prèske de fwa pi vit. Dènye se xterm, ki se senk fwa pi dousman pase rxvt. Pandan tès la, xterm tou rid anpil, sa ki fè pase tèks difisil pou wè menm si se te menm liy lan. Konsole te rapid, men li te difisil pafwa: ekspozisyon an ta friz de tan zan tan, montre tèks pasyèl oswa pa montre li ditou. Lòt tèminal yo montre kòd klèman, tankou st, Alacritty, ak rxvt.

Dickey eksplike ke diferans ki genyen nan pèfòmans yo se akòz desen an nan tanpon woulo liv nan tèminal diferan. An patikilye, li akize rxvt ak lòt tèminal yo "pa swiv règ jeneral yo":

“Kontrèman ak xterm, rxvt pa t eseye montre tout mizajou. Si li tonbe dèyè, li pral refize kèk mizajou ratrape. Sa a te gen yon pi gwo enpak sou vitès defile aparan pase sou òganizasyon memwa entèn yo. Yon dezavantaj te ke animasyon ASCII la te yon ti jan enpresif."

Pou ranje sa a paresseux xterm konnen, Dickey sijere itilize resous la fastScroll, ki pèmèt xterm jete kèk mizajou ekran pou kenbe ak koule a. Tès mwen yo konfime ke fastScroll amelyore pèfòmans ak pote xterm nan par ak rxvt. Sa a se, sepandan, yon beki olye ki graj, jan Dickey li menm eksplike: "pafwa xterm - tankou konsole - sanble ap bloke pandan li ap tann pou yon seri nouvo seri mizajou ekran apre kèk yo te retire." Nan sans sa a, li sanble ke lòt tèminal yo te jwenn pi bon konpwomi ant vitès ak entegrite ekspozisyon.

Konsomasyon resous

Kèlkeswa si li fè sans pou konsidere vitès defile kòm yon metrik pèfòmans, tès sa a pèmèt nou simulation chaj la sou tèminal yo, ki an vire pèmèt nou mezire lòt paramèt tankou memwa oswa itilizasyon disk. Paramèt yo te jwenn nan kouri tès la espesifye sek anba siveyans pwosesis Python. Li te kolekte done mèt getrusage () pou ru_maxrss, kantite lajan ru_oblock и ru_inblock ak yon revèy senp.

Apèsi sou Emulation tèminal yo

Nan tès sa a, ST a pran premye plas ak pi ba konsomasyon memwa mwayèn nan 8 MB, sa ki pa etone konsidere ke lide prensipal la nan konsepsyon an se senplisite. mlterm, xterm ak rxvt konsome yon ti kras plis - apeprè 12 MB. Yon lòt rezilta remakab se Alacritty, ki mande 30 MB pou kouri. Lè sa a, gen tèminal nan fanmi an VTE ak figi soti nan 40 a 60 MB, ki se byen anpil. Konsomasyon sa a ka eksplike pa lefèt ke tèminal sa yo sèvi ak bibliyotèk pi wo nivo, pou egzanp, GTK. Konsole vini nan dènye ak yon kolosal 65MB nan konsomasyon memwa pandan tès yo, byenke sa a ka jistifye pa seri trè laj li yo nan karakteristik.

Konpare ak rezilta anvan yo te jwenn dis ane de sa, tout pwogram yo te kòmanse konsome notables plis memwa. Xterm te itilize 4 MB, men kounye a li mande pou 15 MB jis nan demaraj. Gen yon ogmantasyon menm jan an nan konsomasyon pou rxvt, ki kounye a mande pou 16 MB soti nan bwat la. Tèminal Xfce pran 34 MB, ki se twa fwa pi gwo pase anvan, men Tèminal GNOME mande sèlman 20 MB. Natirèlman, tout tès anvan yo te fèt sou achitekti 32-bit. Nan LCA 2012 Rusty Russell te di, ke gen anpil rezon plis sibtil ki ta ka eksplike ogmantasyon nan konsomasyon memwa. Apre sa, nou ap viv kounye a nan yon tan kote nou gen jigokte memwa, kidonk nou pral jere yon jan kanmenm.

Sepandan, mwen pa ka ede men santi ke allocation plis memwa nan yon bagay ki fondamantal tankou tèminal la se yon fatra nan resous. Pwogram sa yo ta dwe pi piti nan pi piti a, yo ta dwe kapab kouri sou nenpòt "bwat", menm yon bwat soulye, si nou janm rive nan pwen kote yo bezwen ekipe ak sistèm Linux (epi ou konnen ke li pral konsa. ). Men, ak nimewo sa yo, itilizasyon memwa ap vin yon pwoblèm nan tan kap vini an nan nenpòt anviwònman k ap kouri plizyè tèminal lòt pase kèk nan kapasite ki pi lejè ak ki pi limite. Pou konpanse pou sa, GNOME Terminal, Konsole, urxvt, Terminator ak Xfce Terminal gen yon mòd Daemon ki pèmèt ou kontwole plizyè tèminal atravè yon sèl pwosesis, limite konsomasyon memwa yo.

Apèsi sou Emulation tèminal yo

Pandan tès mwen yo, mwen te rive jwenn yon lòt rezilta inatandi konsènan disk lekti-ekri: mwen te espere pa wè anyen ditou isit la, men li te tounen soti ke kèk tèminal ekri done ki pi volumineuz sou disk. Se konsa, bibliyotèk VTE aktyèlman kenbe yon tanpon woulo liv sou disk (karakteristik sa a te remake tounen nan 2010, e sa toujou ap pase). Men, kontrèman ak ansyen enplemantasyon yo, kounye a omwen done sa yo ankripte lè l sèvi avèk AES256 GCM (soti nan vèsyon 0.39.2). Men, yon kesyon rezonab rive: ki sa ki tèlman espesyal sou bibliyotèk VTE a ke li mande pou yon apwòch ki pa estanda pou aplikasyon...

Konklizyon

Nan premye pati nan atik la, nou te jwenn ke tèminal ki baze sou VTE gen yon seri bon nan karakteristik, men kounye a nou wè ke sa a vini ak kèk pri pèfòmans. Koulye a, memwa se pa yon pwoblèm paske tout tèminal VTE yo ka kontwole atravè yon pwosesis Daemon, ki limite apeti yo. Sepandan, pi gran sistèm ki gen limit fizik sou kantite RAM ak nwayo tanpon ka toujou bezwen vèsyon pi bonè nan tèminal, paske yo konsome anpil mwens resous. Malgre ke tèminal VTE yo te fè byen nan tès debi (defile), latansi ekspozisyon yo pi wo pase papòt ki tabli nan Gid Itilizatè GNOME la. Devlopè VTE ta dwe pwobableman pran sa a an kont. Si nou pran an kont ke menm pou itilizatè Linux inisyasyon rankontre yon tèminal se inevitab, yo ka fè li pi fasil itilizatè. Pou geeks ki gen eksperyans, chanje soti nan tèminal la default ka menm vle di mwens souch nan je ak kapasite nan evite blesi ak maladi nan lavni ki gen rapò ak travay akòz sesyon travay long. Malerezman, se sèlman ansyen xterm ak mlterm ki mennen nou nan papòt ping majik 10 milisgond, ki pa akseptab pou anpil moun.

Mezi referans yo te montre tou ke akòz devlopman nan anviwònman grafik Linux, devlopè yo te oblije fè yon kantite konpwomi. Gen kèk itilizatè ki ka vle gade manadjè fenèt regilye yo menm jan yo bay rediksyon ping enpòtan. Malerezman, li pa t posib pou mezire latansi pou Wayland: pwogram Typometer mwen te itilize a te kreye pou sa Wayland fèt pou anpeche: espyonaj sou lòt fenèt yo. Mwen espere ke Wayland compositing fè pi bon pase X.org, epi mwen espere tou ke nan lavni an yon moun pral jwenn yon fason yo mezire latansi nan anviwònman sa a.

Sous: www.habr.com

Add nouvo kòmantè