国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Dhrystone基準(zhǔn)測試程序在Google Pixel4上運(yùn)行跑分教程

這篇具有很好參考價(jià)值的文章主要介紹了Dhrystone基準(zhǔn)測試程序在Google Pixel4上運(yùn)行跑分教程。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

記錄一下實(shí)驗(yàn)過程,方便后續(xù)回顧

一、Dhrystone簡介

Dhrystone是測量處理器運(yùn)算能力的最常見基準(zhǔn)程序之一,常用于處理器的整型運(yùn)算性能的測量。程序是用C語言編寫的,因此C編譯器的編譯效率對測試結(jié)果也有很大影響。

但其也有許多不足,Dhrystone不僅不適合于作為嵌入式系統(tǒng)的測試向量,甚至在其大多數(shù)場合下都不適合進(jìn)行應(yīng)用。Dhrystone還有許多漏洞,例如:易被非法利用、人為痕跡明顯、代碼長度太短、缺乏驗(yàn)證及標(biāo)準(zhǔn)的運(yùn)行規(guī)則等。該程序是用C編寫的,容易受到編譯器影響,不同優(yōu)化選項(xiàng)下,測試的性能并不一致。代碼量小,在現(xiàn)代CPU中,它能夠被放進(jìn)指令緩存中,所以它并不能嚴(yán)格的測量取指性能。

Dhrystone標(biāo)準(zhǔn)的測試方法很簡單,就是單位時(shí)間內(nèi)跑了多少次Dhrystone程序,其指標(biāo)單位為DMIPS/MHz。MIPS是Million Instructions Per Second的縮寫,每秒處理的百萬級的機(jī)器語言指令數(shù)。DMIPS中的D是Dhrystone的縮寫,它表示了在Dhrystone標(biāo)準(zhǔn)的測試方法下的MIPS。

關(guān)于DMIPS有一個(gè)不得不注意的點(diǎn),因?yàn)闅v史原因我們把在VAX-11/780機(jī)器上的測試結(jié)果1757 Dhrystones/s定義為1 DMIPS,因此在其他平臺測試到的每秒Dhrystones數(shù)應(yīng)除以1757,才是真正的DMIPS數(shù)值,故DMIPS其實(shí)表示的是一個(gè)相對值。

二、源碼

可以直接移植官方版本的,但是如果移植官方的會有比較多的錯(cuò)誤。
比如:

  • 常見C庫函數(shù)的重定義(malloc等)
  • 沒有包含使用到的C庫的頭文件
  • 一些系統(tǒng)定義的變量,如系統(tǒng)中斷HZ變量沒有包含
  • 函數(shù)沒有聲明等

網(wǎng)上有多個(gè)版本的,這里使用的是包含dry.h、dry1.c和dry2.c的源碼。并且該版本修復(fù)了一些已知的錯(cuò)誤。基于dhrystone2.2版本。
https://github.com/iwannatto/dhrystone

三、編譯

1.修改Makefile文件

需要做的就是簡單修改Makefile文件即可編譯代碼:設(shè)置交叉工具鏈、把一些沒有要的代碼注釋掉,下面是我簡單修改后的Makefile文件。

注意:CTOOL:=arm-linux-gnueabi- 和 CCL:=/usr 要修改為自己的安裝路徑
安裝32位gcc編譯器 sudo apt-get install gcc-arm-linux-gnueabi

.PHONY: run clean
# Set compilation tool chain
CTOOL:=arm-linux-gnueabi-
CCL:=/usr
CC:=${CCL}/bin/${CTOOL}gcc
CFLAGS=-O3

run: dry2 dry2nr dry2o
#	./dry2 ${1-50000} 2>/dev/null
#	./dry2nr ${1-50000} 2>/dev/null
#	./dry2o ${1-50000} 2>/dev/null

dry2: dry.h dry1.c dry2.c
	${CC} -c ${CFLAGS} dry1.c -o dry1.o -static
	${CC} ${CFLAGS} dry2.c dry1.o ${LFLAGS} -o dry2 -static

