genStrAsCharArray优化的好处

时间:2010-06-15 13:51:30

标签: optimization jsp jboss

我正在研究可用于优化JBoss 5.1.0性能的选项。

我正在考虑的其中一个选项是在genStrAsCharArray中将true设置为<JBOSS_HOME>/server/<PROFILE>/deployers/jbossweb.deployer/web.xml。这会影响从.JSPs生成.java代码。

评论将此标志描述为:

  

是否应将文本字符串生成为char数组,以便在某些情况下提高性能?

我对此有几个问题。

  1. 这是在JSP页面的动态部分中生成字符串(即每次调用页面)还是在静态部分中生成字符串(即从JSP构建.java时)?
  2. “在某些情况下” - 这些是哪些案例?表现更差的情况是什么?
  3. 这是否会加速.java的生成,.class的编译或.class的执行?
  4. 在更技术层面(对此的答案可能取决于第1部分的答案),为什么使用char数组可以提高性能?
  5. 提前致谢

1 个答案:

答案 0 :(得分:2)

使用此设置,所有String值都声明为static char[],如下所示:

static char[] _char_array_1 = "someString".toCharArray();

并使用如下:

out.write(_char_array_1);

而不是按如下方式使用:

out.write("someString");

这有两个明显的好处:

  1. char[]的内存开销低于String
  2. toCharArray()不再需要(隐式)调用每个out.write(string)
  3. 听起来像微优化,但在访问量很大的网站上,这些小部分很重要。

    这种设置不是JBoss AS特有的。它是Jasper特定的,Apache Tomcat的JSP编译器,也用于每个JBoss AS和Sun Glassfish。