{"action":"created","issue":{"url":"https://api.github.com/repos/mono/mono/issues/1457","labels_url":"https://api.github.com/repos/mono/mono/issues/1457/labels{/name}","comments_url":"https://api.github.com/repos/mono/mono/issues/1457/comments","events_url":"https://api.github.com/repos/mono/mono/issues/1457/events","html_url":"https://github.com/mono/mono/pull/1457","id":52052956,"number":1457,"title":"Refactor weak-reference handling code in SGen","user":{"login":"evincarofautumn","id":729779,"avatar_url":"https://avatars.githubusercontent.com/u/729779?v=3","gravatar_id":"","url":"https://api.github.com/users/evincarofautumn","html_url":"https://github.com/evincarofautumn","followers_url":"https://api.github.com/users/evincarofautumn/followers","following_url":"https://api.github.com/users/evincarofautumn/following{/other_user}","gists_url":"https://api.github.com/users/evincarofautumn/gists{/gist_id}","starred_url":"https://api.github.com/users/evincarofautumn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evincarofautumn/subscriptions","organizations_url":"https://api.github.com/users/evincarofautumn/orgs","repos_url":"https://api.github.com/users/evincarofautumn/repos","events_url":"https://api.github.com/users/evincarofautumn/events{/privacy}","received_events_url":"https://api.github.com/users/evincarofautumn/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2014-12-15T23:20:16Z","updated_at":"2015-02-02T22:39:17Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mono/mono/pulls/1457","html_url":"https://github.com/mono/mono/pull/1457","diff_url":"https://github.com/mono/mono/pull/1457.diff","patch_url":"https://github.com/mono/mono/pull/1457.patch"},"body":"There are a few tables of GC handle data in `gc.c`, whose information was being duplicated by the hash tables in `sgen-fin-weak-hash.c`. Removing these hash tables and using the handle table directly is both simpler and considerably more efficient.\r\n\r\nTo do:\r\n\r\n * Reinstate the segregation of weak links by minor vs. major heap\r\n * Remove the need to make the GC lock recursive\r\n\r\nCC @schani\r\n"},"comment":{"url":"https://api.github.com/repos/mono/mono/issues/comments/72553842","html_url":"https://github.com/mono/mono/pull/1457#issuecomment-72553842","issue_url":"https://api.github.com/repos/mono/mono/issues/1457","id":72553842,"user":{"login":"schani","id":61363,"avatar_url":"https://avatars.githubusercontent.com/u/61363?v=3","gravatar_id":"","url":"https://api.github.com/users/schani","html_url":"https://github.com/schani","followers_url":"https://api.github.com/users/schani/followers","following_url":"https://api.github.com/users/schani/following{/other_user}","gists_url":"https://api.github.com/users/schani/gists{/gist_id}","starred_url":"https://api.github.com/users/schani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schani/subscriptions","organizations_url":"https://api.github.com/users/schani/orgs","repos_url":"https://api.github.com/users/schani/repos","events_url":"https://api.github.com/users/schani/events{/privacy}","received_events_url":"https://api.github.com/users/schani/received_events","type":"User","site_admin":false},"created_at":"2015-02-02T22:39:17Z","updated_at":"2015-02-02T22:39:17Z","body":"Also, Roslyn runs quite a bit slower with the lock-free weak links, and it's mostly not due to increased GC time.  Old:\r\n\r\n    Minor GC collections                : 586\r\n    Major GC collections                : 20\r\n    Minor GC time                       : 2324.14 ms\r\n    Major GC time                       : 2239.42 ms\r\n    Major GC time concurrent            : 0.00 ms\r\n    \r\n    real\t0m10.857s\r\n    user\t0m23.737s\r\n    sys\t0m1.718s\r\n\r\nNew:\r\n\r\n    Minor GC collections                : 584\r\n    Major GC collections                : 20\r\n    Minor GC time                       : 2585.61 ms\r\n    Major GC time                       : 2245.42 ms\r\n    Major GC time concurrent            : 0.00 ms\r\n\r\n    real\t0m13.121s\r\n    user\t0m29.497s\r\n    sys\t0m1.673s\r\n"}}