优化部署在Raspberry Pi上的Grails应用程序的内存消耗

优化部署在Raspberry Pi上的Grails应用程序的内存消耗,grails,tomcat7,raspberry-pi,Grails,Tomcat7,Raspberry Pi,我已经使用Grails2.1.1开发了一个应用程序,我正试图将它部署在Raspberry Pi(最新的模式B,内存512MB)上,使用java 1.8.0-ea+Tomcat7。但是当我启动tomcat服务器时,部署应用程序大约需要30分钟,然后服务器的响应时间很长。我检查了内存,剩下大约10MB,但我想我的应用程序实际消耗的RAM比这个还要多 pi启动时的可用内存约为387MB。我尝试部署一个干净的应用程序,其中没有任何内容,只有默认的“GrailsCreateAppMyApp”生成的内容,可

我已经使用Grails2.1.1开发了一个应用程序,我正试图将它部署在Raspberry Pi(最新的模式B,内存512MB)上,使用java 1.8.0-ea+Tomcat7。但是当我启动tomcat服务器时,部署应用程序大约需要30分钟,然后服务器的响应时间很长。我检查了内存,剩下大约10MB,但我想我的应用程序实际消耗的RAM比这个还要多

pi启动时的可用内存约为387MB。我尝试部署一个干净的应用程序,其中没有任何内容,只有默认的“GrailsCreateAppMyApp”生成的内容,可用内存下降到107MB。因为我需要SpringSecurityCore和SpringSecurityUI插件,所以我还尝试了一个带有这些插件的干净应用程序。在这种情况下,可用内存降至88MB


那么有没有办法(优化代码或部署)将grails应用程序的内存消耗控制在200MB左右,因为我还需要在同一个Pi上部署一些其他东西?我还在应用程序中使用了Hibernate、可搜索插件和quartz。还是我应该放弃,因为这是不可能的

我不建议在Raspberry Pi上运行任何非“Hello World”风格的Grails应用程序

一般来说,512MB的RAM是最低要求,以便在中小型应用程序上具有良好的性能

Tomcat内存使用率+512MB内存上的应用程序内存使用率在Raspberry Pi上看起来不太好

参见Igor的第二个答案


请考虑其他选择Spring MVC或更轻量级(不太多代理,Web框架中的低反射量等)。事实上,这些天来我一直在调整内存和tomcat,发现实际上没有办法显著减少内存消耗。然而,我没想到会有很多人同时使用这个应用程序。因此,我最终设法将Jetty用作独立服务器,并删除了部署的war/jar文件中许多不必要的包。启动服务器的性能和gsp页面的响应时间可以接受。