<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[设计 AI 玩游戏🎮]]></title><description><![CDATA[我陪AI玩游戏。嗯，得给他写个游戏先。还得教他玩，然后才能陪我玩。不知道人类和大自然是在哪个阶段。]]></description><link>https://blog.csdn.net/chenghai37</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; chenghai37]]></copyright><item><title><![CDATA[13-00-面试篇全6篇概要]]></title><link>https://blog.csdn.net/chenghai37/article/details/165623567</link><guid>https://blog.csdn.net/chenghai37/article/details/165623567</guid><author>chenghai37</author><pubDate>Fri, 18 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[本文系统阐述C#面试六篇能力地图，聚焦“结论—边界—证据”三层推理框架，涵盖基础概念、数据结构、算法实现、源码分析、语言设计与综合面。强调以岗位需求为导向，分层训练：通用后端/游戏开发重基础与综合，源码方向深挖契约与版本差异。提出“需求—结论—机制—复杂度—边界—证据”六词回答模型，倡导主动暴露反例与证据缺口，避免绝对化表述。配套四週训练计划与评分量规，助力从知识记忆跃迁至工程决策与证据闭环，最终实现面试中精准表达与深度追问的双向突破。]]></description><category></category></item><item><title><![CDATA[12-03-性能-GC装箱池化与SIMD工程决策]]></title><link>https://blog.csdn.net/chenghai37/article/details/165623516</link><guid>https://blog.csdn.net/chenghai37/article/details/165623516</guid><author>chenghai37</author><pubDate>Fri, 18 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[本文系统剖析C#性能优化核心概念：GC、装箱、池化与SIMD，强调优化应基于预算而非技巧清单。指出需通过可复现基准验证分配率、回收尖峰、内存驻留等真实指标，避免无证据的“快X倍”宣称。深入解析对象生命周期、大对象堆、装箱路径、池化所有权与清理、栈分配边界及SIMD正确性要求，提出“先证问题、再删冗余、优布局、后向量化”的决策树。强调跨平台（Unity/Editor/Mono/IL2CPP）实测必要性，反对脱离环境的泛化结论，倡导以功能等价、原始数据与完整证据链支撑工程决策。]]></description><category></category></item><item><title><![CDATA[12-02-性能-数据结构性能调查案例1-5]]></title><link>https://blog.csdn.net/chenghai37/article/details/165221006</link><guid>https://blog.csdn.net/chenghai37/article/details/165221006</guid><author>chenghai37</author><pubDate>Thu, 17 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[List 中删的根因可能是搬移，也可能是顺序错误或大结构体；先确定顺序不变量，再选反向删除、稳定压缩或 swap-back。Dictionary 问题要拆成可变键、哈希质量、重复查找、容量和并发，不能把字符串一律判罪。LINQ 必须区分延迟 iterator、闭包、重复枚举与全量缓冲；foreach 必须查看静态类型与枚举器，不由关键字或 IL2CPP 标签定罪。池化则把分配问题转成所有权、清理、容量和峰值留存问题，只有上界明确才算修复。]]></description><category></category></item><item><title><![CDATA[12-01-性能-从问题定义到发布监控的证据闭环]]></title><link>https://blog.csdn.net/chenghai37/article/details/165220886</link><guid>https://blog.csdn.net/chenghai37/article/details/165220886</guid><author>chenghai37</author><pubDate>Thu, 17 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[本文系统阐述了从问题定义到发布监控的性能优化闭环，强调以可测量指标驱动、证据链支撑的工程实践。核心原则包括：精准定义性能问题（如分位延迟、分配率），构建真实可控负载与基线，使用CPU采样、事件跟踪、内存分析与硬件计数器四类工具获取多维证据，形成可证伪假设并执行单变量实验。特别针对C#与Unity场景，提出环境固定、正确性验证、暖机处理、微基准边界等关键要点。最终通过灰度发布与线上监控确认收益，确保优化可复现、可回滚。结论指出：性能提升必须依赖完整证据链，而非直觉或单一指标，唯有如此才能安全转化为用户体验改善]]></description><category></category></item><item><title><![CDATA[11-05-Unity-热更新-多平台-JobSystem-SO-序列化-UniTask-实战案例综合篇]]></title><link>https://blog.csdn.net/chenghai37/article/details/165220611</link><guid>https://blog.csdn.net/chenghai37/article/details/165220611</guid><author>chenghai37</author><pubDate>Wed, 16 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[本文系统剖析Unity综合开发中热更新、JobSystem、Burst、序列化与异步生命周期等关键环节的交界故障，提出以“构建可达性、运行时所有权、线程/帧边界、数据schema与退出协议”为核心的统一模型。强调必须通过证据矩阵记录版本、平台、裁剪、AOT生成与第三方库配置，避免泛化承诺。重点揭示反射泛型在IL2CPP中的动态依赖、JobSystem的DAG所有权、Burst编译的非自动向量化、ScriptableObject的运行时状态陷阱、序列化半成品风险及异步任务的世代与主线程契约。倡导通过静态注册表]]></description><category></category></item><item><title><![CDATA[11-04-Unity-Span-foreach-LINQ的分配与热路径边界]]></title><link>https://blog.csdn.net/chenghai37/article/details/165220468</link><guid>https://blog.csdn.net/chenghai37/article/details/165220468</guid><author>chenghai37</author><pubDate>Wed, 16 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[本文剖析Unity中Span、foreach与LINQ的性能真相，强调“零分配”需基于四层模型（语言、API、运行时、后端）验证。Span为短生命周期借用视图，非零开销指针；foreach是否分配取决于静态类型与枚举器实现；LINQ成本分迭代器、闭包、终结缓冲多阶段。字符串、日志、ArrayPool归还等常被忽略的分配源需重点排查。不同后端（Mono/IL2CPP/Burst+Jobs）优化差异显著，必须通过真机Profiler与IL分析验证。结论：按调用路径实测，而非关键词定罪，确保正确性、可维护性与帧预]]></description><category></category></item><item><title><![CDATA[11-03-Unity-List-T-和Dictionary-TKey-TValue-的性能调优实战]]></title><link>https://blog.csdn.net/chenghai37/article/details/165220278</link><guid>https://blog.csdn.net/chenghai37/article/details/165220278</guid><author>chenghai37</author><pubDate>Tue, 15 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[本文剖析Unity中List&lt;T&gt;与Dictionary&lt;TKey,TValue&gt;的性能调优实战，强调调优核心在于对齐数据结构与真实访问模式，而非盲目替换。指出扩容、频繁创建、错误键设计、遍历修改等常见陷阱，提出容量预分配、双结构索引、池化复用、TryGetValue优化等策略，并强调需在目标设备上通过Profiler验证帧时、内存与GC表现，确保功能正确性与性能收益。最终结论：性能优化需基于真实场景证据，权衡容量、生命周期与代价，实现可预测的帧率表现。]]></description><category></category></item><item><title><![CDATA[11-02-Unity-Mono-vs-IL2CPP-两种脚本后端的数据结构行为差异]]></title><link>https://blog.csdn.net/chenghai37/article/details/165220122</link><guid>https://blog.csdn.net/chenghai37/article/details/165220122</guid><author>chenghai37</author><pubDate>Tue, 15 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[本文剖析Unity中Mono与IL2CPP脚本后端在数据结构实现上的核心差异，强调两者在功能语义上应保持一致，但代码生成时机、泛型实例化、裁剪策略、反射支持及性能表现存在显著不同。作者指出，不应依赖私有布局或后端特性进行开发，而应通过跨后端功能等价测试、建立泛型覆盖矩阵、验证符号与元数据保留，确保发布稳定性。最终结论：性能差异源于实现机制，而非语义分歧，需以真实构建环境下的数据对比为优化依据。]]></description><category></category></item><item><title><![CDATA[11-01-Unity-CSharp语言与API支持边界验证指南]]></title><link>https://blog.csdn.net/chenghai37/article/details/165220006</link><guid>https://blog.csdn.net/chenghai37/article/details/165220006</guid><author>chenghai37</author><pubDate>Mon, 14 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[本文系统剖析Unity中C#语言与API支持的多维边界，强调“支持”非单一版本承诺，而是涵盖编译器、BCL、后端（Mono/IL2CPP）、裁剪、AOT泛型、平台能力等十余层验证。提出以可重复探针（语法、API、反射、异步、原生等）嵌入CI为核心方法，结合asmdef、包管理与最小验证矩阵，实现跨版本兼容性可追溯、可自动化。结论：真正可靠的兼容性依赖证据链而非直觉，团队应掌握核验方法而非记忆版本号。]]></description><category></category></item><item><title><![CDATA[10-08-高级-属性事件委托运算符的编译器翻译]]></title><link>https://blog.csdn.net/chenghai37/article/details/165219879</link><guid>https://blog.csdn.net/chenghai37/article/details/165219879</guid><author>chenghai37</author><pubDate>Mon, 14 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[本文剖析C#属性、事件、委托与运算符的底层机制，强调其非“语法糖”，而是语言、元数据与运行时协同的结果。属性通过访问器方法实现，事件以add/remove封装发布权，委托为不可变调用列表，运算符编译为特殊静态成员。需依赖元数据契约，而非私有字段名或固定IL。init与required是初始化约束，非深不可变；事件订阅形成强引用，需显式Dispose防泄漏；异步处理器应避免async void。Unity中C#event与UnityEvent独立，序列化与AOT需单独验证。核心原则：只依赖公开契约，拒绝编译器]]></description><category></category></item><item><title><![CDATA[10-07-高级-反射表达式树Emit与源生成-元编程路径]]></title><link>https://blog.csdn.net/chenghai37/article/details/165124655</link><guid>https://blog.csdn.net/chenghai37/article/details/165124655</guid><author>chenghai37</author><pubDate>Sun, 13 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[本文系统剖析C#元编程四大路径：反射、表达式树、Emit与源生成，强调其本质差异——信息时机（编译时/运行时）、输出形式（查询/生成）与目标平台（JIT/AOT）决定选型。核心原则是：编译时可知则用源生成，动态查询需精确契约与缓存生命周期，高频调用优先强类型委托，Emit仅限必要场景。关键在于区分“可复现”与“不可控”，通过裁剪测试、确定性生成、生命周期管理与基准验证，将元编程从灵活魔法转化为可维护基础设施。]]></description><category></category></item><item><title><![CDATA[10-06-高级-unsafe代码与指针-能力契约与失效边界]]></title><link>https://blog.csdn.net/chenghai37/article/details/165124640</link><guid>https://blog.csdn.net/chenghai37/article/details/165124640</guid><author>chenghai37</author><pubDate>Sun, 13 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[本文深入剖析C#12与.NET8中unsafe代码与指针的底层机制，强调其本质是可验证契约的最后一公里：虽允许裸指针、stackalloc、函数指针等高性能操作，但放弃编译器与运行时对边界、对齐、生命周期的自动保护。程序员必须主动证明地址有效、内存稳定、类型布局匹配。文章系统阐述fixed/pinning、stackalloc生命周期、Span逃逸规则、sizeof三类大小差异、结构体布局与端序、MemoryMarshal与UnsafeAPI的使用边界，并警示越界、use-after-free、错误重解释三]]></description><category></category></item><item><title><![CDATA[10-05-高级-模式匹配-CSharp如何改变与数据结构的交互方式]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475777</link><guid>https://blog.csdn.net/chenghai37/article/details/164475777</guid><author>chenghai37</author><pubDate>Sat, 12 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们只需要根据给定内容生成一段≤150字的文章摘要。内容是关于C#模式匹配源码剖析，强调模式匹配是编译器可分析的整体，改变与数据结构的交互方式，涉及实现原理、性能边界和Unity实践。摘要需简洁。&lt;/think&gt;本文剖析C#模式匹配从语法到降级实现的原理，指出其价值在于将数据形态判断与提取变为编译器可分析的整体，而非简单“更短的if”。文章追踪决策DAG降级、各类模式的数据访问路径与真实成本，并强调在Unity中须验证目标后端性能，避免默认分支吞错与有副作用getter]]></description><category></category></item><item><title><![CDATA[10-04-高级-async-await的编译器重写与状态机]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475663</link><guid>https://blog.csdn.net/chenghai37/article/details/164475663</guid><author>chenghai37</author><pubDate>Sat, 12 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据用户要求，需要对给定内容生成一个不超过150字的摘要。内容是关于C# async/await状态机机制、编译器重写、上下文、资源边界等高级话题。需要提取核心观点，保持概括性，字数严格限制。先分析原文结构，找出最重要的点：async不是创建线程，而是状态机暂停恢复；编译器重写为MoveNext和builder；await是模式；上下文与ExecutionContext区别；ValueTask注意事项；异常/取消/async void；C#12/13对ref struct限制；]]></description><category></category></item><item><title><![CDATA[10-03-高级-LINQ源码剖析-下-GroupBy-Join-Aggregate的底层原理]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475521</link><guid>https://blog.csdn.net/chenghai37/article/details/164475521</guid><author>chenghai37</author><pubDate>Fri, 11 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据要求，需要生成≤150字的文章摘要。内容是关于LINQ源码剖析，特别是GroupBy、Join与Aggregate系列的高级特性。关键是总结核心要点：GroupBy延迟调用但首枚举全量缓冲；Join先缓冲inner再流式扫描outer；Aggregate立即单遍折叠。还需提到Lookup/Grouping结构、顺序、性能影响。要控制在150字以内。注意字数限制，需要精炼。先起草： &quot;剖析.NET8 LINQ to Objects实现：GroupBy返回延迟对象，但]]></description><category></category></item><item><title><![CDATA[10-02-高级-LINQ源码剖析-上-Where-Select-SelectMany的延迟求值]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475428</link><guid>https://blog.csdn.net/chenghai37/article/details/164475428</guid><author>chenghai37</author><pubDate>Fri, 11 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们只需要根据内容生成摘要，不超过150字。内容主要讨论LINQ to Objects中Where、Select、SelectMany的延迟执行、迭代器状态机、优化路径、异常时机、分配问题等。摘要要简洁，抓住核心。&lt;/think&gt;LINQ to Objects的Where、Select、SelectMany采用延迟拉取执行，由消费者MoveNext驱动；异常、闭包副作用与资源释放发生在枚举时。.NET8含数组、List等专用路径及迭代器融合，但属实现细节。注意重复枚举、]]></description><category></category></item><item><title><![CDATA[10-01-高级-泛型的底层实现-具现化代码共享与真实成本]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475302</link><guid>https://blog.csdn.net/chenghai37/article/details/164475302</guid><author>chenghai37</author><pubDate>Thu, 10 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据要求：根据内容生成≤150字的文章摘要。内容很长，需要提炼核心观点。摘要需涵盖泛型底层实现（具现化、代码共享、真实成本），区分层次，强调特化/共享，值类型避免装箱，但也有成本，AOT等。字数≤150字中文。我们拟：&quot;.NET泛型让类型参数进入CLI类型系统：构造类型运行时身份可区分，值类型可内联存储，避免非泛型Object容器每元素装箱；但代码共享需上下文，值类型特化可能带来代码膨胀，接口/object边界仍可装箱，AOT需提前发现实例化。泛型不是零成本抽象，跨语]]></description><category></category></item><item><title><![CDATA[09-05-其他-非泛型集合遗产-ArrayList-Hashtable-兼容边界与迁移]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475182</link><guid>https://blog.csdn.net/chenghai37/article/details/164475182</guid><author>chenghai37</author><pubDate>Thu, 10 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据内容生成摘要，不超过150字。内容涵盖ArrayList、Hashtable的兼容边界、迁移注意事项、内部机制、同步、序列化、迁移策略等。要精炼。字数：150字以内。我们要抓住核心：非泛型集合的语义、风险、迁移要点。写摘要。&lt;/think&gt;本文剖析ArrayList与Hashtable的object存储、装箱拆箱、探测/冲突机制及同步边界，强调迁移需审计元素类型、比较器、null、序列化契约与并发语义。建议用泛型集合替代，但保留兼容层，并通过差分测试和版本化DT]]></description><category></category></item><item><title><![CDATA[09-04-其他-Collection-T-ObservableCollection-T-与KeyedCollection-TKey-TItem]]></title><link>https://blog.csdn.net/chenghai37/article/details/164475086</link><guid>https://blog.csdn.net/chenghai37/article/details/164475086</guid><author>chenghai37</author><pubDate>Wed, 09 Sep 2026 07:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们只需要根据内容生成摘要，不超过150字。内容主要讨论了Collection、ObservableCollection、KeyedCollection的契约与陷阱，强调派生集合需维护顺序、索引、通知和异常安全等。摘要应简洁概括核心。&lt;/think&gt;摘要：本文剖析Collection、ObservableCollection与KeyedCollection的契约与陷阱，强调派生集合需拦截操作并维护顺序、索引、通知和异常安全。指出只读视图非快照，通知非并发安全，键需稳定并]]></description><category></category></item><item><title><![CDATA[09-03-其他-BitArray与BitVector32-位级别的数据结构]]></title><link>https://blog.csdn.net/chenghai37/article/details/164474972</link><guid>https://blog.csdn.net/chenghai37/article/details/164474972</guid><author>chenghai37</author><pubDate>Wed, 09 Sep 2026 06:00:00 +0800</pubDate><description><![CDATA[&lt;think&gt;我们根据要求，需要根据用户提供的长文本生成≤150字的文章摘要。用户指令：“根据以下内容，生成≤150字的文章摘要”。输入内容是关于BitArray和BitVector32的深度技术分析。需要简洁概括核心要点，不要冗余，控制在150字内。注意用户要求是“文章摘要”，不是详细摘要。我们应该提取主要主题：比较位级数据结构，讨论存储、运算、边界、并发、序列化、选型等，强调适用场景与权衡。中文字数限制严格。需要输出摘要，而不是解释。尽量一句话概括核心内容，加上几个关键点。例如：“本文深入解]]></description><category></category></item></channel></rss>