兔兔評(píng)測(cè)是國內(nèi)安卓手機(jī)、平板最常用的性能測(cè)試工具,目前,也常用來評(píng)測(cè)安卓機(jī)頂盒的性能,為了在某個(gè)特定的測(cè)試項(xiàng)上獲取更佳的得分結(jié)果,在這上面的作弊也是屢見不鮮。
62.jpg (24.13 KB, 下載次數(shù): 5)
下載附件
保存到相冊(cè)
2015-5-27 15:00 上傳
近日筆者通過測(cè)試2臺(tái)均使用了RK3128平臺(tái)的機(jī)頂盒的同一版本安兔兔(安兔兔V5.7)跑分,卻得到了差距懸殊的結(jié)果。其中,中國移動(dòng)招標(biāo)測(cè)試某RK3128盒子總得分為24154,某品牌RK3128盒子總得分14673,相差9481分!而這其中尤為明顯差異的是單線程浮點(diǎn),2個(gè)盒子該指標(biāo)上居然相差5959分。
單線程能力是可以體現(xiàn)在某些低功耗運(yùn)行設(shè)定下的實(shí)際性能表現(xiàn)。用戶需要知道自己的設(shè)備性能極限在哪里,也需要知道自己能日常夠用到的性能大概有多少。
在固有的觀念中,CPU核心數(shù)量的增多會(huì)被認(rèn)為整體性能將有所提升,這點(diǎn)也并非毫無根據(jù)。但在實(shí)際使用過程中,我們經(jīng)常接觸的很多APP應(yīng)用程序和游戲并未針對(duì)多核心CPU進(jìn)行優(yōu)化,大多數(shù)情況下只是開啟一個(gè)或者兩個(gè)CPU核心。
所以單核心單線程的性能表現(xiàn)也被安兔兔認(rèn)為有重要影響,并且其測(cè)試分值也被納入評(píng)分體系之中,從而令新版安兔兔測(cè)試成績得分?jǐn)?shù)字再度提高。
55.jpg (51.33 KB, 下載次數(shù): 7)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
RK3128盒子的安兔兔跑分對(duì)比
56.jpg (40.27 KB, 下載次數(shù): 7)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
中國移動(dòng)招標(biāo)測(cè)試某RK3128盒子安兔兔跑分
57.jpg (47.67 KB, 下載次數(shù): 6)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
某品牌RK3128盒子安兔兔跑分
從結(jié)果來看筆者懷疑可能對(duì)libm(動(dòng)態(tài)鏈接庫文件)做了一些特殊處理(profile顯示在跑single thread floating測(cè)試時(shí)對(duì)libm里面的調(diào)用比較多),比如針對(duì)安兔兔跑分調(diào)用libm里面的函數(shù)做計(jì)算時(shí)候輸入的數(shù)據(jù),可以直接返回結(jié)果而不計(jì)算,這樣可以在速度上比實(shí)際通過VFP指令計(jì)算要快得多。
為了進(jìn)一步確認(rèn)這款盒子是否針對(duì)安兔兔有進(jìn)行作弊,筆者又測(cè)試了這2個(gè)盒子Geek bench的跑分,以下只關(guān)注浮點(diǎn)運(yùn)算部分。
58.jpg (23.26 KB, 下載次數(shù): 6)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
RK3128盒子的Geek bench測(cè)試浮點(diǎn)運(yùn)算得分
59.jpg (44.26 KB, 下載次數(shù): 7)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
中國移動(dòng)招標(biāo)測(cè)試某RK3128盒子Geek bench測(cè)試浮點(diǎn)運(yùn)算得分
60.jpg (29.98 KB, 下載次數(shù): 8)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
某品牌RK3128盒子Geek bench測(cè)試浮點(diǎn)運(yùn)算得分
從Geek bench的跑分測(cè)試來看,中國移動(dòng)招標(biāo)測(cè)試某RK3128盒子與某品牌RK3128盒子的浮點(diǎn)運(yùn)算得分結(jié)果上沒有明顯的差異,結(jié)合到表格1的跑分結(jié)果,可以看出來很明顯針對(duì)安兔兔APK做了“特殊優(yōu)化”,從而影響了最終的跑分結(jié)果。
在性能上,同樣系Cortex-A7內(nèi)核的SOC,在同等條件下若沒有進(jìn)行技術(shù)作弊,單線程浮點(diǎn)這個(gè)指標(biāo)的得分結(jié)果不會(huì)有太大差異。為此,為了進(jìn)一步驗(yàn)證,筆者又找了1款其他Cortex-A7盒子與前述的2款RK3128盒子一同基于相同版本的安兔兔(安兔兔V5.7)又重新進(jìn)行了跑分測(cè)試。
61.jpg (62.58 KB, 下載次數(shù): 7)
下載附件
保存到相冊(cè)
2015-5-27 14:41 上傳
Cortex-A7盒子安兔兔跑分測(cè)試
從結(jié)果來看,
A品牌A31S盒子與某品牌RK3128盒子單線程浮點(diǎn)指標(biāo)分?jǐn)?shù)都在800+,而中國移動(dòng)招標(biāo)測(cè)試RK3128盒子在單線程浮點(diǎn)指標(biāo)分?jǐn)?shù)上,卻是其它2款盒子的7倍還多,進(jìn)一步驗(yàn)證了其安兔兔跑分的作弊情況。
實(shí)際上,筆者在網(wǎng)絡(luò)上搜索后發(fā)現(xiàn)這樣的作弊情況并不是首次,有網(wǎng)友就針對(duì)RK3288宣傳安兔兔跑分43000+的情況,做過非常細(xì)致的測(cè)評(píng),針對(duì)浮點(diǎn)跑分就是利用lib注入方式進(jìn)行作弊。
據(jù)了解,早期的安兔兔版本都是通過直接調(diào)用libm里面的pow、cos、sin等數(shù)學(xué)函數(shù)來進(jìn)行測(cè)試,由于libm里面這些函數(shù)的實(shí)現(xiàn)是開源的,所以容易遭到針對(duì)性的修改。比如檢測(cè)到安兔兔在運(yùn)行的時(shí)候,可以讓這些函數(shù)直接返回特定的結(jié)果而并不實(shí)際運(yùn)算,這樣能夠大大節(jié)約測(cè)試時(shí)間并提高分?jǐn)?shù)。
出于上述因素的考慮,版本較高的安兔兔已經(jīng)將這些庫函數(shù)自己做了一個(gè)實(shí)現(xiàn),放在libabenchmark.so里面,這個(gè)so是安兔兔的測(cè)試程序里面自帶,一定程度上可以有效避免廠商修改開源的libm.so帶來的作弊問題,但是并不意味著這樣就徹底了解決作弊問題。
目前,出現(xiàn)了一些采用更加隱蔽的注入式方式進(jìn)行作弊,即在加載安兔兔自帶的這個(gè)so的時(shí)候,用自己實(shí)現(xiàn)的做過弊的函數(shù)來替換掉安兔兔庫里面的函數(shù),從而達(dá)到跑高分的目的。
|