ThreadLocal LinkedSlotVolatile<SqlSugarClient> 返回

在项目运行中,内存会随着时间递增,用dotMemory工具分析,占用内存的是
Sparse arrays inspection
Type, Wasted, Filling, Length, Used
System.Threading.ThreadLocal+LinkedSlotVolatile<SqlSugarClient>[], 33554416, 0.0%, 4194304, 2
从分析结果来看,是因为SqlSugarClient 资源未及时释放导致
如下图:
热忱回答(11)
-
fate sta VIP0
2周前sqlsugarscope你没有单例
0 回复 -
fate sta VIP0
2周前用sqlsugarscope一定要单例
0 回复 -
dxy VIP0
2周前@fate sta:我用的 SqlSugarClient,没有用 sqlsugarscope
0 回复 -
fate sta VIP0
2周前System.Threading.ThreadLocal 那这个对象哪来的
0 回复 -
fate sta VIP0
2周前只有sqlsugarscope才会用到这个对象
0 回复 -
fate sta VIP0
2周前检查一下代码,F5搜索一下
0 回复 -
dxy VIP0
2周前@fate sta:
全文搜索只有这2个类用到了
0 回复 -
fate sta VIP0
2周前@dxy:你搜索你的代码,这个代码ORM只有SqlSugarScope才用到,你要找有没有SqlSugarScope或者你用了ThreadLocal
0 回复 -
dxy VIP0
2周前@fate sta:我的项目中, 用到了2种数据库,mysql用的 SqlSugarClient 用AddScoped注入,sqlite 用的 SqlSugarScope 用AddScoped注入没有用单例,在实际操作中,sqlite 在初始化以后,我只会在后台操作一次读取sqlite部分表里面数据,后续不会再用到且我会重启我的服务,这样也会导致内存一直递增吗?
0 回复 -
dxy VIP0
2周前@fate sta:好的, 我先把SqlSugarScope改成单例,非常感谢
0 回复 -
fate sta VIP0
2周前@dxy:对的SqlSugarScope 必须单例,不能Scoped 这样会占内存
0 回复