[Mono-dev] Generic sharing: Good news, bad news, how to win big

Mark Probst mark.probst at gmail.com
Mon Apr 14 11:50:10 EDT 2008


Hey Rodrigo,

> Anyway, this would only make sense if freeing is something that happens
> enough to
>  justify the extra work.

I don't think freeing would happen often enough.  I'm actually more
concerned about the impact of the write barrier I'd need for the
hazard pointer, which would be used every time a slot is fetched from
a RGCTX.

> I was thinking more about collections. Do interfaces have a rgctx too?

No.  I'm not sure what I'd put into the RGCTX of an interface, anyway.
 What do you have in mind?

> I expected that for F# sharing would have saved some overall time since JIT
> activity is a lot smaller.

I had hoped for that, too, but it's not there.  Not that I'm terribly
unhappy, though - I saw generic sharing as mainly a memory
optimization.

> By the way, talking about the F# case, generic sharing compiles 27% less
> methods, but only reduces
>  the compiled code size by 6%. These numbers seen odd to me. Is generic code
> really that
> smaller than non-generic or is the added code for sharing support that
> result on these numbers?

I'll look into it in more detail, but it seems that generic methods
are usually very short, more so than non-generic methods.  And we do
generate code that's a bit longer, but not by much.

Mark


More information about the Mono-devel-list mailing list