Actions
Bug #9869
closedCompliance on all reports is always computed, even when not necessary
Status:
Released
Priority:
N/A
Assignee:
Category:
Performance and scalability
Target version:
Pull Request:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:
Description
Class ComplianceLevel always computes compliance at instantiation; and a lot of them can be created (there is one per rapport, plus one per component, plus one per directive, plus one per rule, time the number of nodes)
This computation is by itself not that time consuming ( 11 division, and BugDecimal toDouble), but it adds up to a lot of unecessary computation, especially when object are then thrown away
Converting it all to lazy yields minimal improvement in 3.1 (between 5 to 30% improvement for compliance computations), and dramatic improvement in 4.0 (HomePage goes from 4s when 1000 nodes updated their promises to 1 s)
Actions