.NET6中的await原理浅析

  在.NET 6中,异步编程已经成为了一种常见的编程模式,特别是在处理I/O操作、网络请求或需要长时间运行的计算任务时。await关键字在异步编程中扮演了核心角色,它使得异步代码的编写变得更为直观和易于理解。本文将深入探讨.NET 6中await的工作原理,并...

#
Donet
#
DoNet
分享:

.NET Core中灵活使用反射的技术实践

  在.NET Core开发中,反射(Reflection)是一种强大的技术,它允许程序在运行时检查类型信息、动态创建和调用类型成员等。反射提供了程序在运行时自我检查和修改的能力,从而增强了程序的灵活性和可扩展性。本文将介绍如何在.NET Core中灵活使用反射技术...

#
Donet
#
DoNet
分享:

聊聊 .NET9 FCall/QCall 调用约定

  前言  FCall/Qcall是托管与非托管之间的调用约定,双方需要一个契约,以弥合彼此的互相/单向调用。  非托管调用约定  先了解下非托管约定,一般有四种,分别为thiscall,stdcall ,cdecl ,fastcall   thiscall:用特定的寄存器传递当前类...

分享:

你知道.NET中的数组在内存中如何布局的吗?

  .NET中的数组在内存中布局是一个复杂的主题,涉及到内存管理、数据结构和性能优化等方面。本文将详细描述.NET中的数组内存布局,包括数组的组织方式、多维数组、数组的物理布局、性能优化以及与值类型和引用类型的关系。  数组的组织方式  在.NET中...

#
Donet
#
DoNet
分享:

.NET8强加密工具有哪些?你知道吗?

  前言  .NET程序由于众所周知的原因,因为它是一个托管中间语言代码,也即是MSIL,天然性的易于被破解。即使是现在的AOT技术,因为通过一个C++的引导程序BootStrap(.Net8的AOT引导程序BootStrap)引导,所以其逆向难度依然是容易级的。了解其加密原理,...

#
Donet
#
DoNet
分享:

.NET Core中生成二维码和识别二维码内容方法

  在.NET Core中生成二维码和识别二维码内容,可以使用ZXing.NET库。ZXing.NET是一个开源的二维码处理库,可以方便地生成和解码二维码。下面是一个示例,演示如何在.NET Core中生成二维码和识别二维码内容。  首先,我们需要在.NET Core项目中添加ZXin...

#
Donet
#
DoNet
分享:

.Net8顶级性能优化:类型转换(图)

  1.前言  .Net8通过各种骚操,把性能提升到了前所未有的高度。超越以往任何版本,也涵盖了后续版本,比如.NET9或许可能没有如此大的性能优化了。本篇来看下它其中的一个优化:类型转换的优化效果。  2.示例  通过类型检查的优化,优化掉某些情况下...

#
Donet
#
DoNet
分享:

记一次 .NET 某工厂无人车调度系统,线程爆高分析(图)

  一:背景  1. 讲故事  前些天有位朋友找到我,说他程序中的线程数爆高,让我帮忙看下怎么回事,这种线程数爆高的情况找问题相对比较容易,就让朋友丢一个dump给我,看看便知。  二:为什么会爆高  1. 查看托管线程  别人说的话不一定是真,得...

#
Donet
#
DoNet
分享:

.NET Core使用SkiaSharp快速生成二维码(图)

  前言  在.NET 6之前我们一直是使用QRCoder来生成二维码(QRCoder是一个非常强大的生成二维码的组件,用到了System.Drawing.Common 包),然后从.NET 6开始,当为非 Windows 操作系统编译引用代码时,平台分析器会发出编译时警告。异常如下:  Syst...

#
Donet
#
DoNet
分享:

.Net GC从空闲列表里面分配对象

  1.前言  空闲列表(free_list)实质上是GC经过垃圾回收之后形成的碎片空间,它的空间可以进行重新分配新的对象。本篇看下它的重新分配过程。  2.概述  当进行一个对象分配的时候,如果是慢速分配(JIT_New)的时候,它会查找空闲列表里面是否有足够的...

#
Donet
#
DoNet
分享:

