Struts2的慢要追溯到它的前身Webwork了,目前已知的主要原因包括:复杂的拦截器链、OGNL表达式解析、Struts2的标签等。
spring + spring JdbcTemplate + spring mvc
struts2的核心是xwork,因为用到了ThreadLocal模式,所以那些Web容器中的对象会跟着当前Thread一跟到底,所以造成了struts2是很占用内存的,尤其是高并发的情况下,如果request的生命周期很长,你会看到内存不断上升。这个是struts2在性能上的一个问题,但是这个却能支撑起其他web框架无法支持的功能。
struts2因为是使用instance-per-request的因此会导致大量的短生命周期对象产生而需要对jvm参数调整。
struts2的default interceptor stack,按需裁剪吧,因为没调用一次,都会触发这个拦截器。
spring + spring JdbcTemplate + spring mvc
struts2的核心是xwork,因为用到了ThreadLocal模式,所以那些Web容器中的对象会跟着当前Thread一跟到底,所以造成了struts2是很占用内存的,尤其是高并发的情况下,如果request的生命周期很长,你会看到内存不断上升。这个是struts2在性能上的一个问题,但是这个却能支撑起其他web框架无法支持的功能。
struts2因为是使用instance-per-request的因此会导致大量的短生命周期对象产生而需要对jvm参数调整。
struts2的default interceptor stack,按需裁剪吧,因为没调用一次,都会触发这个拦截器。