Improve performance of moz.build Schedules __or__
Categories
(Firefox Build System :: Task Configuration, task)
Tracking
(firefox69 fixed)
Tracking | Status | |
---|---|---|
firefox69 | --- | fixed |
People
(Reporter: bc, Assigned: bc)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
When I landed the patch from Bug 1522113 it broke the file-info bugzilla-automation since it increased the run time to over 2700 seconds. I've been looking into this and have found that the problem is with Files __iadd__
self['SCHEDULES'] = self['SCHEDULES'] | v
This calls Schedules __or__
rv = Schedules()
which creates a new instance of Schedules each time initializing the two properties every time even though they are not used
self._inclusive = TypedList(Enum(*schedules.INCLUSIVE_COMPONENTS))()
self._exclusive = ImmutableStrictOrderingOnAppendList(schedules.EXCLUSIVE_COMPONENTS)
You can see the current behavior with the base try push. The bugzilla job takes 33 minutes.
Using the moz.build changes from bug 1522113 we can see the bugzilla bustage.
However a very simple change to allow the Schedules constructor to take optional arguments for inclusive and exclusive improves the speed greatly and allows the bugzilla job with the moz.build changes to complete in only 12 minutes.
Assignee | ||
Comment 1•5 years ago
|
||
Comment 3•5 years ago
|
||
bugherder |
Description
•