但是我在win10上运行就没有问题,代码应该没什么问题
那估计是你程序的什么地方有内存泄漏了,检查一下代码,有没有被全局引用的对象,导致这些对象无法被垃圾回收。
查一下 tomcat , matlab , redis 和 oracle 的具体的版本号,你 Win10 系统 和 WinServer 系统 上面的这些软件的具体版本号,肯定是不相同的。 尤其是老版本的 tomcat 有的版本 时间长了,是会出现问题的。有可能是 tomcat 和 JDK 不兼容引起的。 具体的原因,我也不知道是怎么回事,一般情况下 虚拟内存 写满硬盘, 肯定是内存泄露了 。 Oracle 对内存的管理很严格的,通常是不会出现内存泄漏的状况。 redis 会有这个可能,你的程序如果缓存的数据都是常驻内存的,从不清理缓存(或者说,数据没有生存周期),一直往里面存,当然会内存溢出了。 matlab 的内存溢出,一般情况就是你的实验数据太大,一步一步的执行过程中,没有释放内存,一直积累这些中间结果,然后,内存溢出了。 tomcat 很少有内存溢出的情况,除非你更改了启动参数,或者,使用 Java Native 方法。 springBoot 的程序,如果要内存溢出的话,那也是编程的问题,这个和redis的使用一样,只能靠编程经验来避免,要是想查原因的话,下载一些工具,比如 jmap 之类的,查一下内存状况,线程的执行情况。
[quote=引用 2 楼 weixin_41297360 的回复:]但是我在win10上运行就没有问题,代码应该没什么问题
67,512
社区成员
225,880
社区内容
加载中
试试用AI创作助手写篇文章吧