Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
framework-3.0.6
-
None
Description
To determine package space consistency, the resolver algorithm must calculate the package space of each module involved in the resolve operation. Since the resolver algorithm is stateless, it ends up re-calculating package spaces of resolved modules again and again. One of the more time consuming aspects of package space calculation is determining "uses" constraints, since they are transitive. The current algorithm re-calculates "uses" constraints for both resolved and resolving bundles. However, the "uses" constraints are only necessary for determining if a resolving bundle's package space is consistent; a resolved bundle's package space is consistent by definition (unless it is performing a dynamic import). Therefore, the resolver could be optimized by only calculating the "uses" constraints of resolving (and dynamically importing) bundles and not doing so for resolved bundles.