`
txidol
  • 浏览: 52342 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

【便利贴】Struts性能优化

阅读更多

Performance tuning

转载官网,少许翻译

The following are some tips and tricks to squeeze the most performance out of Struts 2.

Important OGNL update
For Struts 2 versions before 2.3: the OGNL version 3.0.3 library is a drop-in replacement for older OGNL jars, and providesmuchbetter performance. See the following Jira issue for more information:https://issues.apache.org/jira/browse/WW-3580

Turn off logging and devMode. 关掉日志与开发模式

devModeallows reloading of configuration and validation related files, but because they happen on each request, this setting will totally kill your performance.
When using logging, make sure to turn off logging (esp. Freemarker generates a LOT of logging), and check if a level is enabled before printing it, or you will get the cost of the String parsing/concatination anyways.

Use the Java Templates 使用Java模板

If you use the simple theme, and do not overwrite any of the FreeMarker templates, consider using thejava templates, which provide a drop in replacement for most tags, and are a lot faster than the regular tags.

Do not use interceptors you do not need. 不要使用拦截器,除非你真的需要

If you do not require a full stack of interceptors for an Action, then try using a different one (basicStack), or remove interceptors you do not need. Remove the I18nInterceptor interceptor if you don't need it, as it can cause a session to be created.

Use the correct HTTP headers (Cache-Control & Expires). 返回使用正确的HTML头部

When returning HTML views, make sure to add the correct headers so browsers know how to cache them.

Copy the static content from the Struts 2 jar when using the Ajax theme (Dojo) or the Calendar tag.拷贝struts jar包静态文件出来

Struts 2 uses some external javascript libraries and cascading stylesheets for certain themes and tags. These by default are located inside the Struts 2 jar, and a special filter returns them when requesting a special path (/struts). Although Struts 2 can handle these requests, an application/servlet container is not optimized for these kind of requests. Consider moving these .js and .css files to a seperated server (Lighttpd, Apache HTTPD, ..).

Create a freemarker.properties file in your WEB-INF/classes directory. 设置freemarker.properties模板更新延时时间

Create the freemarker.properties file and add the following setting (or whatever value you deem fitting):

template_update_delay=60000

This value determines how often Freemarker checks if it needs to reloads the templates from disk. The default value is 500 ms. Since there is no reason to check if a template needs reloading, it is best to set this to a very large value. Note that this value is in seconds and freemarker will convert this value to milliseconds.

See also:Freemarker configuration properties

Enable Freemarker template caching 关闭Freemarker模板缓存

As of Struts 2.0.10, setting the propertystruts.freemarker.templatesCacheto true will enable the Struts internal caching of Freemarker templates. This property is set to false by default.

In Struts versions prior to 2.0.10, you had to copy the /template directory from the Struts 2 jar in your WEB_APP root to utilize Freemarker's built in chaching mechanism in order to achieve similar results.

The built in Freemarker caching mechanism fails to properly cache templates when they are retrieved from the classpath. Copying them to the WEB_APP root allows Freemarker to cache them correctly. Freemarker looks at the last modified time of the template to determine if it needs to reload the templates. Resources retrieved from the classpath have no last modified time, so Freemarker will reload them on every request.

When overriding a theme, copy all necessary templates to the theme directory. 覆盖主题时,拷贝所以模板(含父模板)

There's a performance cost when a template cannot be found in the current directory. The reason for this is that Struts 2 must check for a template in the current theme first before falling back to the parent theme. In the future, this penalty could be eliminated by implementing a missing template cache in Struts 2.

Do not create sessions unless you need them.不要创建Session,除非你需要,国际化拦截器会创建Session

Struts 2 does not create sessions unless asked to (for example, by having the createSession interceptor in your interceptor stack). Note that when you use SiteMesh however, a session willalwaysbe created (Seehttp://forums.opensymphony.com/thread.jspa?messageID=5688for details). The I18nInterceptor interceptor can create sessions, so make sure you remove it, if you don't need it.

When using Freemarker, try to use the Freemarker equivalent rather than using the JSP tags.使用模板时采用${}方式

Freemarker has support for iterating lists, displaying properties, including other templates, macro's, and so on. There is a small performance cost when using the S2 tags instead of the Freemarker equivalent (eg. <s:property value="foo"/> should be replaced by ${foo}).


分享到:
评论

相关推荐

    桌面便利贴桌面便利贴桌面便利贴

    桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴

    桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴

    桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴桌面便利贴

    桌面美丽便利贴

    记住这些事就交给简单的便利贴吧,你还在用传统纸质便利贴吗?从现在开始你可以丢掉传统便利贴,改用完全免费的桌面便利贴软件!把您的便笺“粘”在您的电脑桌面上,随时都能够在电脑屏幕上看到您的重要信息,既节约...

    便利贴小程序

    便利贴小程序

    WPF便利贴程序

    这是一个用WPF编写的便利贴程序,可以给自己留便利贴,也可以向局域网上的其他人发送便利贴。虽然代码没有经过规范化的整理,但可读性也不低。其中涉及到WPF、动画、C#局域网通信、WPF样式、模板、Windows托盘程序等...

    HTML5+CSS3便利贴

    HTML5+CSS3便利贴

    便利贴-V1.0.exe

    便利贴-V1.0,适用于全系列的Windows操作系统,是您桌面便利贴的绝佳工具。

    javascript愿望便利贴七夕代码

    javascript愿望便利贴七夕代码

    JS日历便利贴.rar

    JS日历便利贴.rar ,便利贴、备忘录的电子日历

    基于winform 开发的便利贴

    本人写的小程序-便利贴,简单实用

    MFC 便签 便利贴 源代码

    MFC 便签 便利贴 源代码,背景色,字体大小,窗口置顶

    Stickies(桌面便利贴软件)V8.0c免费安装版

    stickies是一款简单易用的电脑桌面便利贴软件,它的功能非常丰富,可以让用户再也不会忘记任何重要的事项、工作内容或是待办事项,甚至是一些小琐事,快来下载体验吧。 软件功能特色 stickies 文件虽然很小,但功能...

    任务管理便利贴PPT素材.pptx

    任务管理便利贴PPT素材.pptx,任务管理便利贴PPT,适用于分析任务状态更新等等各种情况,可以用在销售行业PPT中,项目汇报PPT中,任务管理PPT中,一个简单的任务管理便利贴,可以很清楚的罗列任务管理的完成情况

    创意便签便利贴设计PPT模板.rar

    创意便签便利贴设计PPT模板。一套很有创意的PowerPoint模板,采用便签便利贴图形设计。

    桌面便笺--桌面便笺,方便快速的便利贴

    桌面便笺,方便快速的便利贴 桌面便笺,方便快速的便利贴 桌面便笺,方便快速的便利贴 桌面便笺,方便快速的便利贴

    桌面便利贴

    桌面便利贴,再也不用买便利帖了,方便实用。

    电脑版便利贴V1.0

    记住这些事就交给简单的便利贴吧,你还在用传统纸质便利贴吗?从现在开始你可以丢掉传统便利贴,改用完全免费的桌面便利贴软件!把您的便笺“粘”在您的电脑桌面上,随时都能够在电脑屏幕上看到您的重要信息,既节约...

    ScreenPoster屏幕便利贴

    截图作为悬浮窗口在屏幕最上层显示。可以保存截图文件到临时文件夹。 用于将数据或图文内容截图置顶到屏幕上,避免多窗口切换。 C#私人打造,绿色免安装,替代snipaste,小巧易用。

    电子便利贴,电子标签

    好的便利方便你,好的标签送给你,还在为找个方便的电子软件烦恼吗?快点行动吧

    delphi 版 便利贴

    用delphi 开发的一款即时贴,具有桌面便利贴功能,同时具有闹钟,定时关机,定时提醒,关机等功能,皮肤,字体背景,闹铃声音等都可自行设定.

Global site tag (gtag.js) - Google Analytics