In computing, performanta computerului este cantitatea de lucru util realizata de un sistem informatic. In afara contextelor specifice, performanta calculatorului este estimata in termeni de precizie, eficienta si viteza de executie a instructiunilor programelor de calculator. Cand vine vorba de performante ridicate ale calculatorului, poate fi implicat unul sau mai multi dintre urmatorii factori:
- Timp scurt de raspuns pentru o lucrare data.
- Randament mare (viteza lucrarilor de procesare).
- Utilizarea scazuta a resurselor (hardware) de calcul.
- Disponibilitate ridicata a sistemului sau aplicatiei de calcul.
- Compresie si decompresie rapida (sau foarte compacta) a datelor.
- Latime de banda mare.
- Timp scurt de transmitere a datelor.
Definitii tehnice si non-tehnice
Performanta oricarui sistem informatic poate fi evaluata in termeni tehnici masurabili, folosind una sau mai multe dintre valorile enumerate mai sus. Astfel performanta poate fi:
- Comparata in raport cu alte sisteme sau acelasi sistem inainte / dupa modificari
- In termeni absoluti, de ex. pentru indeplinirea unei obligatii contractuale
Desi definitia de mai sus se refera la o abordare stiintifica, tehnica, urmatoarea definitie data de Arnold Allen ar fi utila pentru un public non-tehnic:
Cuvantul performanta in sintagma “performanta computerului” inseamna acelasi lucru pe care performanta il intruchipeaza si in alte contexte, adica „Cat de bine si de rapid functioneaza computerul cu lucrul pe care trebuie sa-l faca?”
Ca aspect al calitatii software-ului
Performanta software-ului computerului, in special timpul de raspuns al aplicatiilor software, este un aspect al calitatii software-ului, foarte important in interactiunile om-calculator.
Inginerie de performanta
Ingineria de performanta in cadrul ingineriei sistemelor, cuprinde setul de roluri, abilitati, activitati, practici, instrumente si livrari aplicate in fiecare faza a ciclului de viata al dezvoltarii sistemelor, care asigura ca o solutie va fi proiectata, implementata si sprijinita operational, pentru a satisface performanta cerintelor definite pentru solutie.
Ingineria performantei se ocupa in mod continuu de compensari intre tipurile de performanta. Ocazional, un proiectant de procesor poate gasi o modalitate de a crea un procesor cu performante generale mai bune prin imbunatatirea unuia dintre aspectele de performanta, prezentate mai jos, fara a sacrifica performanta procesorului in alte domenii. De exemplu – construirea procesorului din tranzistoare mai bune si mai rapide.
Cu toate acestea, uneori, impingerea unui tip de performanta catre extrem, duce la un procesor cu performante generale mai slabe, deoarece alte aspecte importante au fost sacrificate pentru a obtine un numar cu aspect impresionant, de exemplu, rata de ceas a cipului (vezi mitul megahertz-ilor).
Inginerie de performanta a aplicatiilor
Application Performance Engineering (APE) este o metodologie specifica in cadrul ingineriei de performanta, conceputa pentru a raspunde provocarilor asociate cu performantele aplicatiei in medii informatice mobile, cloud si terestre, din ce in ce mai distribuite.
Acesta include rolurile, abilitatile, activitatile, practicile, instrumentele si rezultatele aplicate in fiecare faza a ciclului de viata al aplicatiei, care asigura ca o aplicatie va fi proiectata, implementata si sprijinita operational, pentru a indeplini cerintele non-functionale de performanta.
Aspecte ale performantei
Valorile de performanta ale computerului (lucrurile ce se pot masura) includ disponibilitatea, timpul de raspuns, capacitatea canalului, latenta, timpul de finalizare, timpul de serviciu, latimea de banda, debitul, eficienta relativa, scalabilitatea, performanta per watt, raportul de compresie, lungimea caii de instructiune si viteza (in mhz).
Disponibilitate
Disponibilitatea unui sistem este de obicei masurata ca un factor al fiabilitatii sale – pe masura ce fiabilitatea creste, la fel si disponibilitatea (adica timpul de oprire). Disponibilitatea unui sistem poate fi, de asemenea, sporita prin strategia de a se concentra pe cresterea testabilitatii si mentenabilitatii si nu pe fiabilitate. Imbunatatirea mentinerii este in general mai usor de implementat decat fiabilitatea.
Estimarile de mentenabilitate (ratele de reparatie) sunt, de asemenea, in general mai exacte. Cu toate acestea, deoarece incertitudinile din estimarile de fiabilitate sunt, in majoritatea cazurilor, foarte mari, este foarte probabil sa domine problema disponibilitatii (incertitudinea predictiei), chiar daca nivelurile de intretinere sunt foarte mari.
Timp de raspuns
Timpul de raspuns este timpul total necesar pentru a raspunde la o solicitare de servicii. In calcul, serviciul respectiv poate fi orice unitate de lucru de la o simpla operatie I/O, la incarcarea unei pagini web complexe. Timpul de raspuns este determinat de suma a trei numere:
- Timp de serviciu – Cat dureaza pentru a face lucrarea solicitata.
- Timp de asteptare – Cat timp trebuie sa astepte cererile “in queue”, inainte de a fi difuzate.
- Timp de transmisie – Cat timp dureaza mutarea solicitarii catre computerul care efectueaza lucrarea si raspunsul inapoi la solicitant.
Viteza de procesare
Majoritatea consumatorilor aleg o arhitectura computerizata (in mod normal arhitectura Intel IA32) pentru a putea rula o baza mare de programe pre-compilate, deja existente. Fiind relativ neinformati cu privire la punctele de referinta ale computerului, unii dintre acesti consumatori aleg un anumit procesor, bazanud-se strict pe frecventa de operare (vezi mitul megahertz-ilor).
Unii designeri de sisteme care construiesc computere, aleg CPU-ul in functie de viteza/performanta per dolar.
Capacitatea canalului
Capacitatea canalului este cea mai stransa limita superioara a vitezei de informatii care poate fi transmisa in mod fiabil pe un canal de comunicatii. Prin teorema de codare a zgomotului canalului, capacitatea unui anumit canal, este rata informationala de limitare (in unitati de informatie per unitate de timp) care poate fi obtinuta cu o probabilitate de eroare foarte mica.
Teoria informatiei, dezvoltata de Claude E. Shannon in timpul celui de-al Doilea Razboi Mondial, defineste notiunea de capacitate a canalului si ofera un model matematic prin care aceasta se poate calcula. Rezultatul cheie afirma ca capacitatea canalului, asa cum s-a definit mai sus, este data de maximul informatiilor reciproce dintre intrarea si iesirea canalului, unde maximizarea consta in ceea ce priveste distributia de intrare.
Latenta
Latenta este o intarziere intre cauza si efectul unei modificari fizice a sistemului observat. Latenta este rezultatul vitezei limitate cu care poate avea loc orice interactiune fizica. Aceasta viteza este intotdeauna mai mica sau egala cu viteza luminii. Prin urmare, fiecare sistem fizic care are dimensiuni spatiale diferite de zero, va experimenta intotdeauna un anumit tip de latenta.
Definitia precisa a latentei depinde de sistemul observat si de natura stimularii. In comunicatii, limita inferioara de latenta este determinata de mediul utilizat pentru comunicatii. In sistemele de comunicare cu doua sensuri fiabile, latenta limiteaza rata maxima prin care se pot transmite informatiile, intrucat deseori exista o limita a cantitatii de informatii care sunt „in procesare” in orice moment.
In domeniul interactiunii om-masina, latenta perceptibila (intarzierea dintre ceea ce comanda utilizatorul si momentul cand computerul ofera rezultatele) are un efect puternic asupra satisfactiei si experientei utilizatorului.
Calculatoarele ruleaza seturi de instructiuni numite procese. In sistemele de operare, executia procesului poate fi amanata daca se executa si alte procese. In plus, sistemul de operare poate planifica cand sa efectueze actiunea comandata de proces.
De exemplu, sa presupunem ca un proces comanda ca iesirea de tensiune a unui card de computer sa fie setata la inalta-joasa-inalta-joasa si asa mai departe, la o rata de 1000 Hz. Sistemul de operare poate alege sa ajusteze programarea fiecarei tranzitii (inalta-joasa sau joasa-inalta) pe baza unui ceas intern.
Latenta este intarzierea dintre instructiunea de proces care comanda tranzitia si hardware-ul care tranzitioneaza efectiv tensiunea de la mare la mica sau de la mica la mare.
Proiectantii de sisteme care construiesc sisteme de calcul, vor sa garanteze raspunsul cel bun, in timp real. Acest lucru este mai usor de facut atunci cand CPU (procesorul) are o latenta de intrerupere scazuta si cand are un raspuns determinist.
Latime de banda
In retelele de calculatoare, latimea de banda este o masura vitezei de biti a resurselor de comunicare a datelor disponibile sau consumate, exprimata in biti pe secunda sau multipli ai acestei masuratori (bit / s, kbit / s, Mbit / s, Gbit / s, etc.).
Latimea de banda defineste uneori rata de biti neta (de asemenea, rata de biti maxima, rata informatiilor sau rata de biti utila a stratului fizic), capacitatea canalului sau debitul maxim al unei cai de comunicare fizica-logica sau fizica, intr-un sistem de comunicatii digitale. De exemplu, testele de latime de banda masoara debitul maxim al unei retele de calculatoare.
Motivul acestei utilizari este ca, conform legii lui Hartley, rata maxima de date a unei legaturi de comunicare fizica este proportionala cu latimea de banda masurata in hertzi, care este uneori mai este numita si latime de banda de frecventa, latime de banda spectrala, latime de banda RF, latime de banda a semnalului sau latime de banda analogica.
Debit
In termeni generali, debitul este rata de productie sau rata la care poate fi procesat ceva.
In retelele de comunicare, debitul este in esenta sinonim cu consumul digital de latime de banda. In retelele wireless sau retelele de comunicatii celulare, eficienta spectrala a sistemului in unitatea bit / s / Hz / area, bit / s / Hz / site sau bit / s / Hz / cell, este debitul maxim al sistemului (debit total) divizat la latimea de banda analogica si o anumita masura a zonei de acoperire a sistemului.
In circuitele integrate, de multe ori un bloc dintr-o diagrama a fluxului de date, are o singura intrare si o singura iesire si functioneaza pe pachete de informatii discrete. Exemple de astfel de blocuri sunt modulele FFT sau multiplicatorii binari.
Deoarece unitatile de transfer sunt reciproce ale unitatii pentru intarzierea de propagare, care este masurata in „secunde per mesaj” sau „secunde per iesire”, transferul poate fi utilizat pentru a relationa un dispozitiv de calcul care indeplineste o functie dedicata, cum ar fi un procesor ASIC sau un canal de comunicatii, simplificand analiza sistemului.
Scalabilitate
Scalabilitatea este abilitatea unui sistem, retea sau proces de a gestiona o cantitate din ce in ce mai mare de munca, intr-o maniera capabila sau capacitatea sa de a fi extins pentru a se adapta la aceasta crestere.
Consumul de energie
Cantitatea de energie electrica utilizata de computer. Acest lucru devine deosebit de important pentru sistemele cu surse de energie limitate, precum solare, baterii, energie umana.
Performanta pe watt
Proiectantii de sisteme care construiesc computere cu mai multe procesoare, cum ar fi hardware-ul Google, aleg procesoare in functie de viteza per watt de putere, deoarece costul alimentarii unui astfel de procesor este mai mare decat costul procesorului in sine.