.NET
文章平均质量分 54
.NET技术分享
ZZHSourceCode
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用 CollectionsMarshal 优化字典读写速度
用一个**“字典里高频更新某个值”**的场景来举例,这是最容易体现价值的地方。原创 2026-11-04 08:15:00 · 287 阅读 · 0 评论 -
用struct替代class后,内存占用竟然更大了
本文通过性能测试对比class与struct在内存分配上的差异,发现struct因默认采用Sequential布局未进行内存对齐,导致实际占用内存更高。而class使用Auto布局可自动优化对齐,减少填充字节。通过StructLayout(LayoutKind.Auto)显式设置后,struct内存分配显著降低,甚至优于class。结论:结构体并非一定更省内存,合理布局(如Auto)至关重要。原创 2026-10-29 08:15:00 · 477 阅读 · 0 评论 -
项目里一堆if ContainsKey,这不是经典面试题吗
虽然大部分情况下这不会成为性能瓶颈,但是无论性能还是可读性,TryGetValue都比ContainsKey+dic[key]要更好,最近在项目里发现了一堆ContainsKey+dic[key]。但2026年了,这应该成为肌肉记忆了。于是写了一篇性能测试加强一下记忆。原创 2026-09-15 08:00:00 · 179 阅读 · 0 评论 -
Protobuf根据Varint编码优化序列化
本文总结了Protobuf编码优化建议:1)常用字段编号应小于15以减少存储空间;2)负数值应使用sint类型提高编码效率。通过C#代码示例演示了不同字段编号和数据类型对序列化结果的影响:小字段编号生成更紧凑的Tag(如编号1仅需1字节),而负数采用sint类型(如sint32)比int32节省9字节空间。文中还提供了十六进制打印方法用于验证编码结果,并附有Protobuf官方编码文档链接供参考。原创 2026-07-22 08:00:00 · 36 阅读 · 0 评论 -
C# 过滤数据的三种姿势:yield return、LINQ Where、ToList 全景性能对决
C# 过滤数据的三种姿势:yield return、LINQ Where、ToList 全景性能对决原创 2026-07-07 08:15:00 · 215 阅读 · 0 评论 -
No component for supporting the service System.IServiceProvider was found
Castle.MicroKernel.ComponentNotFoundException:“No component for supporting the service System.IServiceProvider was found”问题解决原创 2023-02-15 15:39:53 · 879 阅读 · 0 评论 -
ABP EF CORE 7 集成ShardingCore实现分表
ShardingCore分库分表转载 2022-11-27 11:44:56 · 1281 阅读 · 0 评论 -
ABP .NET6 使用 EF Core 7 ExecuteUpdate实现批量更新并监测生成的SQL
EF7 面向 .NET 6,因此可与 .NET 6 (LTS) 或 .NET 7 一起使用。转载 2022-11-21 21:04:14 · 1938 阅读 · 0 评论 -
.NET Core 2.1下 ONLYOFFICE的回调处理程序
官方文档链接: Callback handler.二级标题三级标题四级标题五级标题六级标题原创 2020-09-02 09:59:47 · 2499 阅读 · 0 评论 -
测试Linq GroupBy DateTime时间3种方式的性能表现
先说结论:按日期分组时,优先考虑用字符串方式对日期分组var result = query.GroupBy( x => x.Time.ToString("yyyy/MM/dd"), (key, models) => new Output { Date = key, Count = models.Count() });目录先说结论:原创 2021-07-01 11:40:09 · 910 阅读 · 0 评论 -
如何使用ABP的Profile类配置AutoMapper自定义映射
一、ABP的Profile有什么用?Profile用来编写AutoMapper的映射规则,在Profile类构造方法中编写的规则最后会配置到AutoMapper中,实现实体到DTO的自动映射。二、代码浅析1.ABP模板中,应用层的Module类有一个Initialize方法,该方法中用反射找到所有继承于Profile的类,并添加到映射配置。public override void Initialize(){ var thisAssembly = typeof(EpiApplicationM原创 2021-09-22 20:28:49 · 1594 阅读 · 0 评论 -
.NET CORE数据库操作超时时间全局配置
.NET CORE数据库操作超时时间全局配置原创 2022-09-13 10:29:49 · 2198 阅读 · 0 评论
分享