当前位置: 首页 > wzjs >正文

网站怎么做不违法茂名市住房和城乡建设局网站

网站怎么做不违法,茂名市住房和城乡建设局网站,eclipse网站开发教程,旅游网站开发需求报告C#字符串拼接的6种方式及其性能分析对比 前言BenchmarkDotNet拼接基础数据操作符$内插字符串String.FormatString.ConcatString.JoinStringBuilder性能基准对比测试完整代码少量字符串拼接大量字符串拼接 前言 在C#编程中字符串拼接是一种常见且基础的操作,广泛应用…

C#字符串拼接的6种方式及其性能分析对比

  • 前言
  • BenchmarkDotNet
    • 拼接基础数据
    • +操作符
    • $内插字符串
    • String.Format
    • String.Concat
    • String.Join
    • StringBuilder
    • 性能基准对比测试完整代码
    • 少量字符串拼接
    • 大量字符串拼接

前言

在C#编程中字符串拼接是一种常见且基础的操作,广泛应用于各种场景,如动态生成SQL查询、构建日志信息、格式化用户显示内容等。然而,不同的字符串拼接方式在性能和内存使用上可能存在显著差异。今天咱们一起来看看在C#中字符串拼接的常见6种方式及其使用BenchmarkDotNet进行性能分析对比。

BenchmarkDotNet

BenchmarkDotNet是一个基于.NET开源、功能全面、易于使用的性能基准测试框架,它为.NET开发者提供了强大的性能评估和优化能力。通过自动化测试、多平台支持、高级统计分析和自定义配置等特性,BenchmarkDotNet帮助开发者更好地理解和优化软件系统的性能表现。

拼接基础数据

        private const int IterationCount = 1000;private const string StringPart1 = "追逐时光者";private const string StringPart2 = "DotNetGuide";private const string StringPart3 = "DotNetGuide技术社区";private readonly string[] _stringPartsArray = { "追逐时光者", "DotNetGuide", "DotNetGuide技术社区" };

+操作符

         /// <summary>/// 使用 + 操作符拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string PlusOperator(){string result = StringPart1 + " " + StringPart2 + " " + StringPart3;return result;}

$内插字符串

        /// <summary>/// 使用 $ 内插字符串拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string InterpolatedString(){string result = $"{StringPart1} {StringPart2} {StringPart3}";return result;}

String.Format

        /// <summary>/// 使用string.Format()拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringFormat(){string result = string.Format("{0} {1} {2}", StringPart1, StringPart2, StringPart3);return result;}

String.Concat

        /// <summary>/// 使用string.Concat()拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringConcat(){string result = string.Concat(StringPart1, " ", StringPart2, " ", StringPart3);return result;}

String.Join

        /// <summary>/// 使用string.Join()拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringJoin(){string result = string.Join(" ", _stringPartsArray);return result;}

StringBuilder

  • Append拼接字符串
        /// <summary>/// 使用StringBuilder.Append拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringBuilderAppend(){StringBuilder stringBuilder = new StringBuilder();stringBuilder.Append(StringPart1);stringBuilder.Append(" ");stringBuilder.Append(StringPart2);stringBuilder.Append(" ");stringBuilder.Append(StringPart3);return stringBuilder.ToString();}
  • AppendFormat拼接字符串
        /// <summary>/// 使用StringBuilder.AppendFormat拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringBuilderAppendFormat(){StringBuilder stringBuilder = new StringBuilder();stringBuilder.AppendFormat("{0} {1} {2}", StringPart1, StringPart2, StringPart3);return stringBuilder.ToString();}

性能基准对比测试完整代码

咱们分别以少量字符串拼接和大量字符串拼接为例,进行性能基准对比测试:
说明:

  • Mean: 所有测量值的算术平均值。
  • Error: 99.9% 置信区间的一半。
  • StdDev: 所有测量值的标准差。
  • Gen0: 第 0 代 GC 每 1000 次操作收集一次。
  • Gen1: 第 1 代 GC 每 1000 次操作收集一次。
  • Gen2: 第 2 代 GC 每 1000 次操作收集一次。
  • Allocated: 每次操作分配的内存(仅托管内存,包含所有内容,1KB = 1024B)。
  • 1 ms: 1 毫秒(0.001 秒)。

少量字符串拼接

   using BenchmarkDotNet.Attributes;
using System.Text;namespace BenchmarkDotNetExercise
{[MemoryDiagnoser]//记录内存分配情况public class StringConcatenationBenchmark{private const int IterationCount = 1000;private const string StringPart1 = "追逐时光者";private const string StringPart2 = "DotNetGuide";private const string StringPart3 = "DotNetGuide技术社区";private readonly string[] _stringPartsArray = { "追逐时光者", "DotNetGuide", "DotNetGuide技术社区" };#region 少量字符串拼接/// <summary>/// 使用 + 操作符拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string PlusOperator(){string result = StringPart1 + " " + StringPart2 + " " + StringPart3;return result;}/// <summary>/// 使用 $ 内插字符串拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string InterpolatedString(){string result = $"{StringPart1} {StringPart2} {StringPart3}";return result;}/// <summary>/// 使用string.Format()拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringFormat(){string result = string.Format("{0} {1} {2}", StringPart1, StringPart2, StringPart3);return result;}/// <summary>/// 使用string.Concat()拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringConcat(){string result = string.Concat(StringPart1, " ", StringPart2, " ", StringPart3);return result;}/// <summary>/// 使用string.Join()拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringJoin(){string result = string.Join(" ", _stringPartsArray);return result;}/// <summary>/// 使用StringBuilder.Append拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringBuilderAppend(){StringBuilder stringBuilder = new StringBuilder();stringBuilder.Append(StringPart1);stringBuilder.Append(" ");stringBuilder.Append(StringPart2);stringBuilder.Append(" ");stringBuilder.Append(StringPart3);return stringBuilder.ToString();}/// <summary>/// 使用StringBuilder.AppendFormat拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string StringBuilderAppendFormat(){StringBuilder stringBuilder = new StringBuilder();stringBuilder.AppendFormat("{0} {1} {2}", StringPart1, StringPart2, StringPart3);return stringBuilder.ToString();}#endregion}
}

