具體硬件平台就不詳細說了,浪費時間碼字,貼一個淘寶上的配置:
有點廣告的既視感,哈哈,不過我200塊咸魚收的2手,配置比這個稍低,比如CPU是Z8300,網卡是百兆的,WIFI可能也不是雙頻的(這個不確定。
因為linux下這玩意沒驅動起來)不過我買回來不是做NAS,只是想搞個7*24在線的小服務器,映射到外網做一點小服務。所以配置差點也無所謂的樣子
先來個待機功耗圖:
待機2.0瓦。不過這個是算上這個220V/5V 3A的效率的,因為電源的總功率是15W(5V/3A)而目標功率小於3W,所以也算是低負載運行,所以實際功耗
應該是小於2瓦的,不像直測USB電流,測出來就是實際功耗,所以在接下來的對比中,我樹莓派也用一個5V 3A的充電頭來帶,盡量做到情景一致
(不過考慮到不同的充電頭,效率也不一樣,所以還是不算嚴謹對比)先來個screenfetch。
-` .o+` yafeng@archlinux `ooo/ OS: Arch Linux `+oooo: Kernel: x86_64 Linux 5.3.0-arch1-1-ARCH `+oooooo: Uptime: 1h 5m -+oooooo+: Packages: 188 `/:-:++oooo+: Shell: bash 5.0.9 `/++++/+++++++: CPU: Intel Atom x5-Z8300 @ 4x 1.84GHz [40.2°C] `/++++++++++++++: GPU: `/+++ooooooooooooo/` RAM: 88MiB / 1862MiB ./ooosssso++osssssso+` .oossssso-````/ossssss+` -osssssso. :ssssssso. :osssssss/ osssso+++. /ossssssss/ +ssssooo/- `/ossssso+/:- -:/+osssso+- `+sso+:-` `.-/+oso: `++:. `-/+/ .` `/
算了,不說廢話了,先記下現在測試過的結果:
空載 2.0W-2.1W,還算穩定
跑滿單核(我自己寫的單核計算圓周率的benchmark) 3.2W
跑滿四核(同上),4.9W
Python遞歸算法計算斐波那契數列的40位:3.9W
測試成績如下:
::Testing gcc installed ::>GCC installed ::===Benchmarking C=== ::Compling pi.c.. ::>Complie time:0.3423449993133545 ::>Calc time:111.01979780197144 ::Wait 10 seconds ::===Benchmarking GMP=== ::Compling gmpi.cpp.. ::>Complie time:2.5547237396240234 ::>Calc time:22.081634759902954 ::Wait 10 seconds ::===Benchmarking mtGMPi Mutithread=== ::Compling mtgmpi.c.. ::>Complie time:0.3653872013092041 ::Number of Thread: 4 ::>Calc time:65.04465556144714
嗯,記住時間就行,三個測試分別是111秒,22秒,65秒
最為比較,i7-4790K這三個成績分別是:36.751,4.675,6.534
計算40位斐波那契數時間為:
[yafeng@archlinux fibn]$ python fib.py 102334155 151.38735151290894
比起台式機簡直弱爆了哈哈。
樹莓派3B,用的另外一個5V 3AUSB供電,測得空載功耗2.2W
python遞歸計算斐波那契數列,功耗3.4W
單線程計算圓周率: 3.4W
多線程計算圓周率:4.5-4.7W,不穩定,也有時候會蹦到4.0
[alarm@alarmpi pimark]$ python test.py ::Testing gcc installed ::>GCC installed ::===Benchmarking C=== ::Compling pi.c.. ::>Complie time:0.5492968559265137 ::>Calc time:106.87575554847717 ::Wait 10 seconds ::===Benchmarking GMP=== ::Compling gmpi.cpp.. ::>Complie time:3.184544086456299 ::>Calc time:26.894031286239624 ::Wait 10 seconds ::===Benchmarking mtGMPi Mutithread=== ::Compling mtgmpi.c.. ::>Complie time:0.5404598712921143 ::Number of Thread: 4 ::>Calc time:96.08412599563599
python遞歸速度有點讓我不相信自己的眼睛了:
[alarm@alarmpi fibn]$ python fib.py 102334155 554.3715827465057
最終對比如下:
單線程滿載,111秒 vs 106秒 3.2瓦 vs 3.4瓦 性能差距5% 樹莓派小勝
多線程滿載,65秒 VS 96秒 4.9瓦 vs 4.6瓦 性能差距47%,Z8300勝
python遞歸計算斐波那契數列: 151秒 vs 554秒 3.9瓦 vs 3.4瓦 性能差距367%,Z8300大勝
另外那個GMP單線程計算圓周率的結果是22秒 vs 26秒,Z8300 勝20%,
這里說明一下:第一個計算pi的程序,是用數組來做大數計算的,純C語言編寫。而后邊倆都是用GMP大數庫來做運算的,可以看作是GMP針對平台各自做一定的優化。
另外,樹莓派的系統是32位系統,而Z8300系統為64位,也可能是有些項目差距過大的原因,后續我會再在樹莓派64位系統做測試,看看是不是這個原因。