Hua ye, Which version of V8 are you using? The current version of V8 does not invoke the garbage collector when creating new contexts and it hasn't since r4003 which was submitted in early March, 2010.
Cheers, Kasper On Sat, Dec 4, 2010 at 6:05 AM, hua ye <[email protected]> wrote: > Dears, > > Is there any way to boost the speed of v8 GC? > From my profiling when v8 creates a new context, it will execute a > full GC if the old context is disposed. The full GC costs most of the > time. > > Is there any idea to boost this, the following is my profiling result: > > Persistent<Context> v8::Context::New( > v8::ExtensionConfiguration* extensions, > v8::Handle<ObjectTemplate> global_template, > v8::Handle<Value> global_object) { > EnsureInitialized("v8::Context::New()"); > LOG_API("Context::New"); > ON_BAILOUT("v8::Context::New()", return Persistent<Context>()); > > // Enter V8 via an ENTER_V8 scope. > i::Handle<i::Context> env; > { > ENTER_V8; > #if defined(ANDROID) > // On mobile device, full GC is expensive, leave it to the system > to > // decide when should make a full GC. > #else > // Give the heap a chance to cleanup if we've disposed contexts. > > i::Heap::CollectAllGarbageIfContextDisposed(); > // > ******** Most of the time here > #endif > > ...... > ...... > ...... > > // Create the environment. > env = > i::Bootstrapper::CreateEnvironment( //%%%% > % create environment costs also too much time > Utils::OpenHandle(*global_object), > proxy_template, > extensions); > > // Restore the access check info on the global template. > if (!global_template.IsEmpty()) { > ASSERT(!global_constructor.is_null()); > ASSERT(!proxy_constructor.is_null()); > global_constructor->set_access_check_info( > proxy_constructor->access_check_info()); > global_constructor->set_needs_access_check( > proxy_constructor->needs_access_check()); > } > } > // Leave V8. > > if (env.is_null()) > return Persistent<Context>(); > return Persistent<Context>(Utils::ToLocal(env)); > } > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
