摘要: 优化 上一次实验 代码写的较为随意,本次穷尽所学,优化了一把, 不过果然还是没 比过 Dapper aot, 虽然没使用 Interceptor, 但理论上其优化不该有这么大差距 知识差距不少呀,都看不懂 Dapper aot 利用了什么姿势领先, 有大神们能教教吗? 优化点 减少类型判断 提前 做 阅读全文
posted @ 2024-08-02 10:58 victor.x.qu 阅读(324) 评论(5) 推荐(2)
摘要: 好奇 SourceGenerator 出现开始,好几年了,虽然一直好奇用SourceGenerator 生成代码 与 emit 等动态生成的代码会有多少差距, 但是一直特别懒,不想搞 其实 dapper aot 项目做了类似事情,不过功能特别积极,还引用了实验特性,所以还是想更为简单客观对比 本次乘 阅读全文
posted @ 2024-07-30 17:28 victor.x.qu 阅读(506) 评论(0) 推荐(4)
摘要: ReadOnlySpan<T> 可以说现在高性能操作的重要基石 其原理有兴趣的同学可以看 2018 的介绍Span<T>文章 其为了保障大家安全使用做了相应的限制 那么有没方法绕过呢? 在class中持有 ReadOnlySpan 直接持有是不可能的,本身为 ref struct 就保障了大家写不出 阅读全文
posted @ 2024-02-29 11:55 victor.x.qu 阅读(940) 评论(5) 推荐(4)
摘要: 篇幅较长,所以首先列举结果,也就是我们的目的 核心目的为探索特定场景对不同类型数据进行统一抽象,并达到足够高性能,也就是一份代码实现,对不同类型数据依然高性能 以下为结果,也就是我们的目的: 对1w行 csv 数据的string进行 RFC4180 csv标准进行解析, string 类型 csv 阅读全文
posted @ 2024-02-27 23:03 victor.x.qu 阅读(474) 评论(1) 推荐(5)
摘要: 上一篇 用 HexColor 作为示例,可能过于简单 这里再补充一个 ini 解析的示例 由于实在写不动用其他库解析 ini 了, 春节都要过完了,累了,写不动了, 所以随意找了一份解析ini的库, 仅供参考,对比不准确,毕竟完整库包含了更多功能 先看看结果 BenchmarkDotNet v0.1 阅读全文
posted @ 2024-02-15 17:05 victor.x.qu 阅读(334) 评论(0) 推荐(1)
摘要: 前因 在春节前了解到 Rust语言有一个叫 nom 的解析库 它可以让你创建安全的解析器,而不会占用内存或影响性能。 它依靠 Rust 强大的类型系统和内存安全来生成既正确又高效的解析器,并使用函数,宏和特征来抽象出容易出错的管道。 nom 核心是解析器组合器,而解析器组合器是高阶函数,可以接受多个 阅读全文
posted @ 2024-02-13 21:57 victor.x.qu 阅读(914) 评论(2) 推荐(3)
摘要: Ulid ULID :Universally Unique Lexicographically Sortable Identifier(通用唯一词典分类标识符) c# 实现库 : https://github.com/Cysharp/Ulid ULID特性 ulid() # 01ARZ3NDEKTS 阅读全文
posted @ 2023-11-10 13:12 victor.x.qu 阅读(2978) 评论(2) 推荐(7)
摘要: openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果。它设计的目的不是为了手写代码而是为诸如C、C++和Rust等低级源语言提供一个高效的编译目标。 对于网络平台而言,这具有巨大的意义——这为客户端ap 阅读全文
posted @ 2023-02-14 16:55 victor.x.qu 阅读(492) 评论(0) 推荐(0)
摘要: 如何给openresty打patch 由于很多功能实现的限制,我们不得不修改openresty,但我们又不一定能持续维护一个 openresty 分支,所有有了patch 这一操作。 patch是怎么补“漏洞”的? patch 中文含义为补丁,给大家的感觉就像在原来的基础上修复漏洞,就像小时候旧衣服 阅读全文
posted @ 2023-02-11 11:05 victor.x.qu 阅读(255) 评论(0) 推荐(0)
摘要: 动态插件 之前已经拆解细点逐个介绍了 tcp 、http 代理相关核心点,现在介绍一个让 api gateway 变得很灵活的功能实现: 动态插件。 由于 lua 的动态语言特点,我们可以比较方便做到动态插件机制。 首先我们来了解这一切的基石:lua 模块加载机制。 lua 模块加载机制 一个模块是 阅读全文
posted @ 2023-02-10 10:10 victor.x.qu 阅读(355) 评论(0) 推荐(0)