dry2nr: dry.h dry1.c dry2.c
	${CC} -c -DREG ${CFLAGS} dry1.c -o dry1.o -static
	${CC} -DREG ${CFLAGS} dry2.c dry1.o ${LFLAGS} -o dry2nr -static

dry2o: dry.h dry1.c dry2.c
	${CC} -c -O ${CFLAGS} dry1.c -o dry1.o -static
	${CC} -O ${CFLAGS} dry2.c dry1.o ${LFLAGS} -o dry2o -static

clean:
	rm -f dry1.o dry2 dry2nr dry2o


使用make進(jìn)行編譯,多線程make -j8,這里可以根據(jù)電腦實(shí)際配置修改,不加-j也很快。

ps:其他編譯方式

cc編譯
cc -c  dry.c -o dry1.o
cc -DPASS2  dry.c dry1.o  -o dry2

gcc編譯
gcc -c  dry.c -o dry1.o
gcc -DPASS2  dry.c dry1.o  -o dry2

sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install gcc-aarch64-linux-gnu

arm32位編譯(使用32位編譯)
arm-linux-gnueabi-gcc -c  dry.c -o dry1.o
arm-linux-gnueabi-gcc -DPASS2  dry.c dry1.o  -o dry2 -static

arm64位編譯
aarch64-linux-gnu-gcc -c  dry.c -o dry1.o
aarch64-linux-gnu-gcc -DPASS2  dry.c dry1.o  -o dry2 -static

通過上一步編譯得到三個(gè)可執(zhí)行文件,分別是dry2、dry2nr、dry2o

這三個(gè)文件的區(qū)別就是編譯的時(shí)候使用了不同的參數(shù)。

Dhrystone基準(zhǔn)測試程序在Google Pixel4上運(yùn)行跑分教程,android,linux,kernel,Linux內(nèi)核,匯編
dry2:普通的編譯
dry2nr:編譯加了-DREG
dry2o:編譯添加了-O,優(yōu)化了代碼

四、運(yùn)行

要運(yùn)行在手機(jī)上,需要通過adb將編譯得到的可執(zhí)行程序push到手機(jī)上。然后給其增加權(quán)限。
我這里把一整個(gè)文件夾都傳過來了。

adb push D:\xxx\Dry /data/local/tmp
chmod 777 dry2 dry2nr dry2o

通過adb shell進(jìn)入文件系統(tǒng),找到可執(zhí)行程序,直接運(yùn)行即可。

flame:/data/local/tmp/Dry # ./dry2o

Dhrystone Benchmark, Version C, Version 2.2
Program compiled without 'register' attribute
Using times(), HZ=100

Trying 50000 runs through Dhrystone:
Measured time too small to obtain meaningful results

Trying 500000 runs through Dhrystone:
Measured time too small to obtain meaningful results

Trying 5000000 runs through Dhrystone:
Measured time too small to obtain meaningful results

Trying 50000000 runs through Dhrystone:
Final values of the variables used in the benchmark:

Int_Glob:            5
        should be:   5
Bool_Glob:           1
        should be:   1
Ch_1_Glob:           A
        should be:   A
Ch_2_Glob:           B
        should be:   B
Arr_1_Glob[8]:       7
        should be:   7
Arr_2_Glob[8][7]:    50000010
        should be:   Number_Of_Runs + 10
Ptr_Glob->
  Ptr_Comp:          0x83e360
        should be:   (implementation-dependent)
  Discr:             0
        should be:   0
  Enum_Comp:         2
        should be:   2
  Int_Comp:          17
        should be:   17
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->
  Ptr_Comp:          0x83e360
        should be:   (implementation-dependent), same as above
  Discr:             0
        should be:   0
  Enum_Comp:         1
        should be:   1
  Int_Comp:          18
        should be:   18
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc:           5
        should be:   5
