zoukankan      html  css  js  c++  java
  • StringBuild,StringFormat," "+" " 三种方法速度测试

    测试方式:

    Stopwatch sw = new Stopwatch();
    sw.Start();
    string tmp = "";
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < 10000; i++)
    {
        //tmp += "|" + i;
        sb.Append("|");
        sb.Append(i.ToString());
        //tmp = string.Format("{0}{1}{2}", tmp, "|", i);
    }
    sw.Stop();
    Console.WriteLine(sb.ToString());
    Console.WriteLine(sw.ElapsedMilliseconds);
    Console.Read();
    View Code

    创建一个1万次for循环,把i的数字相加,并以|分割。

    不同类型组合StringFormat会比+稍快一些。但是组合多了之后反而比+更慢。

    3个参数以内且不同类型或者格式复杂用StringFormat合适。(很长的字符串比"+"更慢)

    大于3个参数,相同类型比较多,用+。

    更加复杂考虑StringBuild

    名称 速度
    StringBuild 2ms
    StringFormat 655ms
    +和StringFormat配合 172ms
    + 181ms

    注:+和StringFormat配合是指:tmp += string.Format("{0}{1}", "|", i);

    string.format太过复杂或者嵌套,会导致性能非常慢。

    前两者与StringBuilder没有可比性,但StringBuilder会造成内存开销。

  • 相关阅读:
    linux 从入门到跑路-目录结构的理解
    linux 从入门到跑路-ls,cp,mkdir命令练习
    linux 从入门到跑路-电源管理
    java 图形界面 Socket编程
    java 图形界面 mvc模式控制
    java 邮件
    java 图形界面
    java 文件的基本操作
    java基础算法题
    java 字符串
  • 原文地址:https://www.cnblogs.com/hont/p/4170516.html
Copyright © 2011-2022 走看看