代码之家  ›  专栏  ›  技术社区  ›  ring bearer

Web应用程序性能和部署体系结构(Java)

  •  2
  • ring bearer  · 技术社区  · 14 年前

    关于Java Web应用程序部署及其对性能的影响,我有两个问题。 我们在服务器上部署了一个应用程序,JSP被分解到一个内容目录中(这意味着JSP不是战争的一部分)。 问题1:我知道这是一种开发方法,而不是任何其他环境。这种爆炸式部署是否会降低性能?

    现在,内容目录交叉装载(nfs share)到另一个硬件上,在那里我们运行serverb,它也使用JSP作为其内容。 当servera和serverb都在运行并使用相同的内容时,它能降低性能吗?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Stephen C    14 年前

    从性能角度来看,以分解形式(而不是在war文件中)部署JSP不会有任何不同。当部署了一个war文件时,它无论如何都会被解包。

    将内容(包括JSP)放在安装了NFS的文件系统中可以访问这些文件,如果您的NFS安装在错误的时间过时,则可能导致操作问题。这将在第一次使用JSP时发生,如果将JSP引擎配置为定期检查更改的JSP,也可能在其他时间发生。

        2
  •  1
  •   letronje    14 年前

    第一次需要任何JSP时,它将被编译成servlet并存储在Web容器的缓存中(至少Tomcat会这样做)。由于缓存文件夹不在NFS上,因此这不会影响Web Severer的性能。不过,预编译JSP可能是个好主意。

        3
  •  1
  •   Dean J    14 年前

    爆发战争应该稍微提高部署时间,但是服务器在部署时无论如何都会爆发战争文件。

    正如其他回复所指出的,JSP被转换成servlet,然后编译成.class字节码。这在用户第一次访问JSP时发生,并且 为用户产生延迟时间,特别是当它是一个复杂的页面时。解决此问题的最佳方法是预编译JSP。

        4
  •  0
  •   Mercy    14 年前

    如果应用程序的JSP是预编译的,并且编译功能在servlet容器中关闭,则不会影响应用程序的性能,因为JSP是编译到它们的.class文件中的,然后将由容器加载。