[Webkit-unassigned] [Bug 6083] REGRESSION: 5-10% performance regression on JS iBench from getter/setter change
bugzilla-daemon at opendarwin.org
bugzilla-daemon at opendarwin.org
Fri Dec 16 08:36:28 PST 2005
http://bugzilla.opendarwin.org/show_bug.cgi?id=6083
darin at apple.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |andersca at mac.com
Priority|P2 |P1
------- Additional Comments From darin at apple.com 2005-12-16 08:36 -------
I can't believe I didn't notice the use of the virtual function type() in the very hot get function.
One possibility is setting a special bit pattern in the low two bits of the GetterSetterImp* ala the
01 tag mask used in SimpleNumber. Then you can check if a property value is a GetterSetterImp*
without dispatching to type().
Unfortunately, that might slow down garbage collection since the mark function in the property
map would have to know about this convention.
Another possibility is to not have the GetterSetterImp be garbage collected at all, since they are
uniquely owned by a particular property slot in a property hash table. So we can teach the
property hash table about some special pointer convention and give them sole ownership.
I think with this suggested design we'd have only a single mask and branch in the hot
getOwnPropertySlot function so we'd probably be "back in business".
--
Configure bugmail: http://bugzilla.opendarwin.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
More information about the webkit-unassigned
mailing list