Project

General

Profile

Actions

Bug #9869

closed

Compliance on all reports is always computed, even when not necessary

Added by Nicolas CHARLES over 7 years ago. Updated about 7 years ago.

Status:
Released
Priority:
N/A
Category:
Performance and scalability
Target version:
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)


Related issues 1 (0 open1 closed)

Has duplicate Rudder - Bug #9864: getNodeStatusReports is called for each node, and is slow to compute PolicyMode InconsistencyRejectedFrançois ARMAND2016-12-28Actions
Actions

Also available in: Atom PDF