Limit the number of transitions allowed per hidden class.
authorverwaest@chromium.org <verwaest@chromium.org>
Fri, 24 Oct 2014 05:29:54 +0000 (05:29 +0000)
committerverwaest@chromium.org <verwaest@chromium.org>
Fri, 24 Oct 2014 05:29:54 +0000 (05:29 +0000)
commit8189922e1e58d264e58a5fa89734172834824076
treeba6282015de9fe248e9cbfaaefdeeaadd6ef0a40
parent0ef073d556d10fb20dbae549eade97427701b891
Limit the number of transitions allowed per hidden class.

Each time a transition is added to a hidden class, the whole
transitions array must be copied, which causes poor performance
in some circumstances.  This change limits the maximum size of
the transition array, avoiding this behavior in the pathological
case.  For example, this improves the performance of the EtchMark
benchmark by nearly 60%.

BUG=v8:3616
LOG=
R=verwaest@chromium.org, svenpanne@chromium.org

Review URL: https://codereview.chromium.org/635883003

Patch from Kevin M. McCormick <mckev@amazon.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24857 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/heap/mark-compact.cc
src/objects-inl.h
src/objects.cc
src/objects.h
src/transitions-inl.h
src/transitions.cc
src/transitions.h
test/cctest/test-heap.cc