Tapestry 5
  1. Tapestry 5
  2. TAP5-95

Optimize page construction for repeated construction of the same page

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 5.0.15
    • Fix Version/s: 5.1.0.0
    • Component/s: None
    • Labels:
      None

      Description

      Construction of pages is probably the largest expense for any request, as it involves considerable work to identify what components to instantiate, what bindings to create, and what template tokens to be converted into what ComponentPageElements.

      It should be possible to devise a "page template" that is a list of commands for constructing a page. The current PageLoaderProcessor would generate that list of commands. Creating a page instance would be a matter of executing the commands. This would decrease the amount of time needed to generate the 2nd (and later) instances of a page, and would increase the likelyhood that common page elements for literal text could be re-used across page instances.

      Making page instance creation less expensive would allow Tapestry to more aggressively cull unused page instances (i.e., shorten the active window) while not sacrificing the ability to handle a request surge.

        Activity

        Hide
        Howard M. Lewis Ship added a comment -

        That was fun ... very funtional. Saw a 25-50% improvement in first page load time. Will vary considerably based on level of reuse and complexity of reused components. There's still a bit more room for optimizations.

        Show
        Howard M. Lewis Ship added a comment - That was fun ... very funtional. Saw a 25-50% improvement in first page load time. Will vary considerably based on level of reuse and complexity of reused components. There's still a bit more room for optimizations.

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Howard M. Lewis Ship
          • Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development