一:背景 1. 讲故事 前些时间有位朋友找到我,说他们部署在linux上的系统内存占用比较高,领导让他找原因,由于自身的技术上限一直没找到,让我帮忙看下,让朋友通过 dotnet-dump 或者 procdump 从生产上抓一个下来,既然dump到手,那就进入分析环节啦。 二:内存暴涨分析 1. 为 ...
在企业应用开发中,将数据库查询结果导出为 PDF 格式是常见的报表需求。PDF 具备格式固定、跨平台兼容、便于归档分发等特性,非常适合用于业务数据的正式输出。本文介绍一种基于 Free Spire.XLS for .NET 免费库的实现方式,通过「数据库 → DataTable → Excel 工作 ...
一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的电力系统出现了内存暴涨的问题,让我帮忙看下怎么回事?由于不是训练营里的学员,所以这个分析能力还是有点门外汉,让这位朋友将dump丢给我,然后我们上windbg分析。 二:内存暴涨分析 1. 为什么会暴涨 要想知道为什么会涨,很简单,用老套 ...
一、背景与需求 在文档管理场景中,为PDF文件添加页码是一项常见需求。无论是财务报表、项目文档还是合同协议,规范的页码都能显著提升文档的可读性和专业性。手动为每页添加页码不仅效率低下,还容易出错。对于 .NET 开发者而言,利用 C# 实现 PDF 页码的自动化插入,是提升文档处理效率的有效途径。 ...
拒绝 WPF 原生 Canvas 的性能雪崩与缩放形变!本文硬核分享如何基于跨平台高性能图形库 SkiaSharp 独立重构工业级 AI 标注画布核心 SkiImageManager。文章深入拆解了如何利用 SKFilterMode.Nearest 邻近像素采样确保千万级像素裸图在极端放大下的真实判... ...
拒绝 RPC 与 JSON 总线!本文硬核分享如何利用微软最新 CSnakes.Runtime 实现 C# WPF 与进程内嵌入式 Python 的深度互操作。通过指针级 AsSpan2D ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我写了如下代码: public sealed class Route { [ThreadStatic] public static Int64 MaxConc ...
在文档批量处理、内容审计、数据抽取等开发场景中,经常需要从 Word 文档中提取所有超链接信息(包括链接地址、显示文本、链接类型等)。本文基于 Free Spire.Doc for .NET 免费组件,介绍一种轻量、代码量少的实现方式,重点讲解核心逻辑与代码实现,供.NET开发者参考。 一、方案概述 ...
Zenith.NET 最近做了一轮比较大的 RHI 重构。它不是一次普通的 API 改名,也不是单纯整理代码,而是把整个图形抽象层从早期“更容易上手的封装”,往更现代、更贴近 DirectX 12 / Vulkan / Metal 的底层模型推进。 这轮重构的重点,是新版引入了哪些能力、为什么要做 ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 背景 最近在测试一个服务器的时候,遇到一个难题:我如何才能构造出多种请求,以便尽可能的覆盖到所有分支? 写单元测试固然是个办法,但是服务器依赖 mysql 和 ...
前言 众所周知,C#中的mongodb驱动默认是不会序列化和反序列只读属性的。所以当我们存储Protobuf的类型时,如果有属性是RepeatedField和MapField类型,那么该属性并不会被存储到mongodb数据库中。如果要正常存储,则需要自己调用RegisterClassMap方法注册该 ...
说到执行动态脚本,大多使用Lua、Python、JS等语言,为什么没有SQL动态脚本语言呢?现在它来了! AScript是一个开源的C#动态脚本解析执行引擎,支持扩展多种脚本语言,2026年6月8日正式发布了SQL脚本语言AScript.Lang.Sql,快来试试吧! 一、介绍 支持SqlServe ...
AScript是一个开源的C#动态脚本解析执行引擎,脚本中支持定义事件处理。 一、Lambda委托 1 var s = @" 2 var p = new Person('tom', 20); 3 p.Saying += (ss,ee)=>{ 4 (ss as Person).Age+=1; 5 } ...
问题现象 在Windows平台上,通过Win32 API IOCTL_DISK_SET_DISK_ATTRIBUTES 将磁盘设置为只读后,出现了意料之外的行为:磁盘属性面板显示已只读,但NTFS文件系统仍允许写入;或者反过来,磁盘已取消只读,但NTFS仍拒绝写入。这种"磁盘层"与"文件系统层"状态 ...
一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的系统出现了CPU爆高,找不到原因,让我帮忙看一下,dump也拿出来了,接下来上windbg分析。 二:CPU爆高分析 1. 真的爆高吗 dump的分析第一原则就是相信数据,先使用 !tp 观察cpu使用率。 0:031> !tp Usin ...
Transformer的核心瓶颈是注意力O(n²),100万token直接爆显存。MiniMax M3的自研MSA架构,把每token计算量降到原来的1/20——怎么做到的? 传统注意力的致命问题:O(n²) 标准Self-Attention的计算: 对于序列长度n: - 每个Query和所有Key ...
同步调用是微服务耦合的根源。消息队列解耦了服务,也救了你的响应时间。用MonkeyCode,从选型到实现一把梭。 为什么需要消息队列? 一个典型的电商下单流程,同步调用长这样: # 同步调用:创建订单要等所有下游返回 @app.post("/orders") async def create_ord ...
当我告诉别人我正在用 C# 构建一个 **ACID 数据库引擎**时,第一反应总是如出一辙:“那 GC(垃圾回收)停顿怎么办?”
这是一个合情合理的问题。几乎没有人会在 .NET 中构建高性能数据库引擎。人们普遍认为,这类软件必须使用 C、C++ 或 Rust 编写——托管语言基本上被排除在“微秒... ...
MonkeyCode vs Cursor vs Copilot:2026年AI编程工具终局之战 AI编程工具已经卷到下半场了。 2024年,大家还在讨论"AI能不能写代码";2026年,问题变成了"AI编程工具哪家强"。 我同时用了三个月MonkeyCode、Cursor和Copilot,以下是我的 ...
/// <summary> /// PaddleOCRSharp -Version 4.5.0.1 /// </summary> public class NewController : ApiController { private static PaddleOCREngine _ocrEngin ...