当时做拼写检查功能时,由于之前的逻辑是每次检查都去生成个字典实体,硬件性能没有利用完全。
改用tomcat启动时加载之后,出现了java.lang.OutOfMemoryError: Java heap space。
首先,我判断我写的代码,是依靠静态变量存储,首先就考虑到方法区空间的问题。
由于我用的JDK版本为1.8,方法区空间和堆空间共同占用一块物理内存。所以考虑堆空间。
Eclipse运行
Windows -> Preferences -> java -> Installed Jres -> Edit
Default VM arguments : -Xms128m -Xmx256m
-Xms128m(最小堆内存,初始分配)
-Xmx256m(最大堆内存,按需分配)
可适当按需求调整数字大小
Windows Tomcat
修改catalina.bat文件
set JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m
Linux Tomcat
修改catalina.sh文件
set JAVA_OPTS=-server -Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m