[offtopic]
Se, että userbenchmark on kasa paskaa on tiedetty jo kauan
Ja vaikka muuttivat tuon "kokonaistuloksensa" laskenta-algoritmia, laskevat sen edelleen aritmeettisella keskiarvolla, mikä tarkoittaa että se tulosten normalisointi vaikuttaa aina siihen.
jos jotain osatuloksia yhdistellään, järkevää olisi käyttää geometrista keskiarvoa, joka on immuuni sille, mikä valitaan normalisointikohdaksi.
Tässä vielä väännetty käytännön esimerkki tästä aritmeettisen keskiarvon normalisointiongelmasta:
Benchmark 1:
Kokoonpano A laskee 4 kania sekunnissa.
Kokoonpano B laskee 2 kania sekunnissa.
Benchmark 2:
Kokoonpano A laskee 1 elefantin sekunnissa
kokoonpano B laskee 2 elefanttia sekunnissa.
Aritmeettinen keskiarvo oletuksella että kani on yhtä arvokas kuin elefantti antaa kokoonpanolle A tuloksen 2.5 eläintä sekunnissa, ja kokoonpanolle B tuloksen 2 eläintä sekunnissa. A on tällä painotuksella 25% nopeampi.
Mutta entäs jos tajutaan, että elefantti on isompi ja raskaampi eläin kuin kani, ja sovitaan vaikka että 1 elefantti vastaa 8 kania:
Aritmeettinen keskiarvo antaakin tällöin kokoonpanolla A tuloksen 1.5 elefanttia sekunnissa ja kokoonpanolla B tuloksen 2.25 elefanttia sekunnissa.
Tällä painotuksella kokoonpano B onkin 50% nopeampi kuin A.
Eikä ole mitään järkevää määritelmää sille, kumpi näistä normalisaatiosta on "oikea". Valitsemalla erilainen normalisaatio saadaan aina erilainen lopputulos, ja mahdollisia normalisaatiota on äärettömästi erilaisia.
Todellisuudessa kuitenkin toisessa testissä toinen on tuplasti nopeampi ja toisessa testissä toinen on tuplasti nopeampi joten yhteistuloksen on järkevää antaa tulos, että ovat keskimäärin yhtä nopeita.
Geometrinen keskiarvo antaa tämän järkevän tuloksen, se on immuuni osatestien normalisoinnille
sqrt(4*1) = 2 = sqrt(2*2)
[/offtopic]