本文从 SwitchData 项目的 StringExtensions.cs 出发,用 SearchValues、ReadOnlySpan、string.Create 三件套,把业务代码里常见的字符串清洗、格式验证、字段解析从堆分配改成零分配,实测最高提速 15 倍。
标签: #性能优化
你以为解压一个 ZIP 包只是一行代码?里面藏着 Zip Slip 路径穿越漏洞、GBK/UTF-8 中文乱码、CRC 边界溢出等坑点。本文带你拆解 SwitchData 项目里的 SharpZipHelper:用 ReadOnlySpan.SplitAny 做零字符串分配解析,用 stackalloc + RandomAccess 做零堆分配 ZIP 头校验,用沙箱包含判定彻底堵死 Zip Slip,最后用 ArraySegment 把 CRC32 算得又快又准。看完你也能写一个安全、性能、编码三不误的现代 .NET 压缩工具类。
本文从 SwitchData 项目源码出发,手把手拆解一个约 2000 行代码的手写轻量级 ORM 框架。核心组件包括 Database 抽象基类(Provider 模式 + 模板方法)、MetadataCache 元数据驱动(反射扫描 + 表达式树编译高性能 Getter/Setter)、ObjectMapper 对象映射、SqlDatabase 泛型 CRUD,以及 ParameterCache、SchemaCache、MetadataCache 三级缓存机制。
本文基于 SwitchData 项目中自研的 TelnetClient,深入剖析 .NET 下 Telnet 协议客户端的完整实现:从 Telnet 协议规范(IAC 转义、DO/DONT/WILL/WONT 协商、子协商)、八状态协议解析器,到 Socket 异步读写、SemaphoreSlim 并发保护、Decoder 连续解码缓冲、ReadUntilAsync 条件读取等关键技术点,最后结合华为 ORDP 网关实战讲解生产环境调用方式。
在 SwitchData 项目中,我们对 IEnumerable<T> 做了一系列高质量的扩展方法——IsNullOrEmpty 的四级短路优化、双指针对比算法、.NET 9 CollectionsMarshal 高性能去重。本文逐个拆解这些方法的设计思路和性能考量。
在 SwitchData 项目做 UPF 地址分配时遇到一个经典问题:把任意 IP 段(10.0.0.5 ~ 10.0.0.250 这种不规整的)拆成最少的 CIDR 块。本文用 UInt128 + 位运算写出一套同时支持 IPv4 和 IPv6 的通用解法,核心是 CountTrailingZeros + 贪心算法。
本文从 SwitchData 项目提取 DisplayLoggingMiddleware,讲解如何在 ASP.NET Core 中手写请求日志中间件,实现接口耗时统计、状态码分级日志与异常追踪。通过 Endpoint 元数据读取菜单名称、Stopwatch 精确计时、静态文件过滤等技巧,不到 70 行代码即可构建生产级请求监控能力。
实测对比三种 ADO.NET 批量入库方案:逐行 Insert、Table-Valued Parameter(TVP)、SqlBulkCopy,给出基准性能数据并推荐 SqlBulkCopy 作为百万级数据快速落库的最优方案。
列举 MySQL 中导致索引失效的典型写法:隐式类型转换、最左前缀不匹配、OR 条件未建索引、LIKE %前缀、对索引列使用函数/运算,配合 Explain 分析并给出改写建议。
上一页
2 / 2