Right now it's a DoublyLinkedList, which is iterated during each collection. This contributes to some of the longish Eden pause times. A Vector would be more appropriate and would also allow ExecutableBase to be 2 pointers smaller.
Created attachment 245049 [details] Patch
Hi Mark :)
Created attachment 245062 [details] Patch
(In reply to comment #2) > Hi Mark :) Hello :-)
Comment on attachment 245062 [details] Patch r=me Good job! *claps*
Created attachment 245070 [details] GC logs before
Created attachment 245071 [details] GC logs after
Just as a data point, I've attached some GC timing logs gathered by running the Octane 2.0 benchmark in browser before and after this change. ClearUnmarkedExecutables goes from: [34505] ClearUnmarkedExecutables (All): 133.93ms (avg. 0.25, min. 0.00, max. 5.35, count 544) [34505] ClearUnmarkedExecutables (Eden): 121.88ms (avg. 0.24, min. 0.03, max. 5.35, count 506) [34505] ClearUnmarkedExecutables (Full): 12.05ms (avg. 0.32, min. 0.00, max. 3.55, count 38) to: [34530] ClearUnmarkedExecutables (All): 14.53ms (avg. 0.03, min. 0.00, max. 1.76, count 556) [34530] ClearUnmarkedExecutables (Eden): 13.22ms (avg. 0.03, min. 0.01, max. 1.76, count 518) [34530] ClearUnmarkedExecutables (Full): 1.30ms (avg. 0.03, min. 0.00, max. 0.66, count 38) overall time goes down as well. Before: [34505] Collect (All): 1499.15ms (avg. 2.76, min. 0.43, max. 42.51, count 544) [34505] Collect (Eden): 931.76ms (avg. 1.84, min. 0.51, max. 42.51, count 506) [34505] Collect (Full): 567.39ms (avg. 14.93, min. 0.43, max. 31.69, count 38) after: [34530] Collect (All): 1372.41ms (avg. 2.47, min. 0.25, max. 37.83, count 556) [34530] Collect (Eden): 813.91ms (avg. 1.57, min. 0.45, max. 37.83, count 518) [34530] Collect (Full): 558.51ms (avg. 14.70, min. 0.25, max. 25.97, count 38) (despite doing more collections :-)
Comment on attachment 245062 [details] Patch Clearing flags on attachment: 245062 Committed r178884: <http://trac.webkit.org/changeset/178884>
All reviewed patches have been landed. Closing bug.