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