自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 ASP.NET页面优化,性能提升8倍的方法

CSS/JS/图片的加载延迟一个典型的 ASP.NET 页面请求流程包括:路由匹配 → 控制器实例化 → 模型绑定 → 执行 Action → 视图渲染 → 响应输出。### 1. 基础篇:理解性能瓶颈首先,我们要明白 ASP.NET 页面性能瓶颈通常出现在三个层面:-### 4. 高级优化:输出缓存与响应缓存ASP.NET Core 7+ 提供了更强大的输出缓存中间件。:实时性能计数器### 9. 总结通过以上优化,通常可以将 ASP.NET 页面性能提升 5-8 倍。:频繁的数据库往返和低效查询-

2026-08-05 16:24:08 254

原创 WCF Web API 说再见,继承者ASP.NET Web API

在 .NET 生态的演进史中,WCF(Windows Communication Foundation)曾是分布式通信的"老大哥",而 WCF Web API(即 WCF 中的 HTTP/REST 支持)则试图让 WCF 拥抱 Web 风格。,作为 WCF Web API 的"继任者",它轻量、灵活,完全拥抱 HTTP 的 REST 理念。举个例子,用 WCF Web API 写一个返回 JSON 的接口,你需要:- 定义服务接口和实现类- 在。配置(如绑定、行为)全部删除,Web API 只需在。

2026-08-05 16:23:06 217

原创 Async和Await异步编程的原理

async状态机。

2026-08-03 15:32:20 237

原创 关于bug分析与异常处理的一些思考

是具体的业务异常,调用方可以根据不同的异常类型做出不同的响应。优秀的异常处理是代码质量的试金石,它反映了你对业务逻辑的理解深度、对系统健壮性的追求、对代码可维护性的重视。从今天开始,试着改变你对异常的看法:不要把它们当作"麻烦",而是把它们当作系统给你的反馈信号。记住,最好的异常处理是"看似没有处理,实则处处都在处理"——因为好的设计让异常几乎不会发生,而一旦发生,系统也能优雅地降级或恢复。### 从"崩溃"开始:异常的本质当程序运行出现异常时,本质上是在告诉你:“我遇到了无法继续执行的情况”。

2026-08-03 15:30:04 187

原创 让 FastAPI Agent 思考不阻塞:手把手教你实现异步任务与后台处理方案

## 五、性能对比与选型建议| 方案 | 适用场景 | 并发能力 | 复杂度 ||------|----------|----------|--------|| 纯异步 + to_thread | 毫秒级同步阻塞,低并发 | 中(受线程池限制) | 低 || BackgroundTasks + 内存队列 | 秒级任务,单机部署 | 高(异步 I/O) | 中 || Celery 分布式 | 分钟级任务,需要可靠性与扩展性 | 极高(可水平扩展) | 高 |阻塞,请求只能串行执行,总耗时约 30 秒。

2026-07-31 18:39:29 220

原创 transformer进阶之路:#4 attention从如何「工作」到「为何」如此高效

## 一、Attention的“工作”日常:一场三幕剧想象一下,你面前有一堆词(“猫”、“坐”、“垫子”),你想让模型理解“猫”和“垫子”的关系。Attention权重本身就是一张“关系表”,你能直观看到模型在关注什么(比如翻译时,源语言的“猫”和目标语言的“cat”权重很高)。比如“我昨天在公园看到的那只黑猫,它今天又来了”,模型里的“它”可以一步直接关联到“黑猫”,中间隔了十几个词也无所谓。结果就是,模型把“猫”的信息(黑色)和“垫子”的信息(软的)按比例混在一起,得到了一个融合了上下文的向量。

2026-07-31 18:37:01 210

原创 完整学习LLM(四):Token是什么

作为连接人类语言和机器理解的桥梁,Token是LLM处理文本的最小单位,理解它对于掌握LLM的工作原理至关重要。比如,句子"Hello World"可能被拆分成[“Hello”, “World”]两个Token,或者[“Hel”, “lo”, “World”]三个Token,具体取决于分词算法。Token化的过程就是将原始文本转换成Token序列,这是LLM处理输入文本的第一步。:LLM有固定的上下文窗口(如GPT-3.5的4096个Token),Token化直接影响你能输入的文本长度。

2026-07-30 17:48:33 164

原创 【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (1)---基础

ClawSimEnv环境接口。

2026-07-30 17:47:24 228

原创 从零构建车载语音对话系统:NLU → DST → Policy → NLG → TTS 全链路工程实践

pyttsx3NLU(自然语言理解)

2026-07-28 18:50:21 148

原创 kestrel 的 ssl 行为分析

TLS 配置UseHttps。

2026-07-28 18:49:04 170

原创 高光谱拼接算法(五)SIFT 的变体与发展

光谱角距离梯度域 SIFT。

2026-07-27 18:07:47 242