Int_2_Loc:           13
        should be:   13
Int_3_Loc:           7
        should be:   7
Enum_Loc:            1
        should be:   1
Str_1_Loc:           DHRYSTONE PROGRAM, 1'ST STRING
        should be:   DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc:           DHRYSTONE PROGRAM, 2'ND STRING
        should be:   DHRYSTONE PROGRAM, 2'ND STRING

Microseconds for one run through Dhrystone:        0.0
Dhrystones per Second:                        24271844

最后的得分就是:24271844/1757/xxMHz文章來源地址http://www.zghlxwxcb.cn/news/detail-527897.html

到了這里,關(guān)于Dhrystone基準(zhǔn)測試程序在Google Pixel4上運(yùn)行跑分教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 安卓逆向?qū)W習(xí)及APK抓包(二)--Google Pixel一代手機(jī)的ROOT刷入面具

    安卓逆向?qū)W習(xí)及APK抓包(二)--Google Pixel一代手機(jī)的ROOT刷入面具

    在手機(jī)選擇上,優(yōu)先選擇谷歌系列手機(jī),Nexus和Pixel系列,剛好手頭有Pixel一代,就直接root了,大家感興趣可以某寶幾百塊錢入手一臺。Pixel手機(jī)花了本人一天,中間踩坑無數(shù),終于還是root成功,感觸頗深,所以先記錄一下Pixel手機(jī)的root之旅。 安卓逆向?qū)W習(xí)及APK抓包(一)【Ka

    2024年02月11日
    瀏覽(36)
  • Linux服務(wù)器常見運(yùn)維性能測試(1)綜合跑分unixbench、superbench

    Linux服務(wù)器常見運(yùn)維性能測試(1)綜合跑分unixbench、superbench

    最近需要測試一批服務(wù)器的相關(guān)硬件性能,以及在常規(guī)環(huán)境下的硬件運(yùn)行穩(wěn)定情況,需要持續(xù)拷機(jī)測試穩(wěn)定性。所以找了一些測試用例。本次測試包括在服務(wù)器的高低溫下性能記錄及壓力測試,高低電壓下性能記錄及壓力測試,常規(guī)環(huán)境下CPU滿載穩(wěn)定運(yùn)行的功率記錄。 這個(gè)系

    2024年02月04日
    瀏覽(103)
  • 谷歌Google Pixel6Pro/7pro手機(jī)刷入ROOT權(quán)限-開通Volte+破解5G網(wǎng)絡(luò)高速刷機(jī)教程

    谷歌Google Pixel6Pro/7pro手機(jī)刷入ROOT權(quán)限-開通Volte+破解5G網(wǎng)絡(luò)高速刷機(jī)教程

    谷歌pixel6和pixel7系列,出廠并不帶volte功能,也不支持完美的5G效果,對于我們這種 身處大陸,又想體驗(yàn)高清通話的小伙伴來說,并不友好,所以第三方破解實(shí)現(xiàn)就顯得非常 重要了。通過實(shí)際測試,兩款機(jī)型都是可以成功的。教程比較簡單,跟著操作一般都能完 成,破解刷機(jī)

    2024年02月11日
    瀏覽(20)
  • Go語言測試——【單元測試 | Mock測試 | 基準(zhǔn)測試】

    Go語言測試——【單元測試 | Mock測試 | 基準(zhǔn)測試】

    作者 :非妃是公主 專欄 :《Golang》 博客主頁 :https://blog.csdn.net/myf_666 個(gè)性簽:順境不惰,逆境不餒,以心制境,萬事可成?!鴩?軟件測試 :軟件測試(英語:Software Testing),描述一種用來促進(jìn)鑒定軟件的正確性、完整性、安全性和質(zhì)量的過程。換句話說,軟件測

    2024年02月10日
    瀏覽(22)
  • Go語言的單元測試與基準(zhǔn)測試詳解

    Go語言的單元測試與基準(zhǔn)測試詳解

    單元測試 以一個(gè)加法函數(shù)為例,對其進(jìn)行單元測試。 首先編寫add.go文件: 其次編寫add_test.go文件,在go語言中,測試文件均已_test結(jié)尾,這里只需要在被測試的文件后加上_test即可。并且測試文件與要被測試的文件需要放在同一個(gè)包中,并不像 Java 那樣需要將所有的測試文件

    2024年02月03日
    瀏覽(20)
  • go benchmark 基準(zhǔn)測試

    go benchmark 基準(zhǔn)測試

    目錄 一、benchmark的使用 1.一個(gè)簡單的例子 2.運(yùn)行用例 3.benchmark 是如何工作的 4.提升準(zhǔn)確度 5.內(nèi)存分配情況 6.測試不同的輸入 二、benchmark的注意事項(xiàng) 1.ResetTimer 2.StopTimer StartTimer go mod init test 創(chuàng)建項(xiàng)目test,創(chuàng)建目錄bench/fib 創(chuàng)建fib.go 創(chuàng)建fib_test.go go 不管是單元測試還是基準(zhǔn)測試,

    2024年02月02日
    瀏覽(32)
  • Java核心鎖基準(zhǔn)測試

    Java核心鎖基準(zhǔn)測試

    基于JMH基準(zhǔn)測試庫 測試代碼 參數(shù): 20個(gè)線程 1000w個(gè)槍鎖任務(wù) 結(jié)果 ReentrantLock: 平均用時(shí)263毫秒 StampedLock: 平均用時(shí)263毫秒 synchronized: 平均用時(shí)454毫秒 參數(shù): 50個(gè)線程 1000w個(gè)槍鎖任務(wù) 結(jié)果 ReentrantLock: 平均用時(shí)271毫秒 StampedLock: 平均用時(shí)297毫秒 synchronized: 平均用時(shí)465毫秒 參數(shù): 50個(gè)

    2024年02月06日
    瀏覽(19)
  • jmeter 基準(zhǔn)測試

    jmeter 基準(zhǔn)測試

    在系統(tǒng)無壓力時(shí),分別對每個(gè)腳本用1個(gè)用戶執(zhí)行5分鐘或循環(huán)100次操作,獲得交易響應(yīng)時(shí)間,通過此測試初步檢查交易響應(yīng)時(shí)間的量級,為后續(xù)測試提供對比基礎(chǔ)。 通過基準(zhǔn)測試,一是為了確認(rèn)測試腳本的可用性,二是獲取系統(tǒng)理論最快響應(yīng)時(shí)間,為并發(fā)測試提供參考依據(jù)。

    2024年02月12日
    瀏覽(18)
  • Java-基準(zhǔn)測試

    在軟件開發(fā)中,性能優(yōu)化是一個(gè)永恒的話題。為了確保代碼在生產(chǎn)環(huán)境中運(yùn)行得盡可能快,開發(fā)者需要一種準(zhǔn)確的方法來度量和比較不同代碼片段的性能。Java Microbenchmark Harness(JMH)是一個(gè)專門為Java和其他基于JVM的語言設(shè)計(jì)的工具,它允許開發(fā)者以高精度執(zhí)行微基準(zhǔn)測試。

    2024年01月15日
    瀏覽(15)
  • 【go語言】3.3.1 單元測試和基準(zhǔn)測試

    【go語言】3.3.1 單元測試和基準(zhǔn)測試

    Go 語言的 testing 包為編寫單元測試和基準(zhǔn)測試提供了強(qiáng)大的支持。單元測試用于驗(yàn)證代碼的正確性,基準(zhǔn)測試用于測量代碼的性能。 在Go語言中,單元測試和基準(zhǔn)測試是兩種常用的測試方法,用于測試和評估代碼的質(zhì)量和性能。 單元測試是一種針對代碼中最小可測試單元(函

    2024年02月08日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包