如何使用Grails交互模式提升工程启动速度?
李小翔
2013-12-20 17:00

内容列表

Grails 2.0 后，新增了一种交互模式，用于启动工程、执行命令。
交互模式下，run-app 然后 stop-app 后，由于大量的信息（包括类里的静态变量）依然会缓存在内存里，因此再次 run-app 时，启动速度和运行速度会有很大的提升。
BroFramework、BroBPM 目前也可以支持交互模式的启动，并且做了一些额外的优化，比如第二次 run-app 时，流程定义不会重新解析了。
使用交互模式的步骤：
如果工程未编译，先编译一下 g compile
不带参数运行 g，进入交互模式
运行 run-app，停服务器运行 stop-app，退出为 exit 或者 Ctrl+C
不过交互模式也并非完美，比如：
如果反复出现莫名的错误，导致运行不正常，一般可以 exit 后，重新编译一下再启动
内存消耗比较大，多次启停后，如果发现速度明显变慢，可以先 exit 后重新启动
某些 java/groovy 类无法热加载，除非 exit
此外，如果需要在应用中判断是否是通过交互模式启动的，有两种方式：
bropen.toolkit.utils.grails.GrailsUtils.isInteractiveMode()
”true”.equals( System.getProperty(”grails.interactive.mode.enabled”) )