原创 AI 研发共生架构:别再问 AI 会不会替代程序员啦!

这种模式下,程序员不再是“代码打字员”,而是“架构设计师”和“质量把关人”。—## 共生架构中的角色分工| 角色 | AI 负责 | 程序员负责 ||------|----------|------------||所以,别再问“AI 会不会替代我”,而是问:“我该如何与 AI 共生,让自己变得更强大?学会给 AI 写“好 prompt”(清晰、结构化、有上下文),就像带一个实习生——你教得越清楚,它干得越好。| 生成模板代码、工具函数、测试用例 | 定义需求、审查代码质量 ||: - AI 自动生成了。

2026-07-27 18:05:14 190

原创 你为什么不分享

在编程的世界里,有一个常见却令人困惑的现象:很多开发者积累了宝贵的知识和经验,却选择不与他人分享。但今天,我想从技术的角度,用代码和逻辑来探讨这个问题,并展示分享的价值——从一个简单的例子开始,逐步深入到更复杂的场景。假设你写了一个简单的函数,用来计算两个数的和。## 总结:分享是一种投资回到标题“你为什么不分享”,通过以上代码示例,我们可以看到:分享不是展示完美,而是。所以,下次当你写了一段有趣的代码时,不妨打开博客、GitHub 或技术社区,勇敢地说:“这是我写的东西,它可能不完美,但希望能帮到你。

2026-07-26 16:57:44 225

原创 .NET基础拾遗(5)多线程开发基础

Thread。

2026-07-26 16:56:41 194

原创 十年技术进阶路,让我明白了三件要事(8000字长文)

深入原理pay深入理解原理。

2026-07-25 17:56:05 202

原创 重新理解微服务之终究绕不过这4个坎?(观点探讨)

日志聚合:将分散在各节点的日志集中存储- 指标监控:实时监控CPU、内存、QPS等- 链路追踪:记录请求经过的每个服务及耗时## 总结微服务架构的四个核心挑战——网络不可靠、数据一致性、服务治理、可观测性——并非技术缺陷,而是分布式系统固有的复杂性。但在实际中,我们需要处理:- 部分失败:服务A更新成功,服务B更新失败- 补偿操作:失败后需要回滚已成功的操作- 数据冲突:并发操作导致数据不一致### 代码示例:Saga模式实现以下是一个基于Python的Saga模式示例,模拟订单创建时扣减库存和支付。

2026-07-25 17:54:42 152

原创 里程碑式更新!Dash 4.2新版本新增websocket型回调

2026-07-24 19:47:03 163

原创 告别 oh-my-openagent 版本地狱:一套纯 OpenCode 配置实现 Agent 软路由

动态加载器。

2026-07-24 19:44:13 260

原创 折腾了两周ETL工具,说点实在的

踩的坑不少,收获也颇多。但实际项目中,数据源的多样性(SQL、NoSQL、API、文件)、数据量的波动、增量更新的复杂性,让工具选择变得困难。商业工具如Fivetran、Stitch虽然好用但贵,开源工具如NiFi、Airbyte配置复杂,而手写脚本又容易变成“面条代码”。## 实战二:用Airbyte做批量数据同步Airbyte是一个开源的数据集成平台,专为ELT(提取-加载-转换)设计。我最终选择Airbyte + 自定义脚本的组合,因为Airbyte提供UI和连接器,自定义脚本处理边缘情况。

2026-07-23 17:35:39 204

原创 消息中间件进阶:RocketMQ 消息的消费(三)

你好,我是你们的技术博主。在前两篇文章中,我们聊了 RocketMQ 的消息生产和消息存储,今天终于轮到「消费」环节了。消息消费是消息中间件中最贴近业务的部分,也是最容易踩坑的地方。## 5. 总结今天我们覆盖了 RocketMQ 消息消费的核心知识点:- 集群消费和广播消费的区别:集群消费适合负载均衡,广播消费适合全局通知。自动提交意味着消息消费成功后会立即提交偏移量,但如果不提交,RocketMQ 会在下次拉取时重新消费。你可以在控制台查看死信消息,或者写一个专门的消费者来消费死信消息,进行人工处理。

2026-07-23 17:34:27 166

原创 不要把异常当做业务逻辑,这性能可能你无法承受

用Try系列方法没毛病,但这写法让人吐槽,还要单独定义result变量,没撤,官方还得靠我们这些开发者给他们发扬光大😄😄😄,终于在C# 7.0 中新增了一个 out variables 语法糖。这种 out 变量 模式就🐮👃了,一个方法获取两个值,还没有抛异常的风险。二:为什么要用tryxxx方法有了tryxxx方法之后,你就应该明白微软已经在提醒我们开发人员不要滥用异常,尤其在可预知可预见的场景下,毕竟他们知道异常的开销真的是太大了,不知者不怪哈。肉眼看得见的低性能。

