假设我有一个Swings Java应用程序,我设置的最小堆是64MB,最大堆是2GB,当用户启动应用程序时,会显示登录界面,此时应用程序使用64MB,权限?从我的Windows 7中,我可以看到java应用程序从操作系统的内存资源监视器中分配了64MB(实际上,它超过64MB,因为JVM需要一些内存来完成它的任务).
之后,用户执行了一些非常繁重的工作,然后应用程序使用2G.然后用户注销应用程序,再次显示登录屏幕(应用程序尚未关闭).此时应用程序使用64MB的实际内存(假设这是完美的内存管理应用程序),但是对于OS这个应用程序仍在使用2G的RAM,我可以在OS的资源监视器上看到它.
我希望我的应用程序在不需要使用大内存时将内存释放到操作系统.我可以在运行时使用java应用程序吗?
我的意思是当我的应用程序需要使用64MB的Ram,那么操作系统只给它64MB,当它需要2GB的RAM然后操作系统给它2GB,之后它需要64MB的ram然后操作系统再给它64MB,我不要浪费2000MB - 64MB = 1936MB.
我能这样做吗?
谢谢,