在这里插入图片描述

大量字符串拼接

   using BenchmarkDotNet.Attributes;
using System.Text;namespace BenchmarkDotNetExercise
{[MemoryDiagnoser]//记录内存分配情况public class StringConcatenationBenchmark{private const int IterationCount = 1000;private const string StringPart1 = "追逐时光者";private const string StringPart2 = "DotNetGuide";private const string StringPart3 = "DotNetGuide技术社区";private readonly string[] _stringPartsArray = { "追逐时光者", "DotNetGuide", "DotNetGuide技术社区" };#region 大量字符串拼接/// <summary>/// 使用 + 操作符拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string BigDataPlusOperator(){string result = string.Empty;for (int i = 0; i < IterationCount; i++){result += StringPart1 + " " + StringPart2 + " " + StringPart3;}return result;}/// <summary>/// 使用StringBuilder.Append拼接字符串/// </summary>/// <returns></returns>[Benchmark]public string BigDataStringBuilderAppend(){StringBuilder stringBuilder = new StringBuilder();for (int i = 0; i < IterationCount; i++){stringBuilder.Append(StringPart1);stringBuilder.Append(" ");stringBuilder.Append(StringPart2);stringBuilder.Append(" ");stringBuilder.Append(StringPart3);}return stringBuilder.ToString();}#endregion}
}

在这里插入图片描述


文章转载自:

http://KTmFLYCi.bpddc.cn
http://kGMQY9zX.bpddc.cn
http://9fvLtigR.bpddc.cn
http://zr0S3BlL.bpddc.cn
http://Triz9r9B.bpddc.cn
http://gnY5dUG8.bpddc.cn
http://PNW7P6cH.bpddc.cn
http://frVobAj9.bpddc.cn
http://5y8fwvDk.bpddc.cn
http://HX90TV2O.bpddc.cn
http://UwCEY7it.bpddc.cn
http://fXSmemmk.bpddc.cn
http://H9TzFAIJ.bpddc.cn
http://A4Jntgts.bpddc.cn
http://LVDxkgWe.bpddc.cn
http://RHXfO4Yk.bpddc.cn
http://65WgooId.bpddc.cn
http://s4X8wyCR.bpddc.cn
http://FISerNjn.bpddc.cn
http://Uk66FE1H.bpddc.cn
http://BlfkLwYf.bpddc.cn
http://kuoQwrqB.bpddc.cn
http://QIh4SRki.bpddc.cn
http://UYlWfXDU.bpddc.cn
http://NKnr402T.bpddc.cn
http://4KRPwJU2.bpddc.cn
http://kpI4Ujfd.bpddc.cn
http://h9GAflKE.bpddc.cn
http://touZMB8V.bpddc.cn
http://8YQ9eV39.bpddc.cn
http://www.dtcms.com/wzjs/632214.html

相关文章:

  • 做招聘的网站有哪些内容福建厦门工程建设中心网站
  • php网站建设自我总结插画师个人网站是怎么做的
  • 北京网站建设模板app制作开发软件
  • 如何建设游戏平台网站上海人力资源招聘官网
  • 嘉兴外贸网站建设免费招聘网哪个平台比较好
  • 网站开发要用什么工具软件百度关键词优化技巧
  • 本网站正在建设中扁平化中文网站模板下载
  • 水墨 网站源码素材网站会员
  • 对比色的网站网站的demo怎么做
  • 某企业网站的设计与实现wordpress底部导航栏修改
  • 扁平风网站微信 网页版
  • 建个可以注册会员网站多少钱wordpress汉字后缀图片不显示
  • 网站部署设计常用网站开发工具有哪些
  • 用cms创建自己带数据库的网站wordpress 上一页下一页
  • 网站制作公司有哪些证深圳实力网站建设
  • 网站ftp文件网站建设英语翻译资料
  • wordpress左边导航栏潍坊seo
  • 广东省住房建设厅网站6wordpress添加模块
  • 河北廊坊做网站域名绑定空间后 一般多久能打开网站
  • 免费建站并且绑定域名装修公司网站 源码
  • 怎么把做的网站发布wordpress多站点教程
  • 广州专业网站开发域名申请到网站上传全过程
  • 百度怎样才能搜到自己的网站教学网站前台模板
  • html网站源代码下载制作旅游景点介绍网页
  • 学做网站需要学什么苏州网站建站推广
  • 济南网站建设运营百度首页精简版
  • 镇江网站设计哪家好昆明网站推广咨询平台
  • 淮北网站开发公司网站管理助手建站教程
  • 网站开发合同范本下载找装修
  • 网站模板框架餐饮业网站建设招标书