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

  • 相关阅读:
    架构、框架、组件、插件浅谈理解
    JAVA : 关于高内聚与低耦合
    windows 使用VMWARE 安装mac os
    JAVA 多线程(6):等待、通知 (1)
    JAVA 多线程(5)
    Django 笔记(六)mysql增删改查
    CSS选择器
    ubuntu 安装配置 mysql
    Django 笔记(五)自定义标签 ~ 映射mysql
    Django 笔记(四)模板标签 ~ 自定义过滤器
  • 原文地址:https://www.cnblogs.com/attilax/p/5964152.html
Copyright © 2020-2023  润新知