OnePlus 5 deltar igjen i benchmark-juks i et forsøk på å lure anmeldere og kunder. Finn ut hvordan de gjorde det i artikkelen vår!
Tidligere i år har vi publiserte en rapport som fordømte OnePlus (og andre selskaper) for deres upassende oppførsel i forhold til benchmark-manipulasjon på nyere versjoner av OxygenOS. I dag må vi dessverre følge opp beskyldningene våre ettersom selskapet nok en gang har manipulert benchmarkscore på upassende måte i OnePlus 5.
Selv om ingen kunder har en enhet i hendene (den ble tross alt nettopp lansert), har vi lært om OnePlus nye benchmark-juksemekanisme gjennom vår vurderingsenhet, som vi mottok for omtrent ti dager siden før dagen embargoen bryter og anmeldere får rapportere på enheten. Dessverre er det nesten sikkert det hver eneste anmeldelse av OnePlus 5 som inneholder en benchmark bruker misvisende resultater, ettersom OnePlus ga anmeldere en enhet som jukser med benchmarks. Dette er et utilgivelig trekk, fordi det til syvende og sist er et forsøk på å villede ikke bare kunder, men besmitte arbeidet til anmeldere og journalister med villedende data som de fleste ikke er i stand til å veterinære eller bekrefte. Som et resultat er hver OnePlus 5-anmeldelse som siterer benchmark-score som en anerkjennelse av telefonens suksess. villedende både forfattere og lesere, og ytelsesanalyser basert på syntetiske benchmarks er ugyldig. Det som er verre er at denne gangen,
Før vi går inn i detaljene, vil jeg si at vi er skuffet over at selskapet nok en gang tyr til denne praksisen. Vi vil heller ikke gi en fullstendig resultatanalyse involverer alle de inkluderte testene våre, ettersom mange av våre foretrukne benchmarks påvirkes av juksemekanismen. Til slutt vil vi oppdele denne rapporten fra vår generelle vurdering av selve enheten, fordi vi er sikre på den skyldige koden vil bli fjernet fra forbrukerbygg etter denne rapporten og samtalene våre med OnePlus representanter. Selv om vi ikke tror på denne funksjonsartikkelen nødvendigvis skulle endre oppfatningen din av selve maskinvaren, er det riktig for den å dytte din mening om selskapet, siden det er deres andre overtredelse.
Et raskt ord om metodikk
Alle poengsummene i denne artikkelen er oppnådd på en OnePlus 5-gjennomgangsenhet som kjører OxygenOS versjon 4.5.0 (A5000_22_170603); dette er en pre-produksjonsenhet, og den ble opprinnelig lastet med pre-produksjonsprogramvare som mottok en OTA til versjonen nevnt ovenfor. OnePlus videresendte anmelderinstruksjoner for å aktivere muligheten til å laste ned benchmark-applikasjoner Play-butikken, og antagelig ble dette gjort for at det ikke skulle være noen lekkasjer i forkant av benchmarkscore tid. Det ledet meg inn i det faktum at OnePlus refererte til benchmark-pakker ved navn i ROM-en deres. Når det gjelder testing, hadde ROM-en minimale bakgrunnsprosesser uten tredjepartsapplikasjoner og kjører flymodus der det er aktuelt; CPU-frekvenser ble kun logget for å bestemme omfanget av jukset og ikke i testene som ga resultater for denne artikkelen. Alle temperaturer ble målt ved hjelp av en FLIR C2 Compact med hvert utholdenhetsløp som begynner ved en ytre temperatur på 28,5°C | 83,3°F.
Benchmark-manipulasjon – hvordan det gjøres
I januar i fjor avdekket rapporten vår en juksemekanisme funnet i OxygenOS Beta-bygg og i fraktprogramvaren til OnePlus 3T. Vi tilskrev disse endringene de siste sammenslåing av de da forskjellige OxygenOS og HydrogenOS utviklerteam, og den underliggende kodebasen til OxygenOS som nå skulle deles med HydrogenOS, selv om denne spekulasjonen ennå ikke er bekreftet. Det ga mening for oss den gangen, og kommentarer fra OnePlus-representanter til XDA-utviklere ga troverdighet til teorien vår. Med OnePlus 5 ser vi en annen type juksemekanisme, men vi kan ikke finne ut om dette bevisst ble introdusert av de samme utviklerne som la det til første gang. Vi vet bare at den er rettet mot de samme pakkene.
Så hvordan fungerer det, og hva er forskjellen? Forrige gang introduserte OnePlus endringer i oppførselen til ROM-en deres hver gang den oppdaget at en benchmark-applikasjon ble åpnet. Slike applikasjonsnavn ble eksplisitt oppført etter pakke-ID-ene i ROM-en i et manifest som spesifiserte målene. Deretter ville ROM-en endre frekvensen i forhold til en justert CPU-belastning -- verktøyene våre viste at CPU-belastningen ville falle til 0 % uavhengig av åpenbar aktivitet i applikasjonen, og CPU-en vil se en nesten minimumsfrekvens på 1,29 GHz i de store kjernene og 0,98 GHz i de små kjerner. Denne minimumsfrekvensen reduserte det effektive frekvensområdet, som igjen reduserte antallet trinnfrekvenser; i benchmarks resulterte dette i litt lavere varians og, som vi viste, høyere vedvarende ytelse da den høyere minimumsfrekvensen ikke kunne overstyres av termisk struping. Kort sagt, jukseatferd var tydelig og påviselig ved både å se på poengvariasjon og ved å overvåke CPU-frekvenser gjennom hele benchmark, som viste et frekvensgulv som - for det meste - gjorde at enheten konsekvent kunne score nærmere sitt fulle potensial.
OnePlus 5, på den annen side, er et helt annet beist - den tyr til den typen åpenbare, kalkulerte juksemekanismer vi så i flaggskip i de tidlige dagene av Android, en tilnærming som tydeligvis er ment å maksimere poengsummen i de mest misvisende mote. Selv om det ikke er noen guvernørbrytere når en bruker går inn i en benchmark (i det minste kan vi ikke se ut til å se det er tilfellet), hopper minimumsfrekvensen til den lille klyngen til maksimumsfrekvensen som sett under ytelsesregulatorer. Alle små kjerner påvirkes og holdes på 1,9 GHz, og det er gjennom denne juksen at OnePlus oppnår noen av de høyeste GeekBench 4 score på en Snapdragon 835 til dags dato - og sannsynligvis den høyest oppnåelige gitt den kompromissløse konfigurasjonen med dens spesifikke konfigurasjon. Scorer absolutt høyere enn de oppnådd av lignende enheter og Qualcomms egen MSM8998-testenhet som vi var så heldige å måle. Nedenfor er en liste over referanseapplikasjoner som er berørt:
- AnTuTu (com.antutu.benchmark.full)
- Androbench (com.andromeda.androbench2)
- Geekbench 4 (com.primatelabs.geekbench)
- GFXBench (com.glbenchmark.glbenchmark27)
- Kvadrant (com.aurorasoftworks.quadrant.ui.standard)
- Nenamark 2 (se.nena.nenamark2)
- Vellamo (com.quicinc.vellamo)
Det som er helt uventet er de berørte applikasjonene er nøyaktig de samme som forrige gang, og OnePlus retter seg helt klart mot de samme pakkene. Forskjellen i poengsum er akkurat det du forventer, for det meste. Vi var i stand til å forfalske benchmark-jukset og unngå det med GeekBench 4, på samme måte som testingen vår i vår forrige rapport. Vi fant ut at mens du kjørte GeekBench 4 fra Play Store, fikk enheten over 6700 i multi-core, mens vi aldri oppnådde en poengsum på 6500 når enheten oppfører seg som forventet med vår skjulte oppbygging av GeekBench. Nedenfor kan du se en frekvens over tid-plott for OnePlus 5s lille klynge når du kjører GeekBench 4 fra Play Store, og den samme konfigurasjonen kjører en build av GeekBench 4 strippet for identifikatorer som er i stand til å lure OnePlus juks mekanisme.
I tilfelle det ikke er tydelig fra grafen ovenfor: vi spurte CPU-frekvensen hver 100 ms, og totalt returnerte bare 24,4 % av avlesningene maksimalfrekvensen på 1,9 GHz når de deaktiverte juks. I mellomtiden, løpeturen med aktivert juks brukte svimlende 95 % av avlesningene i sin maksimale frekvenstilstand. Det er helt tydelig at OnePlus holder CPU-frekvensene til disse kjernene kunstig høye under benchmark, noe som resulterer i betydelig høyere samlede poengsum i flerkjernetesten og er også manifestert i forskjellige CPU-bundne delpoeng i den detaljerte oversikten over hver test (spesielt i heltall og flytende tall operasjoner). Forskjellen er imidlertid mest tydelig og fordelaktig i multi-core score, og single-core resultater er faktisk overraskende like mellom løpene med og uten benchmark-juks, hvor enkeltkjernepoengsummen faktisk er høyere i gjennomsnitt uten manipulasjon.
Fortsatt er multi-core den figuren de fleste vurderer og umiddelbart legger merke til når det kommer til denne spesifikke referansen, gitt Android er et svært parallelt operativsystem som nå er fullt av flertrådede applikasjoner etter mange års støtte for flere kjerner. Selv om økningen bare er meningsfull i flertrådede benchmarks og tester, vil det fortsatt resultere i en betydelig, urettferdig og ikke-representativ fordel i forhold til andre enheter som lar deres standard regulator og ytelsesinnstillinger operere under benchmark; disse endrede resultatene er ikke representative for den virkelige ytelsen til OnePlus 5 på noen måte, ettersom de er reflekterer en topp og ellers uoppnåelig ytelse av enheten under kunstige forhold og uten begrensninger.
Multi Core-poengdeltaet mellom poengsummene når du kjører GeekBench 4 med og uten juksemekanismen kan være opptil 6,5 %, men i gjennomsnitt er det på rundt 5 %. Det kan se ubetydelig, men det dyttet er nok til å drive enheten foran andre Snapdragon 835-enheter. Ovenfor kan du se et punktplott av flere uavhengige serier av GeekBench 4 med og uten juksemekanismen. Kløften er tydelig, og som man kan utlede fra boksplotten, kan den ikke være et resultat av iboende varians. Kort sagt, å øke CPU-frekvensene kunstig høy gir faktisk mye bedre resultater i syntetiske benchmarks.
Nedenfor kan du se et plott av ytelse over tid med tilhørende temperaturer, slik vi ønsket å fastslå om det også er termisk avspenning på spill, eller om det var forskjell i skårer under vedvarende referansemåling.
Vi setter opp GeekBench 4-tester med en pause på to sekunder mellom resultatskjermbildet og initieringen av en ny benchmarkkjøring; ekstern enhetstemperatur (ikke batteritemperatur som rapportert av Android) ble målt ved hjelp av en FLIR termisk kamera etter et sekund med kalibrering, gjennomsnitt av de tre umiddelbare målingene i løpet av to sekunder mellom løper. Jeg var ganske overrasket over å se at disse to enhetene totalt sett ble varmet opp med omtrent samme hastighet, og ingen av dem så et fall i poengsum. Alle resultater i hvert datasett er innenfor den forventede variansen, noe som tyder på at det ikke er noen termisk struping på spill. Ved nærmere ettersyn burde dette egentlig ikke komme som en overraskelse gitt vedvarende ytelse en av de iboende styrkene til Cortex-A73-kjernene som Snapdragon 835s Kryo-kjerner er basert på på. De berørte kjernene er de strømeffektive kjernene, og det faktum at GeekBench 4 spesifikt kommer med tiltak for å forhindre struping som endrer poengsummene til deltestene nær slutten av et løp, er noe vi lærte av intervjuet vårt med John Poole.
Interessant nok er ikke alle populære benchmarks målrettet av OnePlus sin juksemekanisme. 3DMark, for eksempel, så faktisk ikke noen av disse problemene da de kjørte tester eller til og med åpnet applikasjonen. Imidlertid er andre benchmarks som GFXBench målrettet, og vi ser den samme CPU-oppførselen når vi åpner og kjører dem. Faktisk, under en vedvarende ytelseskjøring med GFXBenchs Manhattan Battery Test, nådde OnePlus 5 temperaturer på over 50°C | 122°F (ytre temperatur), en svært sjelden forekomst blant enheter jeg har testet tidligere, som alle opplever en viss grad av termisk struping som hindrer dem i å bli så mye varmt.
Lure meg en gang, skam meg; Lure meg to ganger, skam deg
Det er litt opprørende at det har kommet til et punkt hvor vi må rope ut det samme selskapet to ganger for å ha manipulert referanseresultater. Det faktum at alt dette ble gjort på gjennomgangsenheter også forverrer problemet ytterligere: denne juksemekanismen er rettet mot å maksimere ytelsen og få enheten til å se bedre eller raskere ut i ytelsesdelene av anmeldelser. Målrettings- og manipulasjonssystemet ble pakket i pre-produksjonsenheter sendt til journalister som vil basere deres funn på enheten deres fra OnePlus, mange av dem er ikke i stand til eller villige til å bekrefte eksistensen av juks i deres vurderingsenhet. Det er på ingen måte deres feil, men XDA er på utkikk etter benchmark-manipulasjon bare fordi vi fant det tidligere, og vi trodde det var best å informere våre lesere og potensielle telefonkjøpere.
Vi håper denne artikkelen kan gjenopplive en bredere samtale om benchmarks, deres rolle og deres nytte i dagens smarttelefonanmeldelser. Gjør ingen feil, selskaper som Qualcomm og Samsung gjøre bryr seg om benchmarks, og de anser dem som en gyldig, hvis ufullstendig, måte for kunder å bedømme ytelsen til enhetene deres selv om de har mer sofistikerte verktøy å referere til når de utvikler sine prosessorer. Til syvende og sist kan benchmarks være av stor betydning hvis man forstår hva programvaren måler, og i hvilken grad resultatene kan brukes til å utlede rangeringen av en bestemt prosessor, en bestemt konfigurasjon av maskinvare, eller i mer helhetlige termer, en spesifikk telefon med endringene i atferden programvaren introduserer som vi vil. Jeg tror at vi har kommet til en tid hvor det er viktigere å fokusere på virkelig ytelse og strømeffektivitet enn på rå databehandling eller prosessering dyktighet, fordi det åpenbart er klart på dette tidspunktet at flaskehalsen for ytelse i den virkelige verden kommer fra Android og spesielle implementeringer av den OEM-er.
Når jeg går tilbake til OnePlus, vet jeg virkelig ikke hvorfor selskapets programvareteam, og hvilken side av programvareteamet spesifikt, gjeninnførte benchmark-manipulasjon etter å ha blitt kalt ut. Det er verre denne gangen, med det tilsynelatende formålet å blåse opp score produsert av anmeldertelefoner. OnePlus 5 er fortsatt en enhet med utrolig ytelse som virkelig ikke trenger benchmark-juks for å komme med en uttalelse - jeg har virkelig blitt overrasket over dens smidighet og generelle lydhørhet og det er klart for meg etter min tid med selskapets enheter samt intervjuer og samtaler med ledelsen at de vet at ytelse er et sterkt aspekt av telefonene deres. Det er mest sannsynlig et kalkulert trekk, siden de kanskje har funnet ut at det var verdt å irritere en liten del av primært-vestlige siden av entusiastmarkedet for kanskje å gi internett de høyeste referanseresultatene de kunne mønstre. Uansett så håper jeg ærlig talt at selskapet tar feil, for selv om jeg har gode ting å si om maskinvaren deres, har de startet utgivelsen med feil fot i mine øyne.
Uttalelse fra OnePlus
Vi tok kontakt med OnePlus for en kommentar om dette problemet, og her er hva de hadde å si:
Folk bruker benchmark-apper for å fastslå ytelsen til enheten deres, og vi vil at brukerne skal se den sanne ytelsen til OnePlus 5. Derfor har vi tillatt benchmark-apper å kjøre i en tilstand som ligner daglig bruk, inkludert kjøring av ressurskrevende apper og spill. I tillegg, når du starter apper, kjører OnePlus 5 i en lignende tilstand for å øke hastigheten der apper åpnes. Vi overklokker ikke enheten, snarere viser vi ytelsespotensialet til OnePlus 5.
Denne uttalelsen som vi mottok i morges er litt av et sjokk å høre, ettersom benchmark-jukset setter enheten i en tilstand som er eksplisitt ikke hvordan enheten vil kjøre i daglig bruk, og den representerer ytelse som du ikke vil se i andre apper som ikke er spesifikt målrettet av slike økninger.
Husk at i motsetning til konkurrerende overklokking, er de fleste telefonreferanser designet for å representere hvordan en telefon vil fungere i daglig bruk. Det er ikke bare en poengsum for å prøve å oppnå høyest mulig resultater, men snarere et forsøk på å representere hvordan telefonen yter under vanlige termiske profiler og batteribruk. Et forsøk på å representere hvordan telefonen faktisk fungerer i daglig bruk. Disse benchmarkene er ikke laget for å måle noe "ytelsespotensial" som ikke er oppnåelig i den virkelige verden bruk, og ethvert forsøk på å målrette dem med "defeat device" stil benchmark-juksekode er villedende for brukere. Hvis du låser CPU-klokkehastighetene til maksimalverdien og lar telefonens kroppstemperatur stige til ubrukelig nivåer når visse apper åpnes, så er det ikke en indikasjon på hvordan telefonen vil fungere når den faktisk er bruk.
Mens den termiske profilen var relativt normal i den CPU-tunge Geekbench 4, hvor den fantastiske vedvarende ytelsen til de ARM Cortex-A73-baserte Kryo 280-kjernene tillater telefonen for å kjøre på de økte batteribruksnivåene som benchmark-jukset førte uten å bli for varm, så vi en helt annen historie med GPU-intensive apper. Som nevnt, under testing av vedvarende ytelse med GFXBenchs Manhattan Battery Test, nådde OnePlus 5 temperaturer på rundt 50°C | 122°F (ytre temperatur), som er brennhete for en telefon, og er grundig ubehagelig å holde. Prøver å spille videospill eller bruke andre GPU-intensive apper med en 50°C | 122°F telefon ville bare vært en dårlig brukeropplevelse.
Selv om OnePlus også retter seg mot apper som ikke er referanseindekser med sin juksekode for benchmark, vil det fortsatt være et problem, da det vil bety at ytelsen du ser i intensive apper i dag vil være helt annerledes enn det du ser i nåværende apper som ikke er på listen, eller i fremtidige intensive apper når OnePlus slutter å oppdatere listen. Dette kan endres ved å la brukere hvitliste hvilke applikasjoner som drar nytte av skjulte forsterkninger, samt vis transparent hvilke som drar nytte av standard -- vi foreslo dette med vår siste rapport, men det har det ikke vært implementert.
Vi er skuffet over OnePlus handlinger i denne saken, og håper at OnePlus for andre gang vil fjerne juksekoden for benchmark fra programvaren deres. Det gir en feilaktig fremstilling av telefonen deres til kundene, og er ikke den typen oppførsel vi liker å se med enheter så ellers fantastiske som OnePlus 3T og OnePlus 5.
OPPDATERT UTTALELSE
OnePlus har gitt en oppdatert uttalelse som bedre forklarer deres holdning til emnet:
"Vi har satt OnePlus 5 til å kjøre benchmarks på et høyytelsesnivå som er både naturlig og bærekraftig for alle enheter, media og forbrukere, slik at brukere kan se det sanne potensialet til enheten, når de kjører ressurskrevende apper og spill. På intet tidspunkt overklokker vi CPU'en, og vi setter heller ikke et CPU-frekvensgulv.
Vi er sikre på at vår tilnærming best viser de sanne ytelsesegenskapene til OnePlus 5."
Utsagnet sier riktig at det ikke er noen overklokking involvert (som ville være ett skritt over gjeldende mekanisme, når det gjelder å produsere illegitime score), og det er ingen CPU-frekvensgulv som det vi faktisk så sist. Gjennom denne uttalelsen og etter samtaler med OnePlus-representanter er det klart for meg at de ikke har det implementerte denne mekanismen av ren ondskap, men fordi de ønsket å vise ytelsen "evner" til enhet. Men nok en gang må vi påpeke at "evner" her (og til dem) refererer til topppotensial, ikke det faktiske ytelsesnivået brukeropplevelsen er bundet til å gi gjennom tradisjonell frekvens skalering. Enig eller uenig, det er bekreftet at denne benchmark-manipulasjonen vil forbli, selv om vi har foreslått muligheten å gjøre en slik ytelsesprofil brukertilgjengelig for utvalgte applikasjoner, og jeg tror OnePlus er mottakelig for det idé. Det er andre selskaper som gjør slike justeringer brukertilgjengelige, inkludert HTC og Samsung, selv om deres løsninger dreier seg for det meste om redusert strømforbruk (selv om endringer i oppløsning per app øker ytelsen i spill, også).
Faktum gjenstår at referanseprodusenter, Android-ingeniører og entusiaster ser på disse mekanismene som urettferdige, urepresentative for brukeropplevelse, litt villedende og, til syvende og sist, sløsing med ressurser som kunne gått til et annet aspekt av produktutviklingen. Hvis du vil se hvor hardt OnePlus 5 kan presse maskinvaren, vil du sannsynligvis være enig i OnePlus beslutning. Hvis du vil se hvordan OnePlus 5s kombinasjon av maskinvare og standard programvare sammenlignes med andre enheter med lignende maskinvare, er du uheldig, fordi manipulering av CPU-frekvenser på en slik måte gjør poeng totalt inkommensurable.
Til slutt, og med fare for å fremstå som konfronterende, vil jeg også bruke et øyeblikk på å nevne noe som misfornøyde meg med denne rapportens mottakelse: det har vært delt over hele verden tusenvis av ganger, og re-blogget av tusenvis av utsalgssteder også, men budskapet og detaljene er enten innhyllet i tåke eller falt helt sammen veien. Jeg har sett en så åpenbar og forferdelig feil dekning av denne artikkelen, med forferdelig feilrepresentasjoner av hva vi sa, hva vi fant, selve mekanismen og OnePlus' uttalelse og planer for fremtiden. Faktisk, her er noen ting jeg vil at slike blogger skal vite: OnePlus "tuklet" ikke med anmelderenheter; problemet omfatter også forbrukerenheter; det er en bevisst beslutning fra OnePlus; nei, de fortalte oss ikke at det ville endre seg; termisk struping kan være avslappet, men telefonen er ikke utsatt for eksplosjon; det er ingen "juksekode"; vi er faktisk fornøyd med enhetens faktiske ytelse, ikke vri på ordene våre; Qualcomm har ingenting med dette å gjøre; vi "skammet" aldri HTC og Samsung i rapportene våre, vi nevnte dem i forbifarten og for kontekst i vår første artikkel, på grunn av en mye eldre hendelse. Det er bare en brøkdel av de vanlige feilene jeg skulle ønske jeg kunne ta tak i. For mange artikler og videoer vi har sett har hatt en grunnleggende feil og misforståelse som, etter vår mening, slakter timene med nøye datainnsamling og analyse som ble brukt i denne artikkelen. Hva verre er, problemet forverres når vi leser indiske eller kinesiske blogger som ytterligere ødelegger funnene våre på grunn av de iboende vanskene med oversettelse. Til syvende og sist er vi ekstremt skuffet over teknologimedienes håndtering av denne rapporten, spesielt de som brukte konklusjonen vår til å skrive «hit pieces» mot OnePlus, noe vi egentlig aldri hadde tenkt. Vi sa det ovenfor, vi sa det i vårt første inntrykk, og vi sa det igjen: selve produktet er bra, ytelsen er fenomenal.