Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization Genstrascharray优化效益_Optimization_Jsp_Jboss - Fatal编程技术网

Optimization Genstrascharray优化效益

Optimization Genstrascharray优化效益,optimization,jsp,jboss,Optimization,Jsp,Jboss,我正在研究可用于优化JBoss 5.1.0性能的选项 我正在考虑的一个选项是在/server//deployers/jbossweb.deployer/web.xml中将genstrascharray设置为true。这会影响从.jsp生成.java代码 注释将此标志描述为: 文本字符串是否应该生成为字符数组,以在某些情况下提高性能 关于这一点,我有几个问题 这是在JSP页面的动态部分生成字符串(即每次调用该页面)还是在静态部分生成字符串(即当.java是从JSP构建时) “在某些情况下”-这些情

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

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

注释将此标志描述为:

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

关于这一点,我有几个问题

  • 这是在JSP页面的动态部分生成字符串(即每次调用该页面)还是在静态部分生成字符串(即当.java是从JSP构建时)
  • “在某些情况下”-这些情况是什么?在什么情况下性能更差
  • 这会加快.java的生成、.class的编译还是.class的执行
  • 在更技术的层面上(答案可能取决于第1部分的答案),为什么使用字符数组可以提高性能
  • 提前谢谢


    Rich

    使用此设置,所有
    字符串
    值都声明为
    静态字符[]
    ,如下所示:

    static char[] _char_array_1 = "someString".toCharArray();
    
    out.write(_char_array_1);
    
    out.write("someString");
    
    并按如下方式使用:

    static char[] _char_array_1 = "someString".toCharArray();
    
    out.write(_char_array_1);
    
    out.write("someString");
    
    而不是按如下方式使用:

    static char[] _char_array_1 = "someString".toCharArray();
    
    out.write(_char_array_1);
    
    out.write("someString");
    
    这有两个明显的好处:

  • char[]
    String
    具有更少的内存开销
  • 不再需要在每次
    out.write(string)
    时(隐式)调用
    tocharray()
  • 听起来像是微优化,但在一个访问量很大的网站上,这些小东西很重要


    顺便说一句,这个设置不是JBoss所特有的。具体来说,Apache Tomcat的JSP编译器也在每个JBoss AS和Sun Glassfish下使用。

    当您说,使用此设置时,所有字符串值都声明为static char[],我假设您的意思是在JSP生成的Java源代码中?您解释了更快的情况。但在什么情况下它会更慢或有其他缺点?@吉米:没有一种情况。至少不在JSP引擎中。如果要在自定义代码中执行此操作,那么在某个时刻执行新字符串(\u char\u array\u 1)
    时,它将变得毫无用处。