Updates:
Status: Fixed
Comment #7 on issue 2060 by [email protected]: Segmentation fault
when using code compiled with contracts.coffee
http://code.google.com/p/v8/issues/detail?id=2060
Fixed in r11264 and r11279.
And now comes the long story. First of all, thanks for using the new
Harmony features, it's awesome to finally get some use-cases for them. The
above two revisions fix corner cases that can happen when either keys or
values in WeakMaps happen to fall onto pages the are then marked for
compaction by the GC. The crash you observed should be gone.
But your benchmark also revealed an issue when it comes to incremental
marking. The GC doesn't remove entries from WeakMaps when it performs
incremental marking, entries are instead treated as strong references. The
heap grows to about 750MB until a non-incremental emergency GC brings down
the size to 9MB again. I have opened issue 2070 to track that problem.
So running your benchmark with "--noincremental-marking" consumes far less
memory (i.e. up to 20MB) and improves performance. But I think it is time
to fix that.
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev