jetty重复编译jsp页面初探——一个配置提升5ms
来源:互联网 发布:json定义二维数组 编辑:程序博客网 时间:2024/04/26 03:05
进行测试时,发现jetty一直比jboss慢5ms。通过visualvm观察发现在如下代码处总是出现blocked情况:JspServletWrapper.java:356。通过btrace跟踪得知
在JspServletWrapper.java:356(使用的是glassfish的jsp解析类)行,一直在对应用中的jsp文件default.jsp的编译与解析,每一次都需要进行编译,而编译时必须取得对文件的互斥锁。由此导致响应变慢。
在jetty的webdefault.xml中新增配置如下:
<init-param> <param-name>development</param-name> <param-value>false</param-value></init-param>
由于这个参数默认为true,表示开发模式,每次都会解析jsp文件,修改之后jetty在有jsp页面的场景下应该速度会有所提升。参考文档:http://docs.codehaus.org/display/JETTY/Jsp+Configuration
具体源码参见glassfish版的jsp项目EmbeddedServletOptions.java中如下代码:
89行:privatebooleandevelopment = true; …… 525行:development = getBoolean(config, development, "development");
及glassfish版JspServletWrapper.java 353行的如下代码:
353行:if(!options.getUsePrecompiled() && (options.getDevelopment() || firstTime)){ // END S1AS 6181923 synchronized(this) { firstTime = false;// The following sets reload to true, if necessary ctxt.compile(); } }
在EmbeddedServletOptions中,使用webdefault.xml中的参数进行了初始化,未有参数设置时默认为true;JspServletWrapper中进行编译前会判断是否为开发模式,由于默认值为true,因此每次都会编译。
而tomcat版的JspServletWrapper.java进行编译jsp页面之前,没有进行development参数的判断,因此不存在开发模式导致每次进行编译的问题,代码如下:
312 if(options.getDevelopment() || firstTime ) {313 synchronized(this) {314 firstTime = false;315316 // The following sets reload to true, if necessary317 ctxt.compile();318 }319 }
结果为:增加了development为false的配置后,速度提升约5ms,这也就解析了jetty与jboss之间的差距为什么之前一直是5ms!
- jetty重复编译jsp页面初探——一个配置提升5ms
- Jetty:配置JSP支持
- Jetty的配置、部署与API使用——(2)通过Jetty的Java API运行一个Jetty服务器
- Jetty的配置、部署与API使用——(3)Linux下利用Jetty API运行一个Jetty服务器
- JFinal jetty maven配置jsp支持
- 防止页面表单重复提交,JSP页面加入 <s:token/> 以及Struts的相关配置详解
- JSP页面编译原理
- jsp页面编译过程
- JSP页面编译原理
- JSP页面编译原理
- Embedded Jetty IllegalStateException: Committed jsp重复提交问题
- 提升JSP页面响应速度的技巧
- JSP——web.xml中配置错误页面
- JSP连接MS SQL Server2000安装配置
- JSP到Servlet的编译过程初探
- JSP配置错误页面
- jsp页面ckeditor配置
- 配置Jsp错误页面
- 正则表达式--维基百科,自由的百科全书
- mysqldump备份还原和mysqldump导入导出语句大全详解 转
- RCU介绍
- EXT按钮事件
- jQuery获取,遍历和操作表单元素Select,checkbox,radio
- jetty重复编译jsp页面初探——一个配置提升5ms
- ASP.NET网站实现中英文转换(本地化资源)
- 菜鸟如何建立自己的网站
- 加载图片时内存溢出
- Microsoft Office Word 2010(zz)
- windows下登录samba服务器后无法访问linux下共享目录,提示没有权限。
- Blazeds体系结构
- FFT(快速傅里叶变换)C程序 (转载)
- 离散傅里叶变换及其快速算法 (转载)