在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → .NET和Unity的快速C# ULID实现

.NET和Unity的快速C# ULID实现

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.43M
  • 下载次数:0
  • 浏览次数:4
  • 发布时间:2024-05-01
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】

Ulid是为.NET Core和Unity快速C# ULID实现,它是可排序的随机ID生成器。该项目旨在通过最快的二进制序列化器(MessagePack-CSharp)技术实现性能。它比Guid.NewGuid更快地生成。

如何使用

类似于Guid的API。

Ulid.NewUlid()
Ulid.Parse()
Ulid.TryParse()
new Ulid()
.ToString()
.ToByteArray()
.TryWriteBytes()
.TryWriteStringify()
.ToBase64()
.Time
.Random

性能

Guid是标准的corelib guid。Ulid是这个库。NUlid是竞争对手RobThree/NUlid。

New Method Mean Error Ratio Gen 0/1k Op Gen 1/1k Op Gen 2/1k Op Allocated Memory/Op
Guid_ 73.13 ns NA 1.00 - - - -
Ulid_ 65.41 ns NA 0.89 - - - -
NUlid_ 209.89 ns NA 2.87 0.0162 - - 104 B

Ulid.NewUlid()比Guid.NewGuid()更快,且零分配。

Parse Method Mean Error Ratio Gen 0/1k Op Gen 1/1k Op Gen 2/1k Op Allocated Memory/Op
Guid_ 197.98 ns NA 1.00 - - - -
Ulid_ 28.67 ns NA 0.14 - - - -
NUlid_ 161.03 ns NA 0.81 0.0441 - - 280 B

从字符串(Base32)到ulid的解析。


【实例截图】

