记一次 .NET 某光电成像后端解析系统 内存暴涨分析
一:背景 1. 讲故事 前些时间有位朋友找到我,说他们部署在linux上的系统内存占用比较高,领导让他找原因,由于自身的技术上限一直没找到,让我帮忙看下,让朋友通过 dotnet-dump 或者 procdump 从生产上抓一个下来,既然dump到手,那就进入分析环节啦。 二:内存暴涨分析 1. 为 ...
业务报表生成:通过 C# 将数据库导出为 PDF
在企业应用开发中,将数据库查询结果导出为 PDF 格式是常见的报表需求。PDF 具备格式固定、跨平台兼容、便于归档分发等特性,非常适合用于业务数据的正式输出。本文介绍一种基于 Free Spire.XLS for .NET 免费库的实现方式,通过「数据库 → DataTable → Excel 工作 ...
记一次 .NET 某电力后台监控系统 内存暴涨分析
一:背景 1. 讲故事 前些天有位朋友在微信上找到我,说他们的电力系统出现了内存暴涨的问题,让我帮忙看下怎么回事?由于不是训练营里的学员,所以这个分析能力还是有点门外汉,让这位朋友将dump丢给我,然后我们上windbg分析。 二:内存暴涨分析 1. 为什么会暴涨 要想知道为什么会涨,很简单,用老套 ...
【.NET并发编程 - 19】性能优化实战:零拷贝与内存优化
19. 性能优化实战:零拷贝与内存优化 本章 GitHub 仓库:csharp-concurrency-cookbook ⭐ 欢迎 Star 和 Fork!所有代码示例都可以在仓库中找到并运行。 本章导读 本文目标:掌握 .NET 高性能编程的核心技术——ValueTask、Span、M ...
【ASP.NET Core】在 Windows Forms 中运行 Web 服务器
当大伙伴们看到标题后,是不是在怀疑老周在灌水?非也,老周向来只会造水,从来不灌水。哪怕写的主题和别人一样,但水的内容也肯定与他人不同。这是老周特色,熟悉老周的大伙伴都知道的。 哦,顺便提一下,有人投诉老周写的东西没用,根本不能在项目中使用。项目中用什么,怎么用是你的项目经验和实力问题,老周可不负这个 ...
C# PDF 页码添加:教你如何快速为 PDF 每页编号
一、背景与需求 在文档管理场景中,为PDF文件添加页码是一项常见需求。无论是财务报表、项目文档还是合同协议,规范的页码都能显著提升文档的可读性和专业性。手动为每页添加页码不仅效率低下,还容易出错。对于 .NET 开发者而言,利用 C# 实现 PDF 页码的自动化插入,是提升文档处理效率的有效途径。 ...
基于.NET的Windows窗体编程之WinForms图像控件
在实际应用开发中,图像是程序不可获取的一部分,合理的利用图像不仅可以点缀美化软件,还可以起到事半功倍的效果,今天我们以一些简单的小例子,简述基于.NET的Windows窗体编程中图像控件的相关应用,仅供学习分享使用,如有不足之处,还请指正。 ...
【.NET并发编程 - 18】限流与并发控制:保护系统的第一道防线
18. 限流与并发控制:保护系统的第一道防线 本章 GitHub 仓库:csharp-concurrency-cookbook ⭐ 欢迎 Star 和 Fork!所有代码示例都可以在仓库中找到并运行。 本章导读 本文目标:深入理解限流算法的工作原理,掌握 ASP.NET Core 限流中 ...
EFCore AsSplitQuery + 非唯一排序 + Take 导致 Include 集合丢失
最近排查了一个很隐蔽的生产 bug:一个 CSV 导出接口,部分订单的 InvoiceAmount(发票金额)导出成了 0,但数据库里这些订单明明有非 0 的付款记录。而且很邪门——带关键字 search 的导出没问题,全量导出才复现。 查到最后,根因是 EF Core 的 拆分查询(AsSplit ...
在 .NET 上构建超大托管数组
.NET 数组的上限 这些年经常看到有人抱怨 .NET 数组的最大长度。 在 .NET 里,数组、集合、Span 以及很多相关 API 都是围绕 32 位长度和索引设计的。GitHub 上曾经有一个很长的 issue 讨论 64 位数组支持,但最后以 "won't fix" 关闭,因为这件事会牵涉到 ...
AI 时代的设备所见即用
本文记录的是我的思考内容,本篇是我从 2023 年思考到现在的内容。我感觉我大概对整个方向清晰了,于是记录了本文,期望能给大家带来一些灵感 ...
实验千问 3.7 Plus 在 VS Copilot 里撰写 XAML 的能力
本文将记录我实验千问 Qwen 3.7 Plus 在 Visual Studio Copilot 里面,根据视觉稿编写 WPF 应用的 XAML 代码的能力 ...
基于.NET的Windows窗体编程之WinForms提示控件
在实际应用开发中,有时候为了美观或者节约UI空间,经常见到有些控件只有图标,没有文字说明,当用户鼠标放在图标控件上时,才显示相应的文本提示(Tips),或者当需要时才显示的一种控件,今天以一些简单的小例子,简述在基于.NET的Windows窗体编程之WinForms中提示控件的常见用法,仅供学习分享... ...
【EF Core】级联删除行为
DeleteBehavior枚举(位于 Microsoft.EntityFrameworkCore 命名空间)所定义的数据删除行为是争对存在相对关系的实体来说的。这个和数据库中表与表之间的关系一致。数据表之间是通过列引用实现的。假设 A 依赖 B,那么 A 中会存在一列或多列去引用 B 中的一列或多 ...
拒绝卡顿与形变!我用 SkiaSharp 实现了千万级像素自适应 AI 标注画布
拒绝 WPF 原生 Canvas 的性能雪崩与缩放形变!本文硬核分享如何基于跨平台高性能图形库 SkiaSharp 独立重构工业级 AI 标注画布核心 SkiImageManager。文章深入拆解了如何利用 SKFilterMode.Nearest 邻近像素采样确保千万级像素裸图在极端放大下的真实判... ...
拒绝 RPC 与 JSON!我用 CSnakes 实现了 C# 与 Python 的零拷贝 AI 推理交互
拒绝 RPC 与 JSON 总线!本文硬核分享如何利用微软最新 CSnakes.Runtime 实现 C# WPF 与进程内嵌入式 Python 的深度互操作。通过指针级 AsSpan2D ...
[C#]踩了一个很没道理的坑:`[ThreadStatic]` + Interlocked.Increment 抛出异常 `System.DataMisalignedException`
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我写了如下代码: public sealed class Route { [ThreadStatic] public static Int64 MaxConc ...
C# 解析 Word 超链接:字段识别、屏幕提示读取
在文档批量处理、内容审计、数据抽取等开发场景中,经常需要从 Word 文档中提取所有超链接信息(包括链接地址、显示文本、链接类型等)。本文基于 Free Spire.Doc for .NET 免费组件,介绍一种轻量、代码量少的实现方式,重点讲解核心逻辑与代码实现,供.NET开发者参考。 一、方案概述 ...
基于.NET的Windows窗体编程之WinForms时间控件
在软件开发中,有时候需要收集日期或者时间等内容,这时通常会用到时间控件,今天我们以一些简单的小例子,简述基于.NET的Windows窗体编程中时间控件,进度条,定时器,BackgroundWorker的相关应用,仅供学习分享使用,如有不足之处,还请指正。 ...
用 OllamaHub 让 Visual Studio Copilot 可以对接任意模型
随着 GitHub Copilot 订阅策略发现变化,再叠加上国产 DeepSeek 大降价与 GLM 5.2 发力。默认 GitHub Copilot 提供的模型已经不香了,也不够用了。本文将和大家介绍如何使用 OllamaHub 对接国内的 DeepSeek 模型。相信看完本文之后,大家也自然地... ...


