摘要: 记录一下最近sv.db的完善 1. 让查询可以使用 json path 有时候我们会存储 json 到 db,也有时会只取json部分数据,或者通过json部分数据进行过滤 所以sv.db 也支持这些场景,(目前只有 db 实现,json的操作都是依靠db json 函数) 举例: 数据 a.Exe 阅读全文
posted @ 2024-10-14 13:07 victor.x.qu 阅读(379) 评论(0) 推荐(0)
摘要: 为什么要写 为什么要写,大概就是沉没成本吧 只是从Source Generators出来开始,就打算以其研究是否能做 aop (现在已经有内置功能了),本来当年就想尝试能否在 orm 做一些尝试,可惜种种原因,自己都忘了这个打算了 直到今年7月份,才又想起了这个打算,现在精力不行了,本来研究一下原理 阅读全文
posted @ 2024-09-28 15:49 victor.x.qu 阅读(830) 评论(6) 推荐(4)
摘要: 探索一下 Enum 优化 SV.Enums主要是探索如何让 enum 更高效 其中涉及的优化手段并非完全自创 很多内容参考于以下项目 NetEscapades.EnumGenerators FastEnum runtime 主要优化手段 其实主要全是 空间换时间,大量缓存 封装入口方法以及 sour 阅读全文
posted @ 2024-08-31 13:45 victor.x.qu 阅读(446) 评论(0) 推荐(2)
摘要: 明明有更好的hash方法 (ps: 添加 XxHash32 测试, XxHash32 大小写敏感) 有位朋友对我吐槽前几天我列举的在源生成器的生成db映射实体的优化点 提前生成部分 hashcode 进行比较 所示代码 public static void GenerateReadTokens(th 阅读全文
posted @ 2024-08-10 22:06 victor.x.qu 阅读(452) 评论(2) 推荐(1)
摘要: 一直有很多转载dotnet对Interceptor说明文档的,但鲜有说明Interceptor如何使用的,这里写一篇简单示例来展示一下 c# 12 实验特性Interceptor 是什么? 官方解释如下(其实简单说就是语言特性中内置的静态编织方式的aop功能,不同于其他il修改代码的方式,使用上得结 阅读全文
posted @ 2024-08-06 22:23 victor.x.qu 阅读(2151) 评论(11) 推荐(10)
摘要: 优化 在上一篇留下的 Dapper AOT 还有什么特别优化点的问题 在仔细阅读生成代码和源码之后,终于得到了答案 个人之前一直以为 Dapper AOT 只用了迭代器去实现,所以理应差不多实现代码却又极大差距,思维陷入了僵局,一度以为有什么黑魔法 结果 Dapper AOT 没有用迭代器去实现!! 阅读全文
posted @ 2024-08-03 14:17 victor.x.qu 阅读(413) 评论(4) 推荐(5)
摘要: 优化 上一次实验 代码写的较为随意,本次穷尽所学,优化了一把, 不过果然还是没 比过 Dapper aot, 虽然没使用 Interceptor, 但理论上其优化不该有这么大差距 知识差距不少呀,都看不懂 Dapper aot 利用了什么姿势领先, 有大神们能教教吗? 优化点 减少类型判断 提前 做 阅读全文
posted @ 2024-08-02 10:58 victor.x.qu 阅读(275) 评论(5) 推荐(2)
摘要: 好奇 SourceGenerator 出现开始,好几年了,虽然一直好奇用SourceGenerator 生成代码 与 emit 等动态生成的代码会有多少差距, 但是一直特别懒,不想搞 其实 dapper aot 项目做了类似事情,不过功能特别积极,还引用了实验特性,所以还是想更为简单客观对比 本次乘 阅读全文
posted @ 2024-07-30 17:28 victor.x.qu 阅读(459) 评论(0) 推荐(4)
摘要: ReadOnlySpan<T> 可以说现在高性能操作的重要基石 其原理有兴趣的同学可以看 2018 的介绍Span<T>文章 其为了保障大家安全使用做了相应的限制 那么有没方法绕过呢? 在class中持有 ReadOnlySpan 直接持有是不可能的,本身为 ref struct 就保障了大家写不出 阅读全文
posted @ 2024-02-29 11:55 victor.x.qu 阅读(830) 评论(5) 推荐(4)
摘要: 篇幅较长,所以首先列举结果,也就是我们的目的 核心目的为探索特定场景对不同类型数据进行统一抽象,并达到足够高性能,也就是一份代码实现,对不同类型数据依然高性能 以下为结果,也就是我们的目的: 对1w行 csv 数据的string进行 RFC4180 csv标准进行解析, string 类型 csv 阅读全文
posted @ 2024-02-27 23:03 victor.x.qu 阅读(424) 评论(1) 推荐(5)