我们正在尝试加载测试GWT应用程序(2.0.4),其中所有小部件都在一个页面上加载,并且在加载页面时它会进行近20次rpc调用。
服务器:JBoss 5,我们正在使用JConsole监视堆内存。
在负载测试期间,我们注意到即使对于最小用户数,堆内存也会增加到最大值。然而,一旦gc被触发,内存就会被回收。
有人可以解释为什么服务器上的GWT应用程序的内存利用率(堆内存)如此之高,即使对于少数用户也是如此?
我们正在使用Hibernate + Spring框架。
答案 0 :(得分:1)
1)通过组合他们获取的数据,有助于减少应用程序屏幕启动时GWT RPC调用的数量。加载多个RPC调用往往会阻塞浏览器和服务器上的大量资源。
2)分析您是否需要首先获取RPC调用的所有数据。
3)堆空间使用情况因您使用Hibernate,Dozer,Gilead,懒惰/缓存加载等服务器端技术而异。
4)代码拆分和碎片合并可帮助您减少首次加载的应用javascript。
我猜你正在使用Dozer将hibernate实体复制到客户端的DTO / bean。尝试使用休眠C3P0连接池设置。