运行时错误7内存溢出各位说说怎么办?
答案:3 悬赏:0
解决时间 2021-11-09 01:26
- 提问者网友:精神病院里
- 2021-11-08 01:47
运行时错误7内存溢出各位说说怎么办?
最佳答案
- 二级知识专家网友:神鬼未生
- 2021-11-08 01:59
内存溢出的解决方案:
第一步,修改JVM启动参数,直接增加内存。(-Xms,-Xmx参数一定不要忘记加。)
第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。
第三步,对代码进行走查和分析,找出可能发生内存溢出的位置。
重点排查以下几点:
1.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
2.检查代码中是否有死循环或递归调用。
3.检查是否有大循环重复产生新对象实体。
4.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
5.检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
第四步,使用内存查看工具动态查看内存使用情况
第一步,修改JVM启动参数,直接增加内存。(-Xms,-Xmx参数一定不要忘记加。)
第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。
第三步,对代码进行走查和分析,找出可能发生内存溢出的位置。
重点排查以下几点:
1.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
2.检查代码中是否有死循环或递归调用。
3.检查是否有大循环重复产生新对象实体。
4.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
5.检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
第四步,使用内存查看工具动态查看内存使用情况
全部回答
- 1楼网友:封刀令
- 2021-11-08 03:45
问题现象:
1.预览或打印凭证时报错,提示: 运行时错误 '7':内存溢出
2. 查询明细账点[确认]后报错,提示: 出错:7-内存溢出
解决方法:
方法一: 从其他的电脑上拷贝ufformat.mdb文件,放在:操作系统目录\\system32\\UFCOMSQL下,如放在C:\\WINDOWS\\system32\\UFCOMSQL下。
方法二:从其他的电脑上拷贝ufrtprn.ocx文件,放在C:\\WINDOWS\\system32\\UFCOMSQL下,并对该文件重新注册。
请确认你拷贝的上面两个文件有没有放到上面说的正确文件夹位置,有些时候杀毒软件和防火墙会阻止你对\\windows文件夹里面的文件写入,所以要在操作前把杀毒软件和防火墙关闭后再完成上面操作,然后再把杀毒软件和防火墙打开。
就可以了。
- 2楼网友:孤老序
- 2021-11-08 03:22
1、内存溢出不是硬件的毛病,是软件设计不到位,内存溢出比较危险,黑客可以利用这种漏洞编写出特殊程序进行内存溢出攻击,从而取得你的系统权限,控制你的电脑。
2、建议到网上该软件的补丁,或者将软件升级到最新版本。
希望我的回答能帮到您
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息