本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/sbformat.html

StringBuilder的性能优于string.Format,但是需要格式化的东西不多时,性能差距不大。

using UnityEngine;
using System.Collections;
using System.Text; public class Test_sb_Format : MonoBehaviour {
private StringBuilder m_sb = new StringBuilder();
private string m_result = null;
private int m_count = ; void TestSb1() {
StringBuilder sb = new StringBuilder();
for (int i = ; i < m_count; ++i) {
sb.Append("Test_");
sb.Append(i);
m_result = sb.ToString();
}
} void TestSb2() {
for (int i = ; i < m_count; ++i) {
m_sb.Length = ;
m_sb.Append("Test_");
m_sb.Append(i);
m_result = m_sb.ToString();
}
}
void TestFormat() {
for (int i = ; i < m_count; ++i) {
m_result = string.Format("Test_{0}", i);
} } void TestAdd() {
for (int i = ; i < m_count; ++i) {
m_result = "Test_{0}" + i;
}
} void Update () {
Profiler.BeginSample("TestSb1");
TestSb1();
Profiler.EndSample(); Profiler.BeginSample("TestSb2");
TestSb2();
Profiler.EndSample(); Profiler.BeginSample("TestFormat");
TestFormat();
Profiler.EndSample(); Profiler.BeginSample("TestAdd");
TestAdd();
Profiler.EndSample(); }
}

当count=1时,性能对比图:

当count=10时,性能对比图:

当count=100时,性能对比图:

当count=1000时,性能对比图:

综上所述:

StringBuilder的性能优于string.Format,但是需要格式化的东西不多时,性能差距不大。

据一本书上说:string.Format方法内部使用StringBuilder进行字符串的格式化的。

StringBuilder和string.Format性能对比的更多相关文章

  1. 不同Framework下StringBuilder和String的性能对比,及不同Framework性能比(附Demo)

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 环境搭建 测试用例 MSDN说明 ...

  2. String+,StringBuilder,String.format运行效率比较

    实现String字符串相加的方法有很多,常见的有直接相加,StringBuilder.append和String.format,这三者的运行效率是有差异的,String是final类型的,每次相加都会 ...

  3. highcharts 大数据 String+,StringBuilder,String.format运行效率比较

    实现String字符串相加的方法有很多,常见的有直接相加,StringBuilder.append和String.format,这三者的运行效率是有差异的,String是final类型的,每次相加都会 ...

  4. c# 字符串连接使用“+”和string.format格式化两种方式

    参考文章:http://www.liangshunet.com/ca/201303/218815742.htm 字符串之间的连接常用的两种是:“+”连接.string.format格式化连接.Stri ...

  5. StringBuilder.AppendFormat(String, Object, Object) 方法

    将通过处理复合格式字符串(包含零个或零个以上格式项)返回的字符串追加到此实例. 每个格式项都替换为这两个参数中任意一个参数的字符串表示形式. 说明: public StringBuilder Appe ...

  6. java字符串格式化性能对比String.format/StringBuilder/+拼接

    String.format由于每次都有生成一个Formatter对象,因此速度会比较慢,在大数据量需要格式化处理的时候,避免使用String.format进行格式化,相反使用StringUtils.l ...

  7. C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能

    本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文 ...

  8. java String、String.concat和StringBuilder性能对比

    看到网上有人已经做过对比,并且贴出了代码,然后我运行了之后发现跟我分析的结论差距很大.发现他的代码有个问题,UUID.randomUUID() 首次调用耗时会很高,这个耗时被计算给了String,这对 ...

  9. string中Insert与Format效率对比、String与List中Contains与IndexOf的效率对比

    关于string的效率,众所周知的恐怕是“+”和StringBuilder了,这些本文就不在赘述了.关于本文,请先回答以下问题(假设都是基于多次循环反复调用的情况下):1.使用Insert与Forma ...

随机推荐

  1. c# 绘图常用对象和方法

    //BitMap 位图,常用的方法,     Save:主要方式有:(1)保存在图像文件里,可以指定格式[gif,bmp]:(2) 保存在流中,以指定格式[gif,bmp]         //gra ...

  2. 【HDOJ】2451 Simple Addition Expression

    递推,但是要注意细节.题目的意思,就是求s(x) = i+(i+1)+(i+2),i<n.该表达中计算过程中CA恒为0(包括中间值)的情况.根据所求可推得.1-10: 31-100: 3*41- ...

  3. 【模拟】Codeforces 705A Hulk

    题目链接: http://codeforces.com/problemset/problem/705/A 题目大意: 给一个数N(N<=100),N=1时输出"I hate it&qu ...

  4. 【解决办法】糟糕,我的电脑只有IE64位浏览器能上网,其他软件都上不了网

      最近两周在三班四班有5位同学电脑7次出现网络故障,表现为能连上锐捷.DNS正常却不能上网,其中在我自己的计算机上就发生了2次.上网搜集并整理了以下资料,供大家参考.请直接参见[解决办法]. [网上 ...

  5. IOS的 testflight测试设置

    管理员邀请参与者 1.登录开发者账号https://developer.apple.com/account 2.进入后,点击ituns connect 3.点击进入用户和职能 4.在用户栏点击添加按钮 ...

  6. One day

    1.c的格式化输入输出:  printf()和scanf()函数可以较好实现格式化输入输出,例子如下:  printf("%3d",3); //结果为__3 (_为空格)  pri ...

  7. Introduction to Glide, Image Loader Library for Android, recommended by Google

    In the passed Google Developer Summit Thailand, Google introduced us an Image Loader Library for And ...

  8. js~fancybox为我们提供的iframe功能

    对于fancybox我们已经耳熟能详了,一般用来到表单的弹框,提示弹框等,而今天,我们将分页列表也使用fancybox来实现一下,这东西听起来简单,但做起来还真不是那么回事,有事细节需要我们注意的,首 ...

  9. CSS3伪类选择器 图示

         

  10. Android Intent简介

    Intent对象主要用来在Android程序的Activity,Service和BroadcastReceiver这3大组件之间传输数据,而针对这3大组件,有独立的Intent传输机制,分别如下:1. ...