Unity
文章平均质量分 70
ZZHSourceCode
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用 CollectionsMarshal 优化字典读写速度
用一个**“字典里高频更新某个值”**的场景来举例,这是最容易体现价值的地方。原创 2026-11-04 08:15:00 · 287 阅读 · 0 评论 -
用struct替代class后,内存占用竟然更大了
本文通过性能测试对比class与struct在内存分配上的差异,发现struct因默认采用Sequential布局未进行内存对齐,导致实际占用内存更高。而class使用Auto布局可自动优化对齐,减少填充字节。通过StructLayout(LayoutKind.Auto)显式设置后,struct内存分配显著降低,甚至优于class。结论:结构体并非一定更省内存,合理布局(如Auto)至关重要。原创 2026-10-29 08:15:00 · 477 阅读 · 0 评论 -
项目里一堆if ContainsKey,这不是经典面试题吗
虽然大部分情况下这不会成为性能瓶颈,但是无论性能还是可读性,TryGetValue都比ContainsKey+dic[key]要更好,最近在项目里发现了一堆ContainsKey+dic[key]。但2026年了,这应该成为肌肉记忆了。于是写了一篇性能测试加强一下记忆。原创 2026-09-15 08:00:00 · 179 阅读 · 0 评论 -
Unity Editor实现一个比AssetDatabase.FindAssets内存和CPU都更友好的替代方案
最近在做一个unity编辑器项目,需要找到在某个路径下,名字包含“ArtPrefab”的预制体。这导致AssetDatabase.FindAssets被频繁调用,而它会返回完整的string[]= 0)源码中还用了Distinct().ToArray(),性能进一步下降。但实际上我们的需求并不需要遍历所有找到的预制体,遍历时,找到需要的预制体就可以返回了。这导致了大量没用的内存分配。if (!return;原创 2026-08-17 08:30:00 · 167 阅读 · 0 评论 -
Protobuf根据Varint编码优化序列化
本文总结了Protobuf编码优化建议:1)常用字段编号应小于15以减少存储空间;2)负数值应使用sint类型提高编码效率。通过C#代码示例演示了不同字段编号和数据类型对序列化结果的影响:小字段编号生成更紧凑的Tag(如编号1仅需1字节),而负数采用sint类型(如sint32)比int32节省9字节空间。文中还提供了十六进制打印方法用于验证编码结果,并附有Protobuf官方编码文档链接供参考。原创 2026-07-22 08:00:00 · 36 阅读 · 0 评论 -
C# 过滤数据的三种姿势:yield return、LINQ Where、ToList 全景性能对决
C# 过滤数据的三种姿势:yield return、LINQ Where、ToList 全景性能对决原创 2026-07-07 08:15:00 · 215 阅读 · 0 评论 -
什么!?Unity的SetTrigger(string name)不能用了?
原因是,SetTrigger(string name)内部还会计算一次Animator.StringToHash()先说结论,Unity 尽量避免。原创 2026-06-05 07:45:00 · 250 阅读 · 0 评论 -
Unity 优化只读属性{get;}读取性能
属性读取] 7 ms | 单次: 7.00 ns | 倍率: 2.33x。[帧模拟-属性] 6 ms / 10000 | 倍率: 3.00x。[字段读取] 3 ms | 单次: 3.00 ns。[字段写入] 3 ms | 单次: 3.00 ns。[属性修改] 6 ms | 单次: 6.00 ns。[帧模拟-字段] 2 ms / 10000帧。原创 2026-06-03 08:45:00 · 235 阅读 · 0 评论
分享