|
|
|
我们可以通过修改注册表键值的方法,使关闭软件后自动清除内存中没用的DLL文件及时收回消耗的系统资源。打开注册表编辑器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer"为主键,在右过窗中单击右键,新建一个名这“AlwaysUnloadDII“的“字符串值“,然后将“AlwaysUnloadDII“的键值修改为“1“,退出注册表重新启动机器即可达到目的。
1.清除“剪贴板”
当“剪贴板”中存放的是一幅图画或大段文本时,会占用较多内存。请清除“剪贴板”中的内容,释放它占用的系统资源:单击“开始”,指向“程序”,指向“附件”,指向“系统工具”,单击“剪贴板查看程序”,然后在“编辑”菜单上,单击“删除”命令。
2.重新启动计算机
只退出程序,并不重新启动计算机,程序可能无法将占用的资源归还给系统。请重新启动计算机以释放系统资源。
3.减少自动运行的程序
如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也将没有足够的系统资源用于运行其他程序。设置Windows不启动过多程序:其一,单击“开始→运行”,键入“msconfig”,单击“确定”按钮,单击“启动”选卡,清除不需要自启动的程序前的复选框。其二,单击“开始→运行”,键入“sysedit”,单击“确定”按钮,删除“autoexec.bat”、“win.ini”和“config.sys”文件中不必要的自启动的程序行。然后,重新启动计算机。
虚拟内存不足也会造成系统运行错误.可以在“系统属性”对话框中手动配置虚拟内存,把虚拟内存的默认位置转到可用空间大的其他磁盘分区。
5.应用程序存在Bug或毁坏
有些应用程序设计上存在Bug或者已被毁坏,运行时就可能与Windows发生冲突或争夺资源,造成系统资源不足。解决方法有二:一是升级问题软件,二是将此软件卸载,改装其他同类软件。
不少的内存优化软件,如RAM Idle和Memo Kit都能够自动清空“剪贴板”、释放被关闭程序未释放的系统资源、对虚拟内存文件(Win386.swp)进行重新组织等,免除手工操作的麻烦,达到自动释放系统资源的目的。
1.禁用一部分启动项
启动时加载过多的应用程序会使Windows因系统资源严重不足而“蓝屏”,因此我们最好运行“Msconfig”禁用一部分应用程序。或者使用Windows优化大师来代劳。
2.设置足够的虚拟内存
虚拟内存不足也会造成系统多任务运算错误,我们可以通过时常删除一些临时文件和交换文件对此问题加以解决,此外还可以在“系统属性”下手动配置虚拟内存,把虚拟内存的默认位置转到其他逻辑盘下。并设置得大一些。
3.给硬盘保留足够空间
由于Win9X运行时需要用硬盘作虚拟内存,这就要求硬盘必须保留一定的自由空间以保证程序的正常运行。一般而言,最低应保证100MB以上的空间,否则出现“蓝屏”很可能与硬盘剩余空间太小有关。另外,硬盘的碎片太多,也容易导致“蓝屏”的出现。因此,每隔一段时间进行一次碎片整理是必要的。
4.使用内存管理软件
剩下的就是些杂项了,诸如不用activedesktop之类浪费资源的功能。使用内存管理软件,如RAM Idle之类的。养成好习惯,暂时不用的程序就将其关闭。
当Project的代码量达到Idea编译的上限时,Idea将无法自动分配足够的内存给Project,这就直接导致出现了“系统资源不足”的编译中断异常。
之所以导致上面的编译中断异常出现,还需要来看看Idea的编译过程
Idea在编译时会动态的分配内存给Project,而windows也会给idea分配的内存,当windows分配给Idea的内存少于Project所需或者已经达到一定的临界点时,就会导致Idea编译工具编译中断,抛出内存溢出的错误。
解决这个问题的关键是我们需要理解下面这句话
windows给idea分配的内存或者Idea分配给Project的内存已经达到一定的临界点了,才导致了内存溢出了。
至此,我们知道了问题的根源所在,那么我们只要逆向思维“如果不让window有分配Idea内存,Idea分配给Project内存的机会,或者换一种编译的方式”,那我们这个错误不就是解决了么!
使用ant编译是不消耗操作系统给你idea分配的内存。ant编译的原理与idea是分开的。Ant编译直接消耗的系统内存(windows),所以不需要消耗idea的内存。就算Idea的内存分配的再小也是不会影响ant编译,所以不会报错。
基本上每一个Java Project中都会有一个名叫native.xml的ant编译解析文件,至于这个文件中的内容和用法我这里就不多作介绍了。
只要保证Native.xml文件中有如下代码就可以解决此问题了,至于你其它的代码互不影响,该怎么写还是怎么写。下面主要是3个方面的配置,一个是将src目录下面的文件编译输出到Classes目录下,第二个是转码,第三个是拷贝conf文件夹下面的配置文件。这三个配置都是可以单独使用和运行的,这里我们想要解决Idea的问题,就引出第四个配置“解决Idea编译报系统资源不足的错误”的配置,具体怎么配置代码如下图所示。
如果你还没有把native文件设置成ant编译文件,那也不用急,只需要在右边的Ant Build的对话框中找到那个小加号点击后就会出现
选择对话框,你只要找到你的native.xml文件的路径就好了。配置成功后你就会看到下图右边的菜单项了。
这时你直接双击“解决Idea编译报系统资源不足的错误”这个选项,Ant就去执行它的任务去了。编译成功后会出现如下提示信息窗口。至此,我要恭喜你,我们已经解决了Idea编译出现系统资源不足的错误。
接下来找到上面的服务配置对话窗口,然后去掉Make和Build“test”artifact的选项,最后启动服务就好了。
Ps:我这里用的是Tomcat,如果你用别的应用服务器,此操作依旧。
方案二是我在方案一之后才发现的解决方案,其只需要简单的配置一下就好了。
如下图,打开设置面板,找到Java Compiler项,将最大内存大小修改成原来的两倍就好了。
方案三是方案二的扩展,与方案二不同的是编译类的方式不同(这里我们选择Eclipse编译方式),但是最大内存大小还是需要扩大,如下图