cache manifestparser expression parsing
Categories
(Firefox Build System :: Task Configuration, task)
Tracking
(firefox143 fixed)
| Tracking | Status | |
|---|---|---|
| firefox143 | --- | fixed |
People
(Reporter: bhearsum, Assigned: bhearsum)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
manifestparser's expression parsing repeatedly tokenizes the same text over and over, and also re-evaluates the same tokenized expression with the same values over and over.
On my local machine I measured the time between "Loading tasks for kind test" and "Generated xxxxx tasks for kind test" (this encompasses all of the time spent running test transforms, which is where this code is called from). I got the following results:
Without the patch: 88s, 91s, 90s
With the patch: 76s, 75s, 75s
I ran a few decision tasks on Try pushes with and without this patch and got the following results:
Without the patch: 106s, 107s, 106s
With the patch: 89s, 94s, 89s
So, clear savings in decision tasks as well, and at least in the case of my machine, about 30 seconds removed from the critical path of try results.
| Assignee | ||
Comment 1•10 months ago
|
||
At two points:
- The parsing of the raw expression from a manifest
- The evaluation of the expression with final values
Both of these things are done repeatedly.
On my local machine I measured the time between "Loading tasks for kind test" and "Generated xxxxx tasks for kind test" (this encompasses all of the time spent running test transforms, which is where this code is called from). I got the following results:
Without the patch: 88s, 91s, 90s
With the patch: 76s, 75s, 75s
I ran a few decision tasks on Try pushes with and without this patch and got the following results:
Without the patch: 106s, 107s, 106s
With the patch: 89s, 94s, 89s
So, clear savings in decision tasks as well, and at least in the case of my machine, about 30 seconds removed from the critical path of try results.
Comment 4•10 months ago
|
||
Backed out for causing multiple failures
- Backout link
- Push with failures
- Failure Log
- Failure line: TypeError: unhashable type: 'list'
[taskcluster:error] exit status 1
https://treeherder.mozilla.org/logviewer?job_id=521601670&repo=autoland
Failure line: AttributeError: module 'functools' has no attribute 'cache'
| Assignee | ||
Comment 5•10 months ago
|
||
self.version is a list, which cannot be hashed.
| Assignee | ||
Updated•10 months ago
|
Comment 8•10 months ago
|
||
Reverted this because it was causing multiple perftests failures.
- Revert link
- Push with failures
- Failure Log
- Failure line: TypeError: unhashable type: 'list'
| Assignee | ||
Comment 9•10 months ago
|
||
In another commit in this stack, we're relying on being able to hash values for some performance wins.
| Assignee | ||
Comment 10•10 months ago
|
||
(In reply to Serban Stanca [:SerbanS] from comment #8)
Reverted this because it was causing multiple perftests failures.
- Revert link
- Push with failures
- Failure Log
- Failure line: TypeError: unhashable type: 'list'
Thanks; I've got a new patch up that fixes this. I also audited for other calls that be passing unhashable types and couldn't find any others...
Comment 11•10 months ago
|
||
Comment 12•10 months ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/fa50019b3efc
https://hg.mozilla.org/mozilla-central/rev/868cd3b14c70
https://hg.mozilla.org/mozilla-central/rev/99f7057dbf2a
Description
•