If I iterate the following steps: auto contents = buffer->Externalize(); buffer->Neuter();
auto newBuffer = ArrayBuffer::New(isolate, contents.Data(), contents.ByteLength(), v8::ArrayBufferCreationMode::kInternalized); V8 repeatedly triggers full mark-and-sweep GC passes even though the size of the external heap is not increasing. This is because creating an internalized ArrayBuffer from existing memory adjusts v8s external heap estimate upward, but externalizing/neutering the same array does not appear to adjust that estimate downward. (See api.cc and runtime-typedarray.cc). I have a reproduction using iojs-3.2.0 (v8 version 4.4.63) here: https://github.com/mlogan/arraybuffer-gc This seems undesirable, although I can imagine there might be other cases where this is desirable behavior. Let me know if this should be considered a bug, I'm happy to file it. Thanks, Mark -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.