2026-07-22 16:16:52 179

原创 解Bug之路-Nginx 502 Bad Gateway

同时将tcp_max_tw_bucket调小,tcp_max_tw_bucket是kernel中最多存在的TIME_WAIT数量,只要port范围 - tcp_max_tw_bucket大于一定的值,那么就始终有port端口可用,这样就可以避免再次到调大临界值得时候继续击穿临界点。在accesslog里面发现了大量的502报错,确实是Nginx的。那么,就先看看Gateway2的负载情况把,查了下监控,发现Gateway2在4核8G的机器上只用了一个核,完全看不出来有瓶颈的样子,难道是IO有问题?

2026-07-22 16:16:02 233

原创 Vibe Coding 氛围编程新解

正因如此,业内开始推行一种新的 AI 开发模式,规范驱动开发(Spec Driven Development),该模式强制要求必须“先规划、再动手”,在编写任何代码之前,由人和 AI 共同生成一份结构化、可测试、可被 AI 理解和执行的规范文档,让它成为双方共同的“单一事实来源”,再据此驱动 AI 生成代码。卡帕西本人也说,它“不太算是真正意义上的编程”,而是看、说、跑、粘贴四个动作的循环(see / say / run / copy-paste),“大体上能跑就行”。(2)自然语言/语音为主的交互。

2026-07-21 15:36:02 181

原创 最近我一直在改 kes-cli,目标不是再做一个传统命令行工具,而是把它做成一个终端聊天助手。原因也很简单,数据库排查这件事本来就不是一条命令能解决的。

如果按一条完整链路来看,这个终端工具本身就是 AI 客户端和数据库开发入口:先把模型和 KES MCP Server 配好,再确认数据库能连、工具能加载,然后用自然语言完成结构查询、只读查询、SQL 分析、运维诊断,最后把排查证据导出来。比如我输入“看下我都有哪些表”“查一下 orders 前 5 条”“这个 SQL 为什么慢”“帮我看看数据库健康吗”,它能自己判断我要做什么,再通过 KES MCP Server 去拿真实结果,最后把结果整理出来。数据库工具最怕的是看起来很智能,实际上很危险。

2026-07-21 15:35:18 171

原创 SIFT 特征点检测

因此,在 Harris 诞生后的十几年里,计算机视觉领域一直在寻找一种更好的局部特征,于是,而 1999 年 Lowe 提出了 SIFT(Scale-Invariant Feature Transform)。当我们把图像放大,原来 7×7 窗口里的细节就变了:一个角点在原图里看是角点,放大后可能变成了平滑的边缘,或者变成了更复杂的纹理。实际上,这种思路确实存在,例如后来的 Harris-Laplace ,就是在多尺度下运行 Harris 检测器,但其更像是一种“遍历”,并没有较根本地解决尺度不变性问题。

2026-07-19 17:32:38 186

原创 请求提供动态参数后,将会直接覆盖应用配置中的状态值。

当有工具调用时,在消息中的[“extra”][“step”]字段中,会显示“tool_calling_xx”,显示正在调用的工具是什么。“step_change”: “tool_call_start”, “step”: “tool_calling_search”,“step_info”: “开始调用联网检索工具”“step_change”: “tool_calling”, “step”: “tool_calling_search”,“step_info”: “正在调用联网检索工具”

2026-07-19 17:31:59 160

原创 NET CORE 动态扩展Options-配置运行时热更新

原生 Options 没给我们这个开关,因为IOptions.Value 第一次访问就定死了,我们需要的不是重启程序,而是在一次请求里,根据当前租户从数据库拿到它对应的配置值,把已经缓存好的 Options 对象覆盖掉,然后让请求里所有的服务使用到的配置全部更新。其实他是依靠实例注入容器的生命周期来实现的,如果注入为单例,那么这个对象上的字段也会一直存在,如果是作用域那么没一次请求就会重新更新,如果你明白了,那恭喜你你对实例缓存和静态缓存有了更进一步的认识。注意是原对象修改,不是new一个新的对象。

2026-07-18 16:04:37 196

原创 语义层要从业务概念出发

企业业务会变,组织会变,指标会变,口径也会变。企业 AI 要服务业务,就不能只懂表名、字段名,还要懂“销售额”“有效客户”“区域归属”“统计周期”这些业务语义。笔者理解,语义层的价值不只是“翻译自然语言”,更重要的是把企业长期积累但分散存在的业务知识编码下来。这一层面向 AI 使用,把可调用、可约束、可检查的语义能力整理出来,让 AI 在企业规则内工作。这一层把业务概念、指标口径、维度规则沉淀下来,让数据不只是字段,而是能被业务理解的对象。这一层对应真实的数据表、字段、库表关系,是企业数据的物理基础。

2026-07-18 16:03:36 294

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除