目前的项目是某学校内网+外网的项目。
外网先上线,测试发现速度不是很快,局域网访问的话切换一个页面要2-5s。因为客户催的急,更细化调优没有进行。项目使用Ehcache做Hibernate的二级缓存,而Ehcache还可以承担更多的任务,比如对网页服务器进行缓存。
学校外部网站的信息更新操作是很少的,大部分的时候页面都是固定的,但是访问页面要action->service->db 走一圈完全没必要嘛。使用EHcache,把当前页面缓存起来,跳过action。。。等的访问。
web.xml:
这里说一句废话,这个filter要放在struts2的过滤器之前。。。
ehcache.xml :
重启服务,刷新二次页面,第一次有hibernate的sql发出,第二次没有sql发出,速度明显加快。
外网先上线,测试发现速度不是很快,局域网访问的话切换一个页面要2-5s。因为客户催的急,更细化调优没有进行。项目使用Ehcache做Hibernate的二级缓存,而Ehcache还可以承担更多的任务,比如对网页服务器进行缓存。
学校外部网站的信息更新操作是很少的,大部分的时候页面都是固定的,但是访问页面要action->service->db 走一圈完全没必要嘛。使用EHcache,把当前页面缓存起来,跳过action。。。等的访问。
web.xml:
<filter>
<filter-name>CachePage1CachingFilter</filter-name>
<filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
</filter-class>
<init-param>
<param-name>suppressStackTraces</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>cacheName</param-name>
<param-value>CachePage1CachingFilter</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CachePage1CachingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
这里说一句废话,这个filter要放在struts2的过滤器之前。。。
ehcache.xml :
<cache name="CachePage1CachingFilter"
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="10000"
timeToLiveSeconds="10000"
overflowToDisk="true">
</cache>
重启服务,刷新二次页面,第一次有hibernate的sql发出,第二次没有sql发出,速度明显加快。