Status: New
Owner: ----

New issue 2654 by [email protected]: Snapshot::NewContextFromSnapshot() takes a lot of time after a major GC
http://code.google.com/p/v8/issues/detail?id=2654

To repro:

1. Use DumpRenderTree to run this:

<html>
<head>
<script>
function create_iframe() {
    var iframe = document.createElement("iframe");
    document.body.appendChild(iframe);
    document.body.removeChild(iframe);
}
function do_test() {
    for (var i = 0; i < 1000; ++i) {
       create_iframe();
    }
}
</script>
</head>
<body onload="do_test()">
</body>
</html>

2. Put some debug prints in V8GCController::minorGCPrologue / majorGCPrologue. Put timing debug prints around Snapshot::NewContextFromSnapshot(); in Genesis::Genesis.

The timing code used for this was this crude version:
struct timeval tv_start, tv_stop;
gettimeofday(&tv_start, NULL);
<stuff>
gettimeofday(&tv_stop, NULL);
fprintf(stderr, "snapshot deserialization %ld\n", 1000000 * (tv_stop.tv_sec - tv_start.tv_sec) + tv_stop.tv_usec - tv_start.tv_usec);

Observation: Normally Snapshot::NewContextFromSnapshot() takes around 100 microseconds, but there are bumps where it takes up to 24000 microseconds. These bumps always occur right after a major gc (though, after some major gcs there is no bump).


--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to