LGTM. On Wed, Oct 8, 2008 at 10:31 AM, <[EMAIL PROTECTED]> wrote:
> > Reviewers: Kevin Millikin, > > Description: > Minor adjustments to the object migration code: When copying > large objects we use memcpy. If this turns out to be a wash > on the benchmarks, I'd be happy to rip it out again. > > Please review this at http://codereview.chromium.org/6576 > > Affected files: > M src/heap.cc > > > Index: src/heap.cc > =================================================================== > --- src/heap.cc (revision 465) > +++ src/heap.cc (working copy) > @@ -733,11 +733,21 @@ > int size) { > void** src = reinterpret_cast<void**>((*source_p)->address()); > void** dst = reinterpret_cast<void**>(target->address()); > - int counter = size/kPointerSize - 1; > - do { > - *dst++ = *src++; > - } while (counter-- > 0); > > + // Use block copying memcpy if the object we're migrating is big > + // enough to justify the extra call/setup overhead. > + static const int kBlockCopyLimit = 16 * kPointerSize; > + > + if (size >= kBlockCopyLimit) { > + memcpy(dst, src, size); > + } else { > + int remaining = size / kPointerSize; > + do { > + remaining--; > + *dst++ = *src++; > + } while (remaining > 0); > + } > + > // Set the forwarding address. > (*source_p)->set_map_word(MapWord::FromForwardingAddress(target)); > > > > > > > -- Google Denmark ApS CVR nr. 28 86 69 84 c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen K, Denmark --~--~---------~--~----~------------~-------~--~----~ v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev -~----------~----~----~----~------~----~------~--~---
