Care e primul lucru pe care îl întreabă un fan Android despre un nou model de telefon/tabletă? Cât ține bateria? Bineînțeles că NU. Întreabă ce scor a scos în benchmark-ul X sau Y, unde X e de obicei Quadrant iar Y poate fi orice, de la AntuTu până la 3DMark.
De ce se pune o astfel de întrebare? Pentru că orice aparat nou trebuie să fie obligatoriu mai rapid decât cele ale concurenței. Nu contează cum arată, ce știe să facă sau ce autonomie are. Contează să fie mai rapid. Pentru că viteza ”e importantă” atunci când ne referim la un smartphone, de parcă ar conta foarte tare cât e de rapid în browsing, facebook, rulare de film, citit cărți sau feed-uri rss.
Sună foarte bine să zici: Androidul meu obține 30000 de puncte în AntuTu. E cel mai rapid pentru că deja i-am pus un ROM custom. Privește-l ce rezultate bune dă în teste.
Și ce dacă? Cui servește de fapt justificarea (printr-un instrument de măsură) unei viteze de lucru mai mari?
Utilizatorul obișnuit nu prea e afectat de aspectul ăsta. Pe el nu prea îl interesează ce rezultate sunt obținute în benchmark-uri și nici ce ROM special se poate instala (greu, ușor) ca Androidul său să devină și mai rapid. El vrea doar să știe dacă îl ține bateria, dacă îl poate lua ieftin (eventual gratuit) și dacă rulează nu știu ce aplicație de care e el îndrăgostit.
Multe/puține review-uri de pe net pot răspunde de fapt la întrebarea respectivă. Vă spun și de ce: pentru că cei ce fac review-urile au de obicei alte criterii de evaluare pentru același produs. Foarte multe subiective. Obiectivitatea se trage din rularea unui set de benchmark-uri și prezentarea unor rezultate ce ar trebui să dea o notă de seriozitate oricărui review.
Adevărul despre benchmark-uri
Probabil că ați citit și în review-urile făcute de mine și de alții că se dau niște informații obținute în urma rulării unui anumit benchmark. Se presupune că rezultatul respectiv este unul real.
În realitate, realitatea e puțin deformată, abaterile mergând uneori și până la 70% în plus sau în minus, cu sau fără voia celui ce rulează respectivul instrument de măsurare.
Ce este un benchmark?
Este un punct de referință folosit pentru compararea unor elemente similare. Este un fel de nivel 0 de la care pleacă măsurătorile. Toată ziua folosim benchmark-uri chiar dacă nu ne dăm seama: 1KM, 1M, 1 minut sau 1 LEU. Toate sunt de fapt niște benchmark-uri pe care le acceptăm ca atare. Ele sunt etaloane stabilite cu mulți ani în urmă, folosite pentru cuantificarea corectă.
Benchmarking-ul, este pe de altă parte un proces prin care se compară una sau mai multe elemente/obiecte/procese, de dorit similare. Pentru un benchmarking corect e nevoie să fie întrunite foarte multe condiții – se creează așa zisa situație ideală, ce permite măsurarea corectă.
Măsurarea e procesul de analiză în urma căruia este furnizat un rezultat pe baza căruia se poate face comparația (benchmarkingul). De când lucrez în IT am avut permanent discuții pe baza benchmarking-ului, a testelor și a modului în care ele sunt făcute. Nu neapărat legat de corectitudine (prea puțini sunt cei care s-au îndoit de corectitudine) ci mai degrabă de calitatea instrumentelor de măsurare a diferitelor tipuri de produse pe care le-am testat – hardware, software.
În urma unei experiențe de 13 ani în domeniul testării produselor IT pot să zic cu certitudine că ceea ce este considerată o condiție esențială într-un benchmark – adică repetabilitatea operației de măsurare cu rezultate identice, măsurabile – nu se mai întâmplă. Procesele/produsele au devenit atât de complexe încât e prea greu/costisitor, aproape imposibil de realizat repetabilitatea unui test și obținerea fix a acelorași rezultate.
Să explic mai pe larg
Fiind primul din România care a început să facă teste comparative de smartphone-uri Windows Mobile și mai apoi Android m-am lovit de o problemă majoră, greu de evitat: aparatele testate nu întruneau din punct de vedere software aceleași condiții ca să pot spune că pleacă de pe picior de egalitate.
1. Nu aveau aceiași versiune de sistem de operare, nu rulau același kernel, nu rulau același firmware. Din start erau introduse abateri ce ar fi putut influența rezultatul final, deci și măsurarea. Treaba asta depinde de producător și nu prea ai cum să o eviți.
Cum nu aveam alternative am eliminat această problemă simplu: am testat pur și simplu comportamentul produselor pe care le aveam și am legat rezultatele strict de produsele testate.
2. Nu aveau aceiași versiune a aplicației de benchmark.
De multe ori testele nu puteau fi făcute în paralel (așa cum ar trebui) și ca urmare aplicațiile selectate pe post de benchmark-uri nu aveau aceiași versiune. Inevitabilele bug-uri, optimizări, introduse de la o versiune la alta induceau și erori de măsurare, cu toate că producătorul lor încerca să limiteze impactul schimbărilor în rezultatul final. De cele mai multe ori nu erau la fel.
3. Configurația software
Aparatele nu plecau niciodată la test cu fix aceiași configurație software. Unele aveau bloatware introdus de producător (HTC Sense de exemplu pe aparatele HTC, tot junk-ul Samsung și LG) altele nu (Google Nexus).
Teoretic, eliminarea acestei discrepanțe este posibilă: un Android stock ar fi rezolvat problema, doar că Google nu dă Android stock pentru toate aparatele așa că folosirea unei soluții terțe implica acceptarea bug-urilor sau optimizărilor introduce de cel/cei ce au creat respectivele versiuni. Ca să nu mai zic că era posibil ca un model de Android să aibă un Andorid stock, altul să poată folosi o altă versiune, creată de un terț.
4. Condițiile de test
Unele teste nu pot fi făcute în exact aceleași condiții pe toate aparatele – în special cele de consum de baterie cu trafic de date, calitate foto/video. Pentru că depinzi de factori externi (provider-ul de net, aglomerația pe țeavă în momentul testării), optimizarea player-ului video pe diverse platforme și neoptimizarea pentru altele, lumina ambientală etc.
Strict legat de benchmark-urile software ceea ce fac mereu ca să elimin problemele de măsurare este să rulez consecutiv de 3 ori testul și să iau cea mai bună valoare, sau media rezultatelor, în funcție de ce vreau să aflu.
5. Produsul în sine
Testezi pe produsul pe care îl ai. Poate să fie un sample bun și atunci totul merge perfect, poate să fie unul prost, cu mari probleme software/hardware și atunci lucrurile o iau razna. Sau poate fi un produs comercial cu aceleași caracteristici. Ceea ce testezi e limitat la ceea ce ai.
6. Repetabilitatea
Când ai norocul (și eu de obicei am ) să testezi în paralel două modele similare (că identic e prea mult spus) ale aceluiași produs ai șanse să îți dai seama cum se comportă. Poți să faci mai multe măsurători și să tragi concluzie, doar că din nou, concluzia e legată de ceea ce ai avut spre testare.
7. Calitatea instrumentelor de benchmark
Fiecare tester își construiește o baterie de teste după cum crede de cuviință. Cei cu experiență vor alege un număr variat de instrumente de testare care să le asigure o acoperire cât mai bună și o verificare încrucișată a unor informații pe care vor ști ulterior să le interpreteze corect. De exemplu eu aleg permanet să folosesc atât teste dedicate pe CPU, viteză de acces la fișiere, transfer de date, GPU cât și cele sintetice, care dau niște informații testând bucăți din fiecare subset de care vorbeam mai înainte. Analizând diferențele pe fiecare dintre ele se poate identifica o eventuală eroare și corecta.
Toate aspectele astea sunt în măsură să introducă erori de măsurare ce afectează benchmark-ul și la final poziționarea. Și un produs poziționat prost în astfel de măsurători, că e el un smartphone sau o tabletă Android, o placă grafică sau o suită de securitate, poate să aibă vânzări slabe.
Așa cum pe vremuri Intel, AMD, ATI și nVIDIA au înțeles că rezultatele bune în benchmark-uri îi ajută, așa a înțeles și Samsung că e bine să se asigure că lucrurile merg în favoarea lor. Și au luat măsurile de rigoare pe o serie de modele Android de generație nouă făcând ca benchmark-urile să vină cu un spor de 10%.
10% e de obicei o abatere acceptată de toată lumea care testează produse în domeniul IT-ului. Tot ceea ce nu poate fi controlat este asimilat unei erori de 10%, de asta zic eu permanent că acolo unde cifrele sunt apropiate, rezultatul din benchmark nu trebuie luat ad literam.
Probleme: două rulări, două aparate, niciun rezultat identic
Și așa ajung la miezul problemei. Deunăzi am testat performanța lui Samsung Galaxy Note 3 și a lui LG G2, cele două phablet-uri de top ale momentului. Așa cum a semnalat și un cititor, am observat și eu erori de măsurare în defavoarea sample-ului Galaxy Note 3 folosit.
M-am decis să reiau benchmark-urile pe cele două modele Samsung Galaxy Note 3 pe care le am în teste, de data asta pe sisteme curate, proaspăt refăcute. Fiecare rulare a unui benchmark făcându-se după repornirea celor două aparate – așa mă asigur că nu există aplicații terțe (altele decât cele ale sistemului de operare și ale producătorului). Ce a ieșit este foarte interesant.
Benchmark PI, rulat în paralel pe două modele Samsung Galaxy Note 3 nu a dat niciodată valori identice, nici măcar apropiate.
Ciudat este că la o a doua rulare, valorile sunt inversate.
Și CaffeineMark reușește să țină abaterea la o valoare de sub 10%, acceptabilă Totuși, nici aici nu am avut două rulări cu aceleași valori pe același aparat.
Alt test, alte rezultate: Benchmark. Din nou abaterile sunt în limita de 10% și nici aici două rulări consecutive nu au dat două valori identice.
Nu mai zic de mult apreciatul și discutatul Quadrant. Aici rezultatele diferă foarte tare indiferent de condițiile de test. Inițial primisem valori de 14000 de puncte. După factory reset, reinstall am ajuns să sar de 20000. Dacă aș fi rulat testul de încă 3-4 ori rezultatele ar fi fost diferite.
Ca să nu mai zic că am observat de câteva ori că dacă se modifică cache-ul sistemului de operare, rezultatul final poate fi influențat destul de tare.
la fel și cu Browsermark, un test de browser pe care mult timp l-am considerat chiar decent. Acum încep să îmi schimb părerea și despre el.
AntuTu e unul din benchmark-urile despre care s-a vorbit că Samsung Galaxy Note 3 știe să îl înșele, sau mai bine zis să îl crească artificial. După o primă rulare cu valori mici (29408) acum lucrurile s-au schimbat. Din păcate două rulări consecutive nu asigură două rezultate identice nici aici.
3DMark, un benchmark ce se presupune că are încoporat know how de calitate în ceea ce înseamnă măsurarea face o figură mai frumoasă: pentru prima dată când rularea în paralel aduce rezultate aproape identice. Repetarea operațiunii după un reset schimbă din nou rezultatele.
Concluzie: doar ca și comparație, nimic mai mult
Unde vreau să ajung? Să vă îndemn să citiți informațiile de benchmark ca atare și să le luați exact ca ceea ce sunt: adică un indicator de clasificare și nu ca instrument absolut de măsurare a performanței. Când un Android dă un rezultat mai bun într-un anumit test nu înseamnă nepărat că performanța lui e foarte diferită ce cea a produsului cu un scor mai mic.
Benchmark-urile greșesc și uneori grosolan. Benchmark-urile pot fi înșelate.
Din punctul meu de vedere, când se ia un smartphone sau tabletă, ceas, eReader sau orice are procesor, rezultatul din benchmark-ul de performanță este cel care ar trebui să conteze cel mai puțin. Sau măcar ultimul pe lista de criterii avute în vedere. Iar dacă o faceți, asigurați-vă că cel care a dat rezultatele benchmark-urilor a documentat corect modul de testare și puteți înțelege exact ce a testat, cum și cauzele ce au dus la respectivul rezultat.
După plăcerea ochiului, configurație dorită (totuși să nu cădeți în capcanele de marketing ce anunță frecvențe, megapixeli, număr de core-uri etc.), autonomie și preț.