Java中的StringBuilder性能测试(2)
测试的一个结果如下所示: --------------------------10次bfIndexOf= 94ms10次stringIndexOf= 56ms10次KMPIndexOf= 76ms10次allbuild= 5870ms10次alltoArray= 137ms10*3次,GC= 155ms10次,所有总
测试的一个结果如下所示:
-------------------------- 10次bfIndexOf= 94ms 10次stringIndexOf= 56ms 10次KMPIndexOf= 76ms 10次allbuild= 5870ms 10次alltoArray= 137ms 10*3次,GC= 155ms 10次,所有总计耗时: 6388ms; 损耗:6007ms; 损耗比: 94.03569192235442% -------------------------- 30次bfIndexOf= 365ms 30次stringIndexOf= 222ms 30次KMPIndexOf= 295ms 30次allbuild= 16452ms 30次alltoArray= 395ms 30*3次,GC= 452ms 30次,所有总计耗时: 18184ms; 损耗:16850ms; 损耗比: 92.66388033435987% -------------------------- 50次bfIndexOf;总计耗时: 550ms 50次stringIndexOf;总计耗时: 335ms 50次KMPIndexOf;总计耗时: 450ms 50次allbuild= 26501ms 50次alltoArray= 637ms 50*3次,GC;总计耗时: 734ms 50次,所有总计耗时: 29211ms; 损耗:27142ms; 损耗比: 92.91705179555647% --------------------------
从中可以看出来,使用StringBuilder构造字符串,800万*50次append大约消耗了26秒。换算下来每秒钟是1600万次。。。
看来是需要写一个专门计时的函数,本来Junit是有自己的统计的,但是样本不太好做。
如此看来,数据的准备,也就是测试用例的选取很关键,可能需要先生成并写入到文本文件中。
收藏文章
精彩图集
精彩文章