首页 > 编程语言 >C#代码性能问题

C#代码性能问题

时间:2023-11-06 17:45:18浏览次数:29  
标签:String C# 代码 DateTime 复杂度 字符串 性能

地址:

https://learn.microsoft.com/zh-cn/visualstudio/profiling/performance-insights-concurrentdictionary-count?view=vs-2022

 

1. ConcurrentDictionary 线程安全字典,用于处理多线程

注意去 Count  Keys ToArray Values 均具有性能问题

2.DateTime.Now 成本高昂,因为它使用 TimeZoneInfo.GetIsDaylightSavingsFromUtc() 确定夏令时 (DST)。 请考虑改用 DateTime.UtcNow,而不使用 DateTime.Now

3.枚举转字符串,里面触发了反射,存在性能消耗

4.Contains可能存在 O(n) 复杂度

5.ElementAt可能存在 O(n) 复杂度

6.正则表达式可能存在性能问题

7.字符数组转字符串存在性能问题

8.StartsWith 性能不好

9.String.Concat和加号拼接字符串一样耗性能,建议用String.Builder

标签:String,C#,代码,DateTime,复杂度,字符串,性能
From: https://www.cnblogs.com/sanyejun/p/17813290.html

相关文章

  • BUUCTF_Crypto_WriteUp | Quoted-printable
    题目=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6分析拿到题目的第一反应:好多等号!于是去大佬的编码密码总结帖子里找类似的格式,找到如下:Quoted-printable编码简述:它是多用途互联网邮件扩展(MIME)一种实现方式。有时候我们可以邮件头里面能够看到这样的编码;特......
  • C#中图片与BASE64码互相转换
    //保存目录stringdir="/upload/user/head";//站点文件目录stringfileDir=HttpContext.Current.Server.MapPath("~"+dir);//文件名称stringfileName="headdemo"+DateTime.Now.......
  • Linux虚拟机联网教程(CentOS 7 64位)
    Linux联网第一步确保Linux虚拟机在关闭状态下操作,点击编辑虚拟机设置,然后在硬件条件下查看网络适配器设置,选择NTA模式。如图: 第二步在虚拟机界面下,选择编辑条件下的虚拟网络编辑器。如图: 之后也选择为NAT模式,“将主机虚拟适配器连接到此网络”也勾上。如图: 第三步......
  • C#解析JSON字符串总结
    JSON文件读取到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串。操作JSON通常有以下几种方式:1.原始方式:按照JSON字符串自己来解析。 2.通用方式【★★★★★】:这种方式是使用开源的类库Newtonsoft.Json(下载地址http://json.codeplex.com/)。下载后添加dll引用就......
  • (八)C#编程基础复习——for循环
    在某些情况下,我们可能需要重复执行某些代码,这时就需要用到C#中的循环语句,C#中支持for循环、foreach循环、while循环和dowhile循环等循环语句,使用for循环可以重复一部分代码,而且重复的次数是可以设定的,流程如下:代码示例:for(inti=1;i<=9;i++){Console.Write......
  • 视频集中存储/云存储EasyCVR启动后查询端口是否被占用出错,该如何解决?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • C语言结构体指针
    C语言结构体指针当一个指针变量指向结构体时,称它为结构体指针。C语言结构体指针的定义形式一般为:struct结构体名*变量名;下面是一个定义结构体指针的实例://结构体structstu{char*name;//姓名intnum;//学号intage;//年龄chargroup;//所在小组floatscor......
  • C++中如何返回数组类型数据
    错误示范:int*test01(){ intdata[3]={1,2,3}; returndata;}intmain(){ int*result=test01(); for(inti=0;i<3;i++){ cout<<result[i]<<'\t'; }}正确示范:int*test01(){// intdata[3]={1,2,3}; int*da......
  • Linux下用文件IO的方式操作GPIO(/sys/class/gpio)
    通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction和value等,direction控制GPIO方向,而value可控制GPIO输出或获得GPIO输入。文件IO方式操作GPIO,使用到了4个函数open、close、read......
  • 国产MIPI转eDP方案|低成本替代LT6911方案|CS5523规格书
    ASLCS5523是MIPI DSI输入、DP/eDP输出转换芯片。MIPIDSI最多支持4个通道,每个通道的最大运行速度为1.5Gps。对于DP1.2输出,它由4个数据通道组成,支持1.62Gbps和2.7Gbps的链路速率。支持1.62Gbps和2.7Gbps的链路速率。它支持2560的最高分辨率*1440@60Hz.它只能使用单个1.8V电源,以......