Closed Bug 440076 Opened 16 years ago Closed 16 years ago

checkInterfaceMethodOverrides is a performance problem

Categories

(Tamarin Graveyard :: Tracing Virtual Machine, defect)

defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: treilly, Assigned: stejohns)

Details

Attachments

(1 file, 1 obsolete file)

A sampling of starting a Flex app shows %95 of the time under this method.    There's some kind of combinatorial nightmare happening here...
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.
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.
Attached patch Patch (obsolete) — Splinter Review
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)
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)
Attached patch PatchSplinter Review
Same as before, but fix an incorrect assert, avoid redundant generation of TraitsData, and enlarge the TraitsData cache.
Attachment #325613 - Flags: review?(treilly)
Attachment #325613 - Flags: review?(treilly) → review+
changeset:   416:10d6a6e15441
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: