总结:
AC算法对无规则匹配数据和有关联匹配数据影响不是很明显。
无论是有匹配还是无关匹配,大概遍历1G文件都需要10s左右。
1G文件中都是0到9的字符。
无匹配操作时,单纯遍历1G文件耗时情况
[root@devvm acsmx]# ./ac 1G.txt ABCDE AAAAA BBBB KKKK EEEE
Total Time: 4.1900 seconds.
有关数据匹配:
相关数据匹配
[root@devvm acsmx]# ./ac 1G.txt 456789
Total Time: 12.7800 seconds.
### Summary ###
456789 : 1081
相关数据,但不匹配数据
[root@devvm acsmx]# ./ac 1G.txt 555*44
Total Time: 9.5400 seconds.
### Summary ###
555*44 : 0
[root@devvm acsmx]# ./ac 1G.txt 555*44 1234*6 456*89 0*1256 86754* 9632*1 0987*2 43298*
Total Time: 10.0400 seconds.
### Summary ###
43298* : 0
0987*2 : 0
9632*1 : 0
86754* : 0
0*1256 : 0
456*89 : 0
1234*6 : 0
555*44 : 0
无关数据匹配:
无关数据匹配(单个字符串)
[root@devvm acsmx]# ./ac 1G.txt ABCDE
Total Time: 9.8600 seconds.
### Summary ###
ABCDE : 0
无关数据匹配(多个字符串)
[root@devvm acsmx]# ./ac 1G.txt ABCDE FGHIGK LMNOPQ RLKUVW XYZZZZ
Total Time: 9.7700 seconds.
### Summary ###
XYZZZZ : 0
RLKUVW : 0
LMNOPQ : 0
FGHIGK : 0
ABCDE : 0
无关且无匹配搜索(多个字符串)
[root@devvm acsmx]# ./ac 1G.txt ABCDE FGHIGK LMNOPQ RLKUVW XYZZZZ AFLRX BGMLUV CHNUZW
Total Time: 9.7200 seconds.
### Summary ###
CHNUZW : 0
BGMLUV : 0
AFLRX : 0
XYZZZZ : 0
RLKUVW : 0
LMNOPQ : 0
FGHIGK : 0
ABCDE : 0
无关且无匹配搜索(多字符)
[root@devvm acsmx]# ./ac 1G.txt ABCDEFGHIGKLMNOPQLMA ASKDFJALSKUOICXJSALFJ AKSDJFLAKSJDFLASFDUOIASDF JASLKMLK CJOQEIWUROJDSDAFJ ASDJFLASUOICLANGLD DJASFKFJASLKFJASLFJAS ALSJDFLKAJSDLUVCOIVJAOV ERALWLKNFELKAND UXICSJOAIJSDOFJA MSAKDFJXCOAMOVDKSAFJ
Total Time: 9.8000 seconds.
无匹配搜索(多字符)
[root@devvm acsmx]# ./ac 1G.txt 6516523436132435134 13546814613249874651 21354645651626598798 26561321346987894564651 54678492323135478913230 3246549874891321320635 465498461023465749 16574613213137746498416132
Total Time: 9.8300 seconds.
不同大小的缓冲区,读取效率对比
对1G文件进行读取速度
当缓存为1024*64B(64K)
[root@devvm acsmx]# ./ac 1G_En1.txt
Total Time: 2.8600 seconds.
当缓存为256B
[root@devvm acsmx]# ./ac 1G_En1.txt
Total Time: 3.2100 seconds.
当缓存为1024*1024*10B(10M)
[root@devvm acsmx]# ./ac 1G_En1.txt
Total Time: 2.9900 seconds.
当缓存为1024*12B(12K)
[root@devvm acsmx]# ./ac 1G_En1.txt
Total Time: 2.8700 seconds.