首页 新闻 会员 周边

WCF本地服务内存占用越来越大,GC回收,优化代码都不见效。

0
悬赏园豆:20 [待解决问题]

场景:把另一个数据库里的数据迁移过来,两个数据库,都是SQLite的,数据的话大概是学校--年级--班级--学生--成绩类似这样的关联数据。
实现:控制台程序A,操作原数据,然后调用WCF本地接口插入新的数据库,控制台程序A内存正常,循环插入新数据后,WCF接口的进程内存越来越大,大概以2M/S的速度增长,GC回收也没用。

内存分析工具只能分析控制台A的,分析WCF本地接口不了,没人调用肯定不会增长内存,
目前只处理了,操作完一个把WCF进程关闭,再打开,但这样很容易出问题,请教各位大佬,我该怎么办?操作WCF接口代码如下,都关闭了,还是一直增长。

问题补充:

补充下,WCF接口是一启动的时候自动允许在本机的。
项目架构:控制台/WPF程序->Proxy层-->Client层-->接口定义-->接口实现

小代码大世界的主页 小代码大世界 | 初学一级 | 园豆:31
提问于:2022-03-09 18:07
< >
分享
所有回答(7)
0

就那么几行代码都排除不了?

多半是操作数据库没有Dispose

花飘水流兮 | 园豆:13560 (专家六级) | 2022-03-09 18:18

检查过了,都有释放,贴的代码是Proxy层,操作数据库的如下

支持(0) 反对(0) 小代码大世界 | 园豆:31 (初学一级) | 2022-03-09 18:21
0

要不这样:现在的问题是找不到哪里占内存了,可以先注释掉一部分代码,看看效果,如果还是老样子,就注释掉另一部分代码,直到找到哪里占了内存。

代码量比较少的话这样应该可以找到

会长 | 园豆:12401 (专家六级) | 2022-03-09 18:57

数据类似这样几个学校--学校下面几个年级--十几个班级--一个班级100个学生--N多次考试的成绩,注释的话不太好查问题

支持(0) 反对(0) 小代码大世界 | 园豆:31 (初学一级) | 2022-03-10 09:26
0

项目F5 跑2分钟看一下内存对象就好了

czd890 | 园豆:14412 (专家六级) | 2022-03-09 21:28


这些看不懂啊

支持(0) 反对(0) 小代码大世界 | 园豆:31 (初学一级) | 2022-03-10 09:41

@小代码大世界:

支持(1) 反对(0) czd890 | 园豆:14412 (专家六级) | 2022-03-10 16:14
0

1.循环插入数据量有多大?
2.使用代码主动释放,不要被动
3.没用的连接数要断开。

Mundo Novo | 园豆:69 (初学一级) | 2022-03-09 23:02

1,数据类似这样几个学校--学校下面几个年级--十几个班级--一个班级100个学生--N多次考试的成绩,还不能批量插入,有很多关联关系,数据量的话可以大可以小,但大小都是2M/S的内存在增长,除非执行完了。
2,代码都检查过了,都释放了
3,连接也释放了

支持(0) 反对(0) 小代码大世界 | 园豆:31 (初学一级) | 2022-03-10 09:28
0

阿哈,你的问题我也遇到过。问题的根本在于,你的HttpRequest 请求这里。你底层可能 用的是HttpClient对象 ,你插入数据 的时候,大量调用httpclient ,导致 有大量的socket 堆积,所以就 内存 飙升了…… 记得把分数都给我

需要格局 | 园豆:2145 (老鸟四级) | 2022-03-10 09:38

这部分迁移数据没有用到httpclient ,都是本地数据库,本地插入

支持(0) 反对(0) 小代码大世界 | 园豆:31 (初学一级) | 2022-03-10 09:43
0

只能操作前看这个WCF接口占用内存多少,多的话就把这个WCF服务重启了

小代码大世界 | 园豆:31 (初学一级) | 2022-03-21 15:57
0

不要循环调用代理去访问数据库,逻辑性代码最后移植到后台去完成,最后统一保存到数据库

心怀宇宙 | 园豆:643 (小虾三级) | 2022-03-25 15:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册