首页 > 其他分享 >net8字符串匹配查找System.Buffers.SearchValues类

net8字符串匹配查找System.Buffers.SearchValues类

时间:2024-01-29 10:12:58浏览次数:20  
标签:SearchValues System 查找 net8 字符串 public Buffers

新增的 System.Buffers.SearchValues类,可以用来进行字符串的查找和匹配,相比较  string  类型的操作,性能有大幅提升,下面还是用 BenchmarkDotNet 进行测试:

BenchmarkRunner.Run<SearchValuesTest>();
Console.ReadKey();
[SimpleJob(RunStrategy.ColdStart, iterationCount: 5)]
public class SearchValuesTest
{
    [Benchmark]
    public void TestString()
    {
        var str = "!@#$%^&*()_1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        for (int i = 0; i < 100000000; i++)
        {
            str.Contains("z");
        }
    }
    [Benchmark]
    public void TestSearchValues()
    {
        var sv = SearchValues.Create("!@#$%^&*()_1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"u8);
        byte b = (byte)"z"[0];
        for (int i = 0; i < 100000000; i++)
        {
            sv.Contains(b);
        }
    }
}

从运行结果看,有大约 5 倍的的提升

 

标签:SearchValues,System,查找,net8,字符串,public,Buffers
From: https://www.cnblogs.com/handsomeziff/p/17993894

相关文章

  • net8 随机数类Random GetItems() 、Shuffle()方法
    1、在8中对随机数类Random提供了GetItems()方法,可以根据指定的数量在提供的一个集合中随机抽取数据项生成一个新的集合:ReadOnlySpan<string>colors=new[]{"Red","Green","Blue","Black"};string[]t1=Random.Shared.GetItems(colors,10);Console.WriteLine(......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......
  • windowForm程序的webView2错误 System.IO.FileNotFoundException: 系统找不到指定的文
    最近开发公司的一个项目,要求打包在windows中执行的exe可执行文件开始我想到的是使用windowsForm里面webView嵌套网页执行,vs自带提供的WebBrowser的内核是ie7的,兼容性确实不好,后面使用Microsoft.Web.WebView2(通过NuGet安装)兼容性问题解决了。在我的电脑上可以完整的运行,但是在同......
  • CSharp: UglyToad.PdfPig int .net8
     /*IDE:VS202217.5OS:windows10.net:8.0生成PDF文档,从PDF文档中获取文字内容控制台下测试*///Seehttps://aka.ms/new-console-templateformoreinformationusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Xml.L......
  • Starrocks扩展FileSystem代码分析
    Starrocks扩展FileSystem代码分析Starrocks支持使用FILES()算子对接文件系统例如可以使用insertintofiles("path"="hdfs://xxx.xx.xxx.xx:9000/unload/data1","format"="parquet","compression"="lz4")select*fromsales_reco......
  • linux系统开机systemctl自动启动项目服务
    前言作为一名开发人员,都会懂一些服务器相关知识。对于项目部署时,自动启动应该是最基本的,之前都是使用inid来进行开机服务。而今systemctl服务逐渐取代前者。本篇简单记录一下systemctl服务的一些配置以及命令。一、关于systemctl命令下面以nginx服务为例systemctlenab......
  • runc网络与systemd管理runc应用
    1.创建网络命名空间ipnetnsadd<ns>#ns是自定义网络空间名#例如:ipnetnsaddhaproxy#创建一个给haproxy使用的网络命名空间#新增一个网络空间会在/var/run/netns/目录下生成和网络空间同名的文件2.创建虚拟网络设备对iplinkadd<vname1>typevethpeer......
  • IPC-System V-进程间通信概念
    基础概念IPC函数接口IPC对象删除和可持久性信号量SystemV的信号量集表示的是一个或多个信号量的集合。内核为每个信号量集维护一个semid_ds数据结构,而信号量集中的每个信号量使用一个无名结构体表示。信号量比较特殊,首先它是个计数器,主要提供对进程间共享资源......
  • fail: Microsoft.Extensions.Hosting.Internal.Host[11] Hosting failed to sta
    docker发布.net8项目#使用.NET运行时镜像作为最终镜像FROMmcr.microsoft.com/dotnet/runtime:8.0#设置工作目录WORKDIR/app#复制项目文件到工作目录COPY./appENVASPNETCORE_URLS="http://*:8003"ENVASPNETCORE_HTTP_PORTS=""#设置入口点ENTRYPOINT["dotn......
  • Operation system note
    KeywordsContextSwitchTime  bigparts: CommunicationbetweenaDeviceandtheCPU •MethodOne:PollingorHand-shaking•MethodTwo:Interrupts•MethodThree:DMA–DirectMemoryAccess  MemoryManagementAmemorymanagementunitorMMU......