202608 / 09构建与发布
只在真机上出现的 MethodAccessException:代码裁剪的锅
编辑器里一切正常,打到真机就抛异常,而且异常里的类型名是空的。 根因是托管代码裁剪把只通过接口调用的方法删掉了。记录定位思路, 以及为什么正确解法是精准 preserve 而不是一把关掉裁剪。
个人技术笔记 / field notes
平时做客户端和工程工具链。遇到的问题多半不是「不知道怎么写」, 而是「明明写对了却在真机上炸了」。
这类问题查起来费时,忘起来飞快,所以写下来。三个方向:运行时性能与内存分配、 静态资源的分发与缓存、构建发布链路上的坑。全部来自自己的项目实践,不做转载。
编辑器里一切正常,打到真机就抛异常,而且异常里的类型名是空的。 根因是托管代码裁剪把只通过接口调用的方法删掉了。记录定位思路, 以及为什么正确解法是精准 preserve 而不是一把关掉裁剪。
长缓存和「改了要立刻生效」看似矛盾,用内容哈希命名 + 版本清单不缓存就能同时成立。 顺带记两个真实教训:默认域名不能拿来当网页站点,以及欠费十五天会发生什么。
连锁反应一多就掉帧,Profiler 显示每帧上百次 GC.Alloc。问题不在算法复杂度, 而在每次调用都在新建临时集合。记录复用 scratch 集合、值类型改造和对象池化的完整过程, 以及池化时那个只池化精确类型的坑。