• .NET6 字符串内插/string.Format/直接拼接字符串 三种情况下的简单性能测试


    测试代码:

    const int loopNum = 1 * 100000;
    var str1 = "";
    var str2 = "";
    var str3 = "";
    var sw = new System.Diagnostics.Stopwatch();
    
    // 1、ToString() 耗时
    Test(1);
    Console.WriteLine($"ToString():{sw.Elapsed.TotalMilliseconds}");
    sw.Reset();
    
    // 2、字符串内插 耗时
    Test(2);
    Console.WriteLine($"字符串内插:{sw.Elapsed.TotalMilliseconds}");
    sw.Reset();
    
    // 3、Format 耗时
    Test(3);
    Console.WriteLine($"Format:{sw.Elapsed.TotalMilliseconds}");
    sw.Reset();
    
    Console.ReadLine();
    
    // ToString 测试
    void ToStringTest()
    {
        for (var i = 0; i < loopNum; i++)
        {
            str1 = "途谈锈零狭躲玻腹仆斑" + loopNum + "必嘉支冰诵充掉兴桶喜商脑炕渗浓般徐尊绸询";
        }
    }
    
    
    // 字符串内插 测试
    void InsertTest()
    {
        for (var i = 0; i < loopNum; i++)
        {
            str2 = $"途谈锈零狭躲玻腹仆斑{loopNum}必嘉支冰诵充掉兴桶喜商脑炕渗浓般徐尊绸询";
        }
    }
    
    // Format 测试
    void FormatTest()
    {
        for (var i = 0; i < loopNum; i++)
        {
            str3 = string.Format("途谈锈零狭躲玻腹仆斑{0}必嘉支冰诵充掉兴桶喜商脑炕渗浓般徐尊绸询", loopNum);
        }
    }
    
    void Test(int type)
    {
        sw.Start();
    
        switch (type)
        {
            case 1:
                ToStringTest();
                break;
            case 2:
                InsertTest();
                break;
            case 3:
                FormatTest();
                break;
            default:
                break;
        }
    
        sw.Stop();
    }
    View Code
    食用方法:VS2022新建一个控制台项目,将代码丢进去跑就行了

    测试结果

    从测试结果来看,性能排序:字符串内插 > string.Format > 直接拼接字符串
    当然测试结果仅供参考,不同版本的C#可能会有差异
  • 相关阅读:
    window忘记密码怎么办
    VS2015配置Andriod开发环境
    记一次 thread.blocked.count 线程过多的问题排查
    Spring的事务初见
    对mybatis的Handler 从使用角度介绍
    最简单的RPC框架实现
    记一次mybatis bindingexception 问题排查
    Java线程池—ThreadPool简介
    [springMvc] 源码分析笔记(二)
    [tomcat] tomcat简析(一)
  • 原文地址:https://www.cnblogs.com/souphm/p/16400042.html
Copyright © 2020-2023  润新知