Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.3.1
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Similar issues:
      KULRICE-12658MultiFileUpload freemarker templates for component and row templates
      KULRICE-10436Demo LIbrary, Layout Managers, CssGridLayout and many others, inline Freemarker Exception
      KULRICE-11140AFT Failure KRAD Demo Labs KSA Transaction inline Freemarker Exception
      KULRICE-11536AFT Failure Rice Sampleapp Krad Configuration clicking all day checkbox inline Freemarker exception
      KULRICE-8710Template Browser Mob tests with freemarker
      KULRICE-10340KRAD Demo Library Account Multi-Value Lookup inline Freemarker exception searching when result checked.
      KULRICE-10421AFT Failure: DemoLibraryCollectionFeaturesLightTableSmokeTest inline freemarker exception
      KULRICE-11869FreeMarker error in testTransactionView
      KULRICE-7901JSP templates replaced with Freemarker
      KULRICE-10532KRAD Demo Library Freemarker Exception in header.ftl
    • Epic Link:
    • Rice Module:
      KRAD
    • Sprint:
      2.3.1 Sprint 2
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      Based on analysis recorded in KULRICE-10260, FreeMarker rendering of complex views is in part impacted by excessive BeansWrapper method invocation centered around high-traffic macros such as script and template.

      To reduce this introspection overhead and improve overall performance of view rendering at the FreeMarker phase, provide a mechanism for passing FreeMarker rendering control to inline Java code then convert targeted macros to use this inline mechanism instead of handling expensive internal rendering logic through the exclusive use of .ftl template code.

      Initial targeted Macros are script.ftl and template.ftl. Once these have been converted, an additional pass at analysis and identification of targeted macros using Performance Medium should lead to further opportunities to improve performance.

      Original estimate:

      • 4h - Implementation of FreeMarker extensions to support inline processing.
      • 3h - Conversion of script and template to inline.
      • 4h - Repeat analysis and identification of additional targeted macros.
      • 2h - Conversion of additional macros to inline.
      • 2h - Code clean up and prep for release.

      Mark

        Issue Links

          Activity

          Mark Fyffe (Inactive) made changes -
          Field Original Value New Value
          Epic Link KULRICE-10089 [ 120211 ]
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 1 day, 6 hours [ 50400 ] 7 hours [ 25200 ]
          Time Spent 7 hours [ 25200 ]
          Worklog Id 88015 [ 88015 ]
          Mark Fyffe (Inactive) made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          Mark Fyffe (Inactive) made changes -
          Mark Fyffe (Inactive) made changes -
          Comment [ Repeated from KULRICE-10353 - Local Performance Medium timings are down to 2.6s

          Converted collectionGroup and stacked templates to inline processing based on repeat analysis.

          After removing internal profiling, I'm now observing local Performance Medium runs as fast as 2.5s total request time - FreeMarker rendering time observed locally is down to 500ms-800ms.

          {noformat}
          2013-09-03 08:02:09,285 [http-8080-2] u:/d: INFO org.kuali.rice.krad.uif.util.ProcessLogger - KRAD Process Trace (request): Servlet Request /kr-krad/labs
            at org.kuali.rice.krad.uif.util.ProcessLoggingFilter.doFilter(ProcessLoggingFilter.java:69)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          Initial Memory Usage: 399.912M/935.750M/935.750M - 42% free
          pre-handle..............................00:00.000 00:00.000 399.912M 0
          build-view:Lab-PerformanceMedium........00:00.125 00:00.125 344.940M -54.970M
          build-view-params:Lab-PerformanceMedium.00:00.000 00:00.125 344.940M 0
          build-view-backup-params:Lab-Performance00:00.000 00:00.125 344.940M 0
          perform-lifecycle:Lab-PerformanceMedium.00:00.000 00:00.125 344.940M 0
          apply-model:Lab-PerformanceMedium.......00:00.063 00:00.188 475.445M 130.504M
          apply-comp-model:Lab-PerformanceMedium..00:00.000 00:00.188 475.445M 0
          apply-model-end:Lab-PerformanceMedium...00:01.031 00:01.219 232.450M -242.995M
          perform-lifecycle-after-model:Lab-Perfor00:00.000 00:01.219 232.450M 0
          perform-lifecycle-model-reindex:Lab-Perf00:00.000 00:01.219 228.941M -3.508M
          perform-lifecycle-finalize:Lab-Performan00:00.687 00:01.906 232.375M 3.434M
          perform-lifecycle-final-reindex:Lab-Perf00:00.016 00:01.922 228.809M -3.566M
          perform-lifecycle-final:Lab-PerformanceM00:00.000 00:01.922 228.809M 0
          validate-view:Lab-PerformanceMedium.....00:00.000 00:01.922 228.809M 0
          post-handle.............................00:00.000 00:01.922 228.809M 0
          after-completion........................00:00.672 00:02.594 238.001M 9.192M
          after-completion-end....................00:00.031 00:02.625 237.676M -333.460k
          Processing Complete.....................00:00.000 00:02.625 237.676M 0
          Counters:
            bean-property-read: 18090 (00:00.000/00:00.016/00:00.000)
              longest : KradLabsForm:mediumCollection2[1].subList[0]
            bean-property-write: 29665 (00:00.000/00:00.016/00:00.000)
              longest : Disclosure:bindingInfo.bindToForm
          Elapsed Time: 00:02.625
          Memory Usage: 237.676M/868.062M/910.250M - 27% free
          Memory Delta: -162.234M/868.062M/910.250M - -18% free - tot delta: -67.687M
          {noformat}

          Will work next weekend to clean up and commit this effort.

          Mark ]
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 7 hours [ 25200 ] 5 hours [ 18000 ]
          Time Spent 7 hours [ 25200 ] 1 day, 1 hour [ 32400 ]
          Worklog Id 88050 [ 88050 ]
          Jerry Neal (Inactive) made changes -
          Fix Version/s 2.3.1 [ 17053 ]
          Jerry Neal (Inactive) made changes -
          Sprint 2.3.1 Sprint 2 [ 64 ]
          Jerry Neal (Inactive) made changes -
          Rank Ranked higher
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 5 hours [ 18000 ] 4 hours [ 14400 ]
          Time Spent 1 day, 1 hour [ 32400 ] 1 day, 2 hours [ 36000 ]
          Worklog Id 88227 [ 88227 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue fixes KULRICE-10423 [ KULRICE-10423 ]
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 4 hours [ 14400 ] 2 hours [ 7200 ]
          Time Spent 1 day, 2 hours [ 36000 ] 1 day, 5 hours [ 46800 ]
          Worklog Id 88245 [ 88245 ]
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 2 hours [ 7200 ] 1 hour [ 3600 ]
          Time Spent 1 day, 5 hours [ 46800 ] 1 day, 6 hours [ 50400 ]
          Worklog Id 88426 [ 88426 ]
          Mark Fyffe (Inactive) made changes -
          Remaining Estimate 1 hour [ 3600 ] 0 minutes [ 0 ]
          Time Spent 1 day, 6 hours [ 50400 ] 2 days [ 57600 ]
          Worklog Id 88452 [ 88452 ]
          Mark Fyffe (Inactive) made changes -
          Worklog Id 88452 [ 88452 ]
          Mark Fyffe (Inactive) made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue is related to KULRICE-9774 [ KULRICE-9774 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue relates to KULRICE-9423 [ KULRICE-9423 ]
          Mark Fyffe (Inactive) made changes -
          Link This issue relates to KULRICE-9794 [ KULRICE-9794 ]
          Jessica Coltrin (Inactive) made changes -
          Issue Type New Feature [ 2 ] Improvement [ 4 ]
          Jerry Neal (Inactive) made changes -
          Component/s Development [ 11244 ]
          Component/s User Experience (UX) [ 13465 ]
          Component/s Performance [ 13588 ]
          Jessica Coltrin (Inactive) made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              Mark Fyffe (Inactive)
              Reporter:
              Mark Fyffe (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 1 day, 6 hours Original Estimate - 1 day, 6 hours
                1d 6h
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 2 days
                2d

                  Agile

                    Structure Helper Panel