diff options
author | Andi McClure <andi.mcclure@xamarin.com> | 2016-08-19 23:07:22 +0300 |
---|---|---|
committer | Andi McClure <andi.mcclure@xamarin.com> | 2016-08-19 23:07:22 +0300 |
commit | db60c62ff99186297b40cf36708233c3d3bc56bc (patch) | |
tree | 635ed10d073c0748fadca36edf6a96ae567832e7 /docs | |
parent | ca48b5e9e228e0eaeae877b27d60313d87487d82 (diff) |
GC bridge: Include non-bridged objects in the exported object graph
Introduces a mechanism for non-bridged SCCs which lay between bridged
SCCs in the SCC forest to be reported to the bridge client. In this
version, such non-bridged SCCs are always reported. The result is that
most GCs get a little slower but GCs in which the "double fan" shape
appears (many bridged objects link to one C# object which links to
many bridged objects) become massively faster.
Because before clients were allowed to assume exported SCCs were
always bridged, SGEN_BRIDGE_VERSION has been incremented.
Diffstat (limited to 'docs')
-rw-r--r-- | docs/sources/mono-api-gc.html | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/docs/sources/mono-api-gc.html b/docs/sources/mono-api-gc.html index 20d6cb9dc9b..cddef0364cb 100644 --- a/docs/sources/mono-api-gc.html +++ b/docs/sources/mono-api-gc.html @@ -40,9 +40,8 @@ <p>The output of the SCC analysis is passed to the `cross_references()` callback. It is expected to set the `is_alive` flag on those strongly connected components that it - wishes to be kept alive. Only bridged objects will be - reported to the callback, i.e., non-bridged objects are - removed from the callback graph. + wishes to be kept alive. The value of `is_alive` will be + ignored on any SCCs which lack bridges. <p>In monodroid each bridged object has a corresponding Java mirror object. In the bridge callback it reifies the Mono @@ -63,7 +62,7 @@ <div class="mapi-header"> enum { - SGEN_BRIDGE_VERSION = 4 + SGEN_BRIDGE_VERSION = 5 }; typedef enum { |