MD5演算法效能測試

2021-06-09 15:00:15 字數 1914 閱讀 3001

md5演算法效能測試

本次實驗的主要目的是測試中大量使用md5運算是否對**或者系統帶來效能方面的影響

。根據實驗目的,設計了如下三個場景:

1. 單執行緒下

執行5000次

計算平均時間(分別運算100k;200k;300k;字元)

2. 20個執行緒

共執行5000次

計算平均時間(分別運算100k;200k;300k;字元)

3. 20個執行緒

持續運算3小時壓力測試

計算平均時間和cup占用情況(運算300k字元)

cpuintel(r) core(tm)2 duo cpu e7500 2.93g記憶體

3.0g

本人使用pc(非專用伺服器)

stopwatch sw = new

stopwatch();

arraylist

arry = new

arraylist();

for (int i = 0; i < 5000; i++)

//md5演算法

private

void md5hash(byte bytes)

int maxthread = 20; decimal totle = 0;

console.writeline("

,datetime.now);

stopwatch sw = new

stopwatch();

sw.start();

manualresetevent manualevents =new

manualresetevent[maxthread];

for (int i = 0; i < maxthread;i++)

waithandle.waitall(manualevents);

運算字串大小

執行次數

響應時間(毫秒)

20執行緒

響應時間

100k

5000

0.14ms

0.153ms(20個執行緒)

200k

5000

0.32ms

0.31ms(20個執行緒)

300k

5000

0.54ms

0.471ms(20個執行緒)

具體場景設計如下:

每個執行緒執行次數100000次

執行執行緒數20個

每次執行間隔時間  0.1s

每次運算位元組數

相當於300k大小的網頁

開始時間: 15:07:58 結束時間16:39:46其中程式執行總時長11053.451秒約合 3小時4分

演算法平均運算時間 0.73545毫秒

具體執行結果如下

根據perfmon跟蹤的cpu變化

如下圖

根據上圖可以看出在持續3小時的演算法測試中 cup平均使用率只有5.487%,需要指出的是這個cpu的使用率是整個實驗程式的和windows本身其它內部程式的耗損之和,真正md5演算法只佔其中的一部分,在上述實驗場景的測試中我們發現cpu的使用率長期穩定在8%,說明演算法可能佔據了一部分cpu,但是這個佔用率還是比較小的。

綜上所述

在單獨的演算法測試中md5耗時均小於1毫秒,時間很短,在長達3小時的多執行緒壓力測試情況下,演算法的平均演算法用時0.74ms,cpu佔用率大部分維持在低位狀態8%,但是實際的應用場景運算頻率要遠遠小於上述實驗場景,加之我們只是採用普通的pc機進行的測試,所以在實際應用中md5演算法對伺服器cpu的壓力幾乎可以忽略掉。

md5效率測試

華為雲主機 1c1g docker php7 cli function getelapst targs,count t2 microtime true return t2 t1 1000 1000 elaps1 getelapst str repeat hello 10 1000 echo 字串長度...

MD5演算法 加密

ps 在開發的某些業務中,涉及到一些明文不太安全的時候會用到加密演算法,常用的一般有md5加密 des aes 等加密方式這裡自己了解了一下md5加密。1 md5演算法加密 也就是 資訊 摘要演算法5 就是把乙個任意長度的位元組串變換成一定長的十六進製制數字串 public static strin...

MD5演算法實現

md5.h ifndef md5 h define md5 h typedef struct md5 ctx 非線性輔助函式 define f x,y,z x y x z define g x,y,z x z y z define h x,y,z x y z define i x,y,z y x z...