-
我的一个高频接口性能差、GC 压力大,代码里却看不出哪行慢,profiler 一看全是堆分配,原来是我把一堆 int、bool 当 object 存进了集合、每次存取都在悄悄装箱拆箱的深度复盘
我有个高频调用的接口性能不理想、GC 频繁、内存分配率高,盯着代码看了半天每一行都很正常,实在找不出问题。直到用 profiler 抓内存分配才傻眼:大量堆分配集中在一段看起来人畜无害的代码上——我用了 Dictionary 存各种属性(里面塞了一堆 int、bool、DateTime 这些值类型)高频存取。复盘才搞懂:C# 里值类型默认在栈上或内联、不在堆上单独分配,但把它赋给 object(或…- 0
- 0
拆箱
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!

