[KULRICE-6757] KSPD: Investigate Optimization options for ViewServiceImpl Created: 17/Feb/12  Updated: 16/Jan/15

Status: In Progress
Project: Kuali Rice Development
Component/s: Development, User Experience (UX)
Affects Version/s: 2.2.0-m4
Fix Version/s: Backlog
Security Level: Public (Public: Anyone can view)

Type: Task Priority: Major
Reporter: Matt Sargent Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Old
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Microsoft Excel VideServiceImpl-buildView.xlsx    
Issue Links:
relates to KULRICE-6557 Improve Performance and Memory Consum... Closed
Similar issues:
KULRICE-6706KSPD: Updates to JSON version
KULRICE-6588Rice: KSPD explore Yourkit for Performance Testing
KULRICE-46Investigate SSO options for Rice
KULRICE-9045ViewServiceImpl - buildView - DB Connections
KULRICE-10360Investigate a reset option for dialog groups
KULRICE-6719Add LOG level checks to logging in ViewServiceImpl buildView and getViewById
KULRICE-9432Optimize code in ViewHelperServiceImpl
KULRICE-13166Investigate better option to materialize sub objects in JPA
KULRICE-2673Optimize the RuleService.getDuplicateRuleId check
KULRICE-13211Investigate attachmentTypeCode and KIM Permissions.
Epic Link: Performance
Rice Module:
Rice Core, KRAD
Application Requirement:
KAI Review Status: Not Required
KTI Review Status: Not Required


In recent performance tests focusing on KRAD elements ViewServiceImpl has shown to be a potential spot in our code that could use optimization. Attached is a sheet with time breakdown for the ViewServiceImpl.bulidView which is particularly of interest.

Comment by Matt Sargent [ 17/Feb/12 ]

ViewServiceImpl.bulidView java melody reported times during load test.

Comment by Jerry Neal (Inactive) [ 26/Mar/12 ]


This relates to the other performance Jira I assigned you.


Comment by Martin Taylor (Inactive) [ 16/May/12 ]

Hi Jerry,

Can you provide the steps of the performance test so I can replicate them from my local environment?



Comment by Jerry Neal (Inactive) [ 16/May/12 ]

Hi Martin,

For testing:

1) KRAD Tab -> KRAD Testing - KNS L&F Channel -> Uif Components (Kitchen Sink)
2) Click 'Collections' on left menu

If you have just started up the server, click the collections page once to compile before running the profiler. I have been just profiling the initial render of the collections page.


Comment by Martin Taylor (Inactive) [ 16/May/12 ]

reviewed snapshot on yourkit of the collection loading. In 9s call, found beandefinitionvalueresolver, the template tags, and the ViewServiceImpl.buildView to be some of the longest times.

Comment by Jerry Neal (Inactive) [ 17/May/12 ]

Thanks Martin.

Please focus on the buildView call. I will be taking a look at the other two.


Comment by Martin Taylor (Inactive) [ 18/May/12 ]

Notes: switched to app dynamics lite for some testing. Showed several calls related to getViewById (2,3,5 sec); tracing back with yourkit it was between its UifDictionaryIndex and the Beans generated/populated. Did some searching for ways to improve speed with bean generation/population but didn't come up with any solutions yet.

Comment by Jerry Neal (Inactive) [ 19/May/12 ]


For now just focus on the build view method. I have some ideas on the getview and template rendering. On the build view, if we could narrow down a method that is either getting call many times (and we could make some gains by gaining a few milliseconds for each call) that would give us something to start with.


Comment by Martin Taylor (Inactive) [ 22/May/12 ]
  • testing getCanonicalName in the CloneUtils::getFields to see if I can improve performance there
Comment by Martin Taylor (Inactive) [ 31/May/12 ]

Spending time trying to make use of the KRADTestCase and junit-performance in the testing of collectionGroupBuilder, Running into issues when building the Uif objects (running performInitialization at part of the before). Need to find out more about the cloneUtils and why they are used in place of a pre-existing solution (XStream, another java deep cloning util) and if one of those tools would work/would be faster (via kradtestcase/junit-pref)

Comment by Jessica Coltrin (Inactive) [ 16/Oct/12 ]

moving non-blocker and non-critical m4 Jiras to 2.2-backlog

Generated at Fri Jul 03 23:46:16 CDT 2020 using JIRA 6.1.5#6160-sha1:a61a0fc278117a0da0ec9b89167b8f29b6afdab2.