Uploaded image for project: 'RESTEasy'
  1. RESTEasy
  2. RESTEASY-1197

Performance Issue: org.jboss.resteasy.spi.ResteasyUriInfo instantiation takes 20% of all the CPU time

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 3.1.0.Beta1, 3.0.20.Final
    • 3.0.11.Final
    • jaxrs
    • None
    • Hide

      servlet container: jetty 9

      web.xml:
      <web-app>

      <module-name>server</module-name>

      <listener>
      <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
      </listener>

      <servlet>
      <servlet-name>Server</servlet-name>
      <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
      <init-param>
      <param-name>javax.ws.rs.Application</param-name>
      <param-value>..</param-value>
      </init-param>
      <load-on-startup>1</load-on-startup>
      </servlet>

      <servlet-mapping>
      <servlet-name>Server</servlet-name>
      <url-pattern>/*</url-pattern>
      </servlet-mapping>

      <listener>
      <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>
      </listener>

      <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/applicationContext.xml</param-value>
      </context-param>

      </web-app>

      Show
      servlet container: jetty 9 web.xml: <web-app> <module-name>server</module-name> <listener> <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> </listener> <servlet> <servlet-name>Server</servlet-name> <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>..</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Server</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <listener> <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> </web-app>

      • org.jboss.resteasy.spi.ResteasyUriInfo is instantiated as part of the request handling by rest easy.
      • while profiling using your kit, 20% of the time is spent on this single call.
      • the request URL are of the form: http://hostname/path1_4char_string/path2_8digit_int

      for a simple request URL, this is way too much time spent on one single instantiation

        1. Test-3 (RestEasy_3.0.13.Final).jps
          493 kB
        2. Test-2 (RestEasy_3.0.13.Final).jps
          507 kB
        3. Test-1 (RestEasy_3.0.13.Final).jps
          495 kB
        4. ResteasyUriBuilder.java
          32 kB
        5. resteasy2.png
          resteasy2.png
          355 kB
        6. resteasy.png
          resteasy.png
          164 kB
        7. Encode.java
          14 kB

              rhn-support-asoldano Alessio Soldano
              karthikm-yahoo karthikeyan m. (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: