paip.提升性能---string split
大概一万次就能看到慢的兰..
/split 慢的原因。因为使用了正则表达式的,这样,就慢的了..
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
String.split(regex)事实上简单的调用了Pattern.compile(regex).split(this, limit),且每次compile()都会返回一个新Pattern。所以如果频繁调用split的话,最好创建单个Pattern实例并重复使用来取代split()。
因此,如果你调用String.split非常频繁的话,每次都重新编译正则表达式的代价很高,性能会受到很大影响,此时最好自己预编译Pattern,再调用Pattern.split方法为妙。
解决:
1.预编译Pattern
因此,如果你调用String.split非常频繁的话,每次都重新编译正则表达式的代价很高,性能会受到很大影响,此时最好自己预编译Pattern,再调用Pattern.split方法为妙。
String []items=line.split(" ");
//替代为
static Pattern pattern=Pattern.compile(" ");
String []items=pattern.split(line,0);
2.stringtoken
3.自定义分割算法
string tmp=orgSTr;
while(true)
{
string splitstr=null;
int j=tmp.indexof(',');
if(j<0)break;
splitstr=tmp.substring(0,j);
tmp=tmp.substring(j+1);
}
///结果比较:
splite 3600ms,stringtoken 2600ms, indexof 600ms..
性能提升6倍之多阿..
stringbuilder sb=new xx(99999);//预先顶好容量..
时间是默认的1/3..提升3倍..