zoukankan      html  css  js  c++  java
  • paip.提升性能---string split

    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倍..

  • 相关阅读:
    ifelse选择结构
    Chrome插件开发进阶
    java应用线上一次故障诊断分析
    阻止保存要求重新创建表的更改
    【设计模式系列】行为型模式之Mediator模式
    C#.NET第一阶段课件下载
    Unity Animation.CrossFade Animation.Play
    Unity Resources.Load
    Unity Transform
    VS Ctrl + Shift + Q
  • 原文地址:https://www.cnblogs.com/attilax/p/5964152.html
Copyright © 2011-2022 走看看