checkInterfaceMethodOverrides is a performance problem

RESOLVED FIXED

Status

--
major
RESOLVED FIXED
11 years ago
11 years ago

People

(Reporter: treilly, Assigned: stejohns)

Tracking

Details

Attachments

(1 attachment, 1 obsolete attachment)

7.33 KB, patch
treilly
: review+
Details | Diff | Splinter Review
(Reporter)

Description

11 years ago
A sampling of starting a Flex app shows %95 of the time under this method.    There's some kind of combinatorial nightmare happening here...
(Reporter)

Comment 1

11 years ago
Maybe we need to remember work we've done during TraitsData loading?   Like we should only have to "check" things about a type once, not everytime a type is loaded into the cache, like flags on TraitsEnv could record work done already.    Maybe not directly related to this bug but might be a future work item, I see Flex apps causing a fair amount of churn in that 32 item cache.
(Assignee)

Comment 2

11 years ago
I think the code is just insanely stupid, doing many redundant rechecks. It wasn't a factor in shallow inheritance hierarchies so we didn't notice it. Working on a fix now.
(Assignee)

Comment 3

11 years ago
Created attachment 325609 [details] [diff] [review]
Patch

Tommy, I'm still testing this fix but I think it greatly improves the situation... try it and see if it helps.

(Also includes two unrelated fixes to avm.cpp and WeakRef that will be documented momentarily)
Attachment #325609 - Flags: review?(treilly)
(Assignee)

Comment 4

11 years ago
Comment on attachment 325609 [details] [diff] [review]
Patch

just found a flaw, hold on...
Attachment #325609 - Attachment is obsolete: true
Attachment #325609 - Flags: review?(treilly)
(Assignee)

Comment 5

11 years ago
Created attachment 325613 [details] [diff] [review]
Patch

Same as before, but fix an incorrect assert, avoid redundant generation of TraitsData, and enlarge the TraitsData cache.
Attachment #325613 - Flags: review?(treilly)
(Reporter)

Updated

11 years ago
Attachment #325613 - Flags: review?(treilly) → review+
(Assignee)

Comment 6

11 years ago
changeset:   416:10d6a6e15441
Status: ASSIGNED → RESOLVED
Last Resolved: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.