clr

淡海水2 天前
服务器·前端·c#·priorityqueue·clr·telement
05-03-栈队列-PriorityQueue-TElement-TPriority-NET6优先队列语义与四叉堆实现系列:C# 与常用数据结构源码剖析 · 栈与队列篇 阅读时间:约 55 分钟 前置知识:数组、完全树、比较器、渐进复杂度 版本边界:PriorityQueue<TElement, TPriority> 在 .NET 6 加入 BCL。本文讲解 .NET 6 起就存在的核心语义;内部字段、分支因子和辅助 API 必须按具体 dotnet/runtime tag 核验,不将当前主分支当成所有版本的永久契约。
淡海水7 天前
c#·list·编译·array·clr·机器码
03-05-线性-Array-List-LinkedList与Span-所有权与成本模型选型系列:C# 与常用数据结构源码剖析 · 数据结构-线性篇 阅读时间:约 85 分钟 版本口径:公共语义以 C# 12、.NET 8 为参考;Unity 部分以 Unity 2022.3 LTS 为讨论基线。私有布局、增长策略与代码生成需按目标运行时复核。 选型原则:先确定所有权、长度、顺序与生命周期,再比较复杂度、分配和缓存;不使用脱离元素类型与硬件的固定倍率。
淡海水8 天前
windows·链表·c#·编译·linkedlist·clr·机器码
03-03-线性-LinkedList-T-源码不变式与选择边界系列:C# 与常用数据结构源码剖析 · 线性结构篇 源码基线:.NET 8.0.0,dotnet/runtime 的 v8.0.0 tag,System.Private.CoreLib/src/System/Collections/Generic/LinkedList.cs 阅读约定:本文把公共 API 契约与私有实现分开。字段、循环链和版本计数是 v8.0.0 的实现事实,不是应用可依赖的 ABI。文中源码为教学化节选,省略了接口、特性和抛错辅助方法,不冒充可直接替换运行时文件的逐字源码。
淡海水9 天前
数据结构·windows·c#·list·编译·clr·机器码
03-02-线性-List-T-动态数组布局-扩容与操作成本系列:C#与常用数据结构源码剖析 · 数据结构-线性篇 阅读时间:约 45 分钟 源码位置:dotnet/runtime/src/libraries/System.Private.CoreLib/src/System/Collections/Generic/List.cs 版本基线:私有字段与关键路径以 .NET 8.0.0 tag 为准;增长、收缩与 JIT 优化不是跨版本契约
淡海水17 天前
windows·c#·对象·new·clr·methodtable
01-02-运行时-MethodTable-一切类型的运行时身份证系列:C#与常用数据结构源码剖析 · 运行时底层剖析 阅读时间:约 40 分钟 前置知识:C# 类型系统基础、值类型与引用类型
hez201019 天前
c#·.net·.net core·clr·compiler
让 .NET 11 的泛型虚方法变得更快!.NET 中的泛型方法带有一个或多个类型参数,可以在保证类型安全的同时处理不同的数据类型。当我们希望代码针对具体类型进行特化,却又不想为每种类型重复编写一份代码时,泛型方法就很有用。
hez20102 个月前
c#·.net·.net core·gc·clr
在 .NET 上构建超大托管数组这些年经常看到有人抱怨 .NET 数组的最大长度。在 .NET 里,数组、集合、Span 以及很多相关 API 都是围绕 32 位长度和索引设计的。GitHub 上曾经有一个很长的 issue 讨论 64 位数组支持,但最后以 "won't fix" 关闭,因为这件事会牵涉到运行时、GC、JIT、类型系统、反射以及大量现有代码。
淡海水3 个月前
unity·架构·c#·热更新·clr·hybrid·leanclr
38-Hybrid生态-LeanCLR总览在 HybridCLR 生态中,LeanCLR 是一个经常被提及但又容易被忽视的重要组件。如果说 HybridCLR 的目标是让 Unity 开发者能够无缝地实现 C# 热更新,那么 LeanCLR 的目标则是将 HybridCLR 核心的解释器能力剥离出来,赋能更广阔的非 Unity 场景。本文作为 LeanCLR 系列的开篇,将从定义、架构、特性、适用场景以及与 HybridCLR 的协同关系等多个维度,为读者呈现 LeanCLR 的全貌,帮助大家理解这一轻量级 CLR 运行时在整个 C# 生态中的定
淡海水3 个月前
unity·c#·热更新·clr·hybrid·injectfix
08-认知篇-对比-injectfix深度解析在 Unity 游戏开发领域,"线上 Bug 如何快速修复"始终是一个绕不开的痛点。当一款已经上线的游戏出现了一个导致玩家无法正常游戏的 Bug,传统做法是修改代码、打一个新包、提交各应用商店审核,然后等待数天乃至数周的审核周期。对于移动游戏而言,这不仅是时间成本,更是真金白银的流水损失。
淡海水3 个月前
unity·c#·aot·热更新·clr·hybrid
01-认知篇-总览-HybridCLR是什么在 Unity 游戏开发领域,热更新一直是一个无法回避的核心话题。对于一款上线后的移动游戏而言,能够在不重新发布 App Store 审核的情况下修复 Bug、更新内容、调整玩法逻辑,直接关系到产品的生命周期和运营效率。
工程师0074 个月前
c#·clr·il·程序集
C# 程序集、IL、CLR 执行流程你写的 C# 代码编译后生成的文件,就是程序集。.NET 的运行时虚拟机,负责:一句话:CLR 就是 .NET 程序的 “操作系统”
切糕师学AI4 个月前
.net·gc·clr
.NET CLR GC 调优完全指南:从理论到生产实战一份系统性的 .NET 垃圾回收调优手册,涵盖内存模型、模式选型、参数配置、诊断工具及真实案例。.NET 的垃圾回收(Garbage Collection, GC)是 CLR(Common Language Runtime)的核心组件之一,它自动管理托管内存,让开发者能够专注于业务逻辑而非手动释放内存。然而,GC 的“自动”并不意味着“免费”——不合理的内存使用模式会导致频繁的 GC 停顿、内存泄漏,甚至 OutOfMemoryException。
hez20106 个月前
c#·.net·.net core·gc·clr
Satori GC:同时做到高吞吐、低延时和低内存占用GC 的设计里一直有一个很难绕开的矛盾:高吞吐、低延时、低内存占用,通常很难同时做到。传统做法里,想要更短的停顿,往往要把更多工作搬到并发阶段,甚至让平时的对象访问承担更高成本;想要更高的吞吐量,又往往意味着平时路径成本必须足够低,于是更多工作会堆到回收阶段;想要更低的内存占用,则又需要更积极地回收、整理和归还内存。
hez20101 年前
c#·.net·.net core·clr
Runtime Async - 步入高性能异步时代一般而言,代码可分为同步与异步两类。两者同样需要等待操作完成:同步会阻塞当前线程,直至操作结束后再继续执行后续逻辑;异步则不阻塞当前线程,而是在发起操作时预先注册完成后的处理逻辑,待操作完成时由操作本身或外部机制触发该逻辑。
liulilittle1 年前
开发语言·c++·.net·cli·clr·托管·原生
C++/CLI与标准C++的语法差异(一)指针生命周期规则异常安全模板边界检查技术黄金决策公式
hez20101 年前
c#·.net·.net core·clr
.NET 的全新低延时高吞吐自适应 GC - Satori GCGC,垃圾回收器,本质上是一种能够自动管理自己分配的内存的生命周期的内存分配器。这种方法被大多数流行编程语言采用,然而当你使用垃圾回收器时,你会失去对应用程序如何管理内存的控制。C# 允许在自动控制内存的基础之上局部对内存进行手动控制,但是自动控制仍然是主要的场景。
hez20102 年前
c#·.net·aot·.net core·clr·compiler
Brainfly: 用 C# 类型系统构建 Brainfuck 编译器Brainfuck 是由 Urban Müller 在 1993 年创造的一门非常精简的图灵完备的编程语言。
hez20102 年前
.net·.net core·clr·compiler
0. RyuJIT Tutorials - RyuJIT 的历史和架构RyuJIT - 即 .NET 的 JIT 编译器,负责将 IL 代码编译为最终用于执行的机器代码。本系列为 RyuJIT 教程,将分为多篇进行更新发布,旨在给对 .NET 编译器有兴趣、以及希望参与 .NET JIT 编译器开发工作的人提供一些参考资料。
离歌漠2 年前
c++·c#·clr
C#调用C++ DLL方法之C++/CLI(托管C++)C++/CLI (C++/Common Language Infrastructure) 是一种用于编写托管代码的语言扩展,它是为了与 .NET Framework 进行互操作而设计的。C++/CLI 是 C++ 的一种方言,它引入了一些新的语法和关键字,以便更好地支持 .NET 类型和垃圾回收。
可均可可2 年前
p/invoke·clr·com互用性·平台调用服务
Advanced .Net Debugging 9:平台互用性3.6、ExampleCore_7_043.7、ExampleCore_7_044(动态链接库,C++)