记一次 .NET 某物流 API 系统 CPU 爆高分析(图)

  一、背景  1. 讲故事  前段时间有位朋友找到我,说他程序CPU直接被打满了,让我帮忙看下怎么回事,截图如下:  看了下是两个相同的程序,既然被打满了那就抓一个 dump 看看到底咋回事。  二、为什么会打满  1. 真的被打满了吗  凡事都要用...

#
Donet
#
DoNet
分享:

.NET程序的 GDI句柄泄露 的再反思(图)

  一:背景  1. 讲故事  上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反馈两个问题:  · GDIView 统计不准怎么办?  · 我...

分享:

.Net官方的MSIL工具,你学会了吗?

  前言  很多人用第三方工具修改(实际上修改了也没用,现代化加密工具是直接hook JIT)MSIL  比如dnspy/ilspy/dotpeek/Reflector 等等,这些工具看似不错,实际上完全不经打,如果把程序集进行虚拟化,这些工具完全无法展示出来。本篇还是来看下比较能...

#
Donet
#
DoNet
分享:

.NET 如何实现ChatGPT的Stream传输(图)

  .NET 如何实现ChatGPT的Stream传输  ChatGPT是如何实现不适用websocket进行一个一个字返回到前端的?  下面我们会介绍一下EventSource。  EventSource  EventSource 接口是 web 内容与服务器发送事件[1]通信的接口。  一个 EventSource 实例...

#
Donet
#
DoNet
分享:

快速上手AForge库:图像处理、视频处理等场景(图)

  一、AForge库简介  AForge是一个.NET平台下的开源计算机视觉和人工智能库,它提供了许多常用的图像处理和视频处理算法、机器学习和神经网络模型,并且具有高效、易用、稳定等特点。AForge由一个包含多个组件模块的类库构成,可以为开发者在图像处理、...

#
Donet
#
DoNet
分享:

PerfView洞察 .NET程序 非托管句柄泄露(图)

  一:背景  1. 讲故事  前几天写了一篇 如何洞察 .NET程序 非托管句柄泄露 的文章,文中使用 WinDbg 的 !htrace 命令实现了句柄泄露的洞察,在文末我也说了,WinDbg 是以侵入式的方式解决了这个问题,在生产环境中大多数情况下是不能走附加进程的模...

#
Donet
#
DoNet
分享:

开发.NET桌面应用必备,GDI+技术大揭秘

  GDI+(Graphics Device Interface Plus)是一个Microsoft Windows操作系统中的二维图形API,它提供了很多绘制图像和文本的方法和类。这些方法和类可以让开发人员轻松地在Windows应用程序中创建和管理各种视觉元素,如位图、图形、文本等。本文将介绍GD...

#
Donet
#
DoNet
分享:

如何洞察 .NET程序 非托管句柄泄露(图)

  一:讲故事  很多朋友可能会有疑问,C# 是一门托管语言,怎么可能会有非托管句柄泄露呢? 其实一旦 C# 程序与 C++ 语言交互之后,往往就会被后者拖入非托管泥潭,让我们这些调试者被迫探究 非托管领域问题。  二:非托管句柄泄露  1. 测试案例 ...

#
Donet
#
DoNet
分享:

记一次 .NET 某医院预约平台 内存泄露分析(图)

  一:背景  1. 讲故事  前几天有位朋友找到我,说他的程序有内存泄露,让我帮忙排查一下,截图如下:  说实话看到 32bit, 1.5G 这些关键词之后,职业敏感告诉我,他这个可能是虚拟地址紧张所致,不管怎么说,有了 Dump 就可以上马分析。  二:...

#
Donet
#
DoNet
分享:

记一次 .NET 某埋线管理系统 崩溃分析(图)

  一:背景  1. 讲故事  经常有朋友跟我反馈,说看你的文章就像看天书一样,有没有一些简单入手的dump 让我们先找找感觉,哈哈,今天就给大家带来一篇入门级的案例,这里的入门是从 WinDbg 的角度来阐述的,这个问题如果你通过 记日志,分析代码 的方...

#
Donet
#
DoNet
分享:
分享到朋友圈
打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号