首页 > 其他分享 >字符串优化

字符串优化

时间:2023-12-21 22:11:43浏览次数:37  
标签:缓存 string C# data strName 字符串 优化

在C#中,string是引用类型,每次动态创建一个string,c#都会在堆内存中分配一个内存用于存放字符串(包括字符串拼接、字符串分割等)。

解决方法有两种:

1.自建缓存机制,可以用一些标志性的Key值来一一对应字符串,比如游戏项目中常用ID来构造某个字符串,伪代码如下:

ResData data = GetDataById(Id);

string strName = "xxxx" + data.Name;

  可以用字典将strName缓存起来,用id当key,尝试复用。

2.用C#的一些“不安全”的native方法,也就是直接使用指针来改变string中字符串的值,这样就可以重复利用string,而不需要重新分配内存。

实现:将不用的字符串用长度当key缓存起来,要申请新的字符串的时候尝试从缓存里拿并通过指针将字符数组(字符串本质上还是字符数组)改成需要的值。

标签:缓存,string,C#,data,strName,字符串,优化
From: https://www.cnblogs.com/mcyushao/p/17920237.html

相关文章

  • 武汉星起航:卖家优化五点描述,凸显商品优势与保障
    随着电商市场的日益繁荣,卖家们对于商品描述的优化也变得越来越重视。近日,一位卖家通过五点描述的优化,成功凸显了商品优势和保障,吸引了大量买家。该卖家在优化五点描述时,首先从好评分析入手。他们仔细分析了买家对商品的评论反馈,发现许多买家对商品的某些特点表示满意。于是,卖家将这......
  • Leetcode 2507. 使用质因数之和替换后可以取到的最小值 优化前 优化后
    https://leetcode.cn/problems/smallest-value-after-replacing-with-sum-of-prime-factors/description/给你一个正整数n。请你将n的值替换为n的质因数之和,重复这一过程。注意,如果n能够被某个质因数多次整除,则在求和时,应当包含这个质因数同样次数。返回n可以取到......
  • 字符串
    字符串字符串匹配问题在字符串s中查找某个字符串p是否出现朴素做法枚举s中每个长度为m的子串,然后判断这些子串和p一不一样怎么判断一不一样?一位一位比较,这时总的复杂度为\(O(nm)\)字符串哈希优化,使用哈希可以做到\(O(n+m)\)的时间复杂度KMP用线性复杂度解决字符串匹配问......
  • Redis“垃圾”过期死键管理与优化
    【作者】付磊Redis死键的定义不尽相同,通常有两种:写到Redis里后,由于过期时间过长或者压根没有过期时间,加之长期不访问,这类key可以被称为死键。明明已经过了过期时间,但还占用Redis内存(没有真的删除),这类key也可以被称为死键。注:本文讨论第二种情况一、两个例子下面两个列子中的键值均......
  • java中字符串的比较以及string 方法图解
    最近在项目中经常要用到字符串的比较,因此做了一个简略的总结,希望对大家有所帮助!!!!!!!!!!!!!!!1总体来说java中字符串的比较是比较引用,equals比较值的做法。(equals对于其他引用类型比较的是地址,这是因为object的equals方法比较的是引用),但是不同的声明方法字符串的比较结果也是不同的。例如:S......
  • 字符串转浮点型应用
    一、   工业应用中的问题1、     国内自定义协议众多,数值在计算机中存储方式五花八门。2、     计算机实际存储方式理解不容易或者忘记。3、     硬件技术发展,让使用存储内存不再是难解决问题,浪费存储内存和传输带宽。二、   计算机中浮点型简介1......
  • day 03-2 Python基础-字符串格式化
    2.字符串格式化字符串格式化,使用跟便捷的形式实现字符串的拼接。%format(推荐)f2.1%2.1.1基本格式化操作#%s是占位符,也成为字符串占位符#后面空格加%text="我叫%s,今年18岁"%"linzai"#:%前面加上一个空格print(text)name="linzai"text="我叫%s,今年18岁"......
  • 带逗号的字符串组装成List集合
    privateList<FileUrlDto>buildFileUrlMethod(StringfileUrl,StringfileName){List<String>files=newArrayList<>();List<String>fileNames=newArrayList<>();List<FileUrlDto>fileUrlDtoList=newArrayList&l......
  • C++ Qt开发:StringListModel字符串列表映射组件
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QStringListModel字符串映射组件的常用方法及灵活运用。QStringListModel是Qt中用于处理字符......
  • Python 把包含\\u4f20\\u5a92 unicode内容的字典字符串变成字典
    importjson#把包含\\u4f20\\u5a92unicode内容的字典字符串变成字典deftext_to_dict(text):dict1=json.loads(text)str_dict=str(dict1).replace('\\xa0','').replace('\'','"')dict_json=json.loads(s......