DotTrace系列:9. 大结局之 跨平台 和 自定义行为 诊断
一:背景 1. 讲故事 本篇是系列的最后一篇,我们从跨平台部署和自定义诊断的角度跟大家聊一聊 dottrace,希望对大家有所启发。 二:跨平台和自定义诊断 1. 如何跨平台诊断分析 如果 dottrace 只能在 windows 平台上跑,那确实不值得写一个系列,目前它可以横跨三大平台(Windo ...
基于SharpIco开发图片转ICO工具网站
基于SharpIco开发图片转ICO工具网站 SharpIcoWeb 项目介绍 SharpIcoWeb是基于SharpIco开发的图片转ICO工具网站,支持上传png、jpg等图片转换为多尺寸的Ico图片文件。采用前后端分离技术。 后端接口使用 .NET Minimal API开发,够轻量。 � ...
C#.Net筑基-泛型T & 协变逆变
泛型(Generics)是C#中的一种强大的强类型扩展机制,在申明时用“占位符”类型参数“T”定义一个“模板类型”,比较类似于C++中的模板。泛型在使用时指定具体的T类型,从而方便的封装、复用代码,提高类型的安全性,减少类型转换和装箱。 ...
DotTrace系列:8. 时间诊断之 异步代码 和 Task任务
一:背景 1. 讲故事 现如今的很多代码都是awaitasync+Task的方式,对它们进行性能洞察非常有必要,awaitasync 本质上就是将状态机塞入到 Task 的 m_continuationObject 延续字段上,和 ContinueWith 没有本质区别,这一篇我们就来聊一聊。 二: ...
【EF Core】DbContext是如何识别出实体集合的
在开始之前说明一下,你不要指望阅读完本文后会得到光,就算得到光你也未必能变成迪迦。本文老周仅介绍原理,可以给部分大伙伴们解惑。 咱们都知道,在派生 DbContext 类时,集体类的集合用 DbSet<TEntity> 表示,而咱们最常用的方法是在 DbContext 的派生类中公开 DbSet<T ...
DotTrace系列:7. 诊断 托管和非托管 内存暴涨
一:背景 1. 讲故事 分析托管和非托管内存暴涨,很多人潜意识里都会想到抓dump上windbg分析,但我说可以用dottrace同样分析出来,是不是听起来有点让人惊讶,哈哈,其实很正常,它是另辟蹊径采用底层的ETW机制,即开启 windows 底层日志,所以 dottrace 可以做,官方血统的 ...
GlobalService类
public class GlobalService { private static IServiceScope? _currentScope; private static readonly Lazy<string> _serverAddress = new Lazy<string>(GetSe ...
DotTrace系列:6. 程序异常诊断 和 Request慢处理
一:背景 1. 讲故事 在我分析的众多dump中,有一些CPU爆高是因为高频的抛 Exception 导致,比如下面这张图,有 19 个线程都在抛 xxxResultException 异常。 从卦中虽知大量异常的痕迹,但从严谨的角度来说,最好再卜一卦,就是用 perfview 或者 dottrac ...
芯片测试中由MCU下载程序,测试芯片内接口、FLASH等情况
芯片测试中“由 MCU 下载程序,测试芯片内部接口、FLASH 等情况并反馈结果”通常是在生产测试(ATE)或板级测试(ATE-BIT/BIST)阶段使用的一种自测试(BIST)机制,主要用于验证芯片功能是否合格,特别适用于 射频芯片、SoC、MCU 芯片 等具有 Flash 或外设的器件。 1.整 ...
Syncfusion UI 社区(白嫖)许可申请
简介 Syncfusion 是一个老牌.net组件供应商,旗下有很多基于.net技术栈的企业级UI库,涵盖了当下流行的web PC mobile 等平台的UI控件和报表工具。包括针对PDF word excel、PPT等文档的处理库,功能相当全面。这里放一张他们产品线的截图 最最重要的是,他们的大部 ...
DotTrace系列:4. 诊断窗体程序变卡之原因分析
一:背景 1. 讲故事 写这一篇是因为昨天看 dottrace 官方文档时,在评论区看到了一条不友好的评论,截图如下: 虽然语气上带有些许愤怒,但说实话人家也不是无中生有,作为 dottrace 的忠实粉丝我还是能够理解他的心情的,所以这篇我用最新的 2025.01 版 dottrace 来演示一下 ...
[原创]《C#高级GDI+实战:从零开发一个流程图》第04章:来个圆形,连线它!
一、前言 上一节我们实现了在矩形与矩形之间添加连线,光是矩形太单调了,某些问题也暴露不出来,我们本节就来看一下,如何添加一个圆形,且支持圆形与圆形、圆形与矩形、矩形与矩形间的连线。在这个过程中我们会发现一些问题,这些问题我们后续课程会进行处理,大家也请带着自己的思考和理解去看。 相信看完的你,一定会 ...
C#.Net筑基-优雅LINQ的查询艺术
Linq(Language Integrated Query,集成查询语言),顾名思义就是用来查询数据的一种语言(可以看作是一组功能、框架特性的集合)。在.NETFramework3.5(大概2007年)引入C#,用统一的C#语言快速查询各种数据,如数据库、XML文档、对象集合等等。Linq的诞生对... ...
WPF中如何实现在一个弹窗中一个输入内容的表单,并在父窗口显示
在wpf开发中,你有没有需要用到这样的场景,比如:在父窗口显示表单的输入的内容,然后再进行一些处理逻辑等,表单可以很复杂,也可以很简单,下面我就以示例代码来做一个demo展示。 1.父窗口界面展示如下: <Window x:Class="WPFDemoMVVM.View.UserInputView" ...
芯片测试中的电源管脚接触测试
电源管脚接触测试(Power Pin Contact Test)是芯片量产/测试流程中用于确认芯片电源引脚(如 VDD、VSS、AVDD、DVDD 等)是否与测试治具或探针台良好接触的关键测试环节。 1.为什么要做电源管脚接触测试? 电源管脚如果接触不良,可能导致: 芯片无法正常上电,所有后续测试失 ...
芯片测试中 IO管脚接触测试
芯片中的 IO管脚接触测试(IO Pin Contact Test),是芯片测试流程(ATE:Automatic Test Equipment 流程)中非常关键的早期测试环节,主要用于判断芯片引脚是否正确接触探针/测试座,以避免由于接触不良导致后续测试误判。 1.IO管脚接触测试的目的 确认每个 I ...
芯片中的AUX_ADC 测试
AUX_ADC 测试 方式,属于芯片模拟信号接口在不同电源/功耗状态下的功能验证。 以下是简单介绍: 1.什么是 AUX_ADC? AUX_ADC(Auxiliary Analog-to-Digital Converter) 是芯片内部的辅助 ADC 通道,用于测量: 电压、电流 温度传感器输出 外 ...
推荐一款基于EF-Core的分库分表利器
在实际应用开发中,有些项目可能数据量特别大,在系统应用一段时间后,性能随着数据量的增加会逐步下降,从而造成系统不定时卡顿等现象,在客户使用过程中也会产生不好的印象。在这种情况下,常规操作是增加索引,优化SQL语句等方案,这种常规操作可能会短暂的解决卡顿问题,但是随着数据量持续增多,效果反而越来越不明... ...
Linux服务器搭建RabbitMQ流程
前言 RabbitMQ 是实现了高级消息队列协议(Advanced Message Queuing Protocol,AMQP)的开源消息代理软件。服务器端使用 Erlang 语言编写,支持 Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOM ...
应用服务和领域服务有什么区别?
在微服务架构和领域驱动设计(Domain-Driven Design, DDD)中,应用服务(Application Service) 和 领域服务(Domain Service) 是两种不同类型的组件,它们在职责和使用场景上有明显的区别。理解这两者的区别对于设计和实现高效的微服务架构至关重要。 应 ...