【核心代码】
文件清单
└── Ulid-80855d95eabadca90ebfe9fbbb2780458b68f0b9
    ├── benchmark
    │   └── PerfBenchmark
    │       ├── BenchmarkConfig.cs
    │       ├── PerfBenchmark.csproj
    │       ├── Program.cs
    │       └── Suite
    │           ├── CompareTo.cs
    │           ├── Equals.cs
    │           ├── GetHashCode.cs
    │           ├── New.cs
    │           ├── NewToString.cs
    │           ├── Parse.cs
    │           └── ToString.cs
    ├── Directory.Build.props
    ├── LICENSE
    ├── README.md
    ├── sandbox
    │   ├── BlazorWasm
    │   │   ├── App.razor
    │   │   ├── BlazorWasm.csproj
    │   │   ├── _Imports.razor
    │   │   ├── Pages
    │   │   │   └── Index.razor
    │   │   ├── Program.cs
    │   │   ├── Shared
    │   │   │   ├── MainLayout.razor
    │   │   │   └── MainLayout.razor.css
    │   │   └── wwwroot
    │   │       ├── css
    │   │       │   ├── app.css
    │   │       │   ├── bootstrap
    │   │       │   │   ├── bootstrap.min.css
    │   │       │   │   └── bootstrap.min.css.map
    │   │       │   └── open-iconic
    │   │       │       ├── font
    │   │       │       │   ├── css
    │   │       │       │   │   └── open-iconic-bootstrap.min.css
    │   │       │       │   └── fonts
    │   │       │       │       ├── open-iconic.eot
    │   │       │       │       ├── open-iconic.otf
    │   │       │       │       ├── open-iconic.svg
    │   │       │       │       ├── open-iconic.ttf
    │   │       │       │       └── open-iconic.woff
    │   │       │       ├── FONT-LICENSE
    │   │       │       ├── ICON-LICENSE
    │   │       │       └── README.md
    │   │       ├── favicon.ico
    │   │       └── index.html
    │   └── TryUlid
    │       ├── Program.cs
    │       └── TryUlid.csproj
    ├── src
    │   ├── Ulid
    │   │   ├── Icon.png
    │   │   ├── RandomProvider.cs
    │   │   ├── release.snk
    │   │   ├── Ulid.cs
    │   │   ├── Ulid.csproj
    │   │   ├── UlidJsonConverter.cs
    │   │   └── UlidTypeConverter.cs
    │   ├── Ulid.Cli
    │   │   ├── Program.cs
    │   │   ├── Ulid.Cli.csproj
    │   │   └── Util.cs
    │   ├── Ulid.MessagePack
    │   │   ├── release.snk
    │   │   ├── Ulid.MessagePack.csproj
    │   │   └── UlidMessagePackFormatter.cs
    │   ├── Ulid.SystemTextJson
    │   │   ├── release.snk
    │   │   └── Ulid.SystemTextJson.csproj
    │   └── Ulid.Unity
    │       ├── Assets
    │       │   ├── Plugins
    │       │   │   ├── System.Buffers.dll
    │       │   │   ├── System.Buffers.dll.meta
    │       │   │   ├── System.Memory.dll
    │       │   │   ├── System.Memory.dll.meta
    │       │   │   ├── System.Runtime.CompilerServices.Unsafe.dll
    │       │   │   └── System.Runtime.CompilerServices.Unsafe.dll.meta
    │       │   ├── Plugins.meta
    │       │   ├── Scenes
    │       │   │   ├── SampleScene.unity
    │       │   │   └── SampleScene.unity.meta
    │       │   ├── Scenes.meta
    │       │   ├── Scripts
    │       │   │   ├── Editor
    │       │   │   │   ├── PackageExporter.cs
    │       │   │   │   └── PackageExporter.cs.meta
    │       │   │   ├── Editor.meta
    │       │   │   ├── Ulid
    │       │   │   │   ├── package.json
    │       │   │   │   ├── package.json.meta
    │       │   │   │   ├── RandomProvider.cs
    │       │   │   │   ├── RandomProvider.cs.meta
    │       │   │   │   ├── Ulid.asmdef
    │       │   │   │   ├── Ulid.asmdef.meta
    │       │   │   │   ├── Ulid.cs
    │       │   │   │   ├── Ulid.cs.meta
    │       │   │   │   ├── UlidTypeConverter.cs
    │       │   │   │   └── UlidTypeConverter.cs.meta
    │       │   │   └── Ulid.meta
    │       │   └── Scripts.meta
    │       ├── ProjectSettings
    │       │   ├── AudioManager.asset
    │       │   ├── ClusterInputManager.asset
    │       │   ├── DynamicsManager.asset
    │       │   ├── EditorBuildSettings.asset
    │       │   ├── EditorSettings.asset
    │       │   ├── GraphicsSettings.asset
    │       │   ├── InputManager.asset
    │       │   ├── NavMeshAreas.asset
    │       │   ├── NetworkManager.asset
    │       │   ├── Physics2DSettings.asset
    │       │   ├── PresetManager.asset
    │       │   ├── ProjectSettings.asset
    │       │   ├── ProjectVersion.txt
    │       │   ├── QualitySettings.asset
    │       │   ├── TagManager.asset
    │       │   ├── TimeManager.asset
    │       │   ├── UnityConnectSettings.asset
    │       │   ├── VFXManager.asset
    │       │   └── XRSettings.asset
    │       ├── Unity.CollabProxy.Editor.csproj
    │       ├── UnityEditor.TestRunner.csproj
    │       ├── UnityEditor.UI.csproj
    │       ├── UnityEngine.TestRunner.csproj
    │       ├── UnityEngine.UI.csproj
    │       ├── Unity.Rider.Editor.csproj
    │       ├── Unity.TextMeshPro.csproj
    │       ├── Unity.TextMeshPro.Editor.csproj
    │       ├── Unity.Timeline.csproj
    │       ├── Unity.Timeline.Editor.csproj
    │       └── Unity.VSCode.Editor.csproj
    ├── tests
    │   ├── Ulid.Cli.Tests
    │   │   ├── TextWriterBridge.cs
    │   │   ├── UlidCliTest.cs
    │   │   └── Ulid.Cli.Tests.csproj
    │   ├── Ulid.MessagePack.Tests
    │   │   ├── UlidMessagePackFormatterTest.cs
    │   │   └── Ulid.MessagePack.Tests.csproj
    │   ├── Ulid.SystemTextJson.Tests
    │   │   ├── UlidJsonConverterTest.cs
    │   │   └── Ulid.SystemTextJson.Tests.csproj
    │   └── Ulid.Tests
    │       ├── UlidTest.cs
    │       ├── Ulid.Tests.csproj
    │       └── UlidTypeConverterTests.cs
    └── Ulid.sln

34 directories, 117 files

标签:

实例下载地址

.NET和Unity的快速C# ULID实现

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警