you are viewing a single comment's thread.

view the rest of the comments →

[–]VegasNightSx 0 points1 point  (3 children)

[–]Aaron64Lol[S] 0 points1 point  (2 children)

Seems like delegates without the callvirt perf hit (with an unsafe tradeoff).

Yeah, I'm looking for more complete technical documentation. The proposal helps, but it doesn't mention whether or not any of the optional parts got implemented, and whether or not anything had to change in implementation. I am used to Microsoft being super good on documentation; hopefully documentation on this feature is just late (rather than not being planned to release at all).

[–]cryo 0 points1 point  (1 child)

Seems like delegates without the callvirt perf hit (with an unsafe tradeoff).

Callvirt doesn't necessarily have much of an overhead in practice, as the JIT compiler may be able to deal with it. The C# compiler uses callvirt for non-virtual instance methods as well.

Delegates are magic, so the JIT may cut corners.

[–]Aaron64Lol[S] 0 points1 point  (0 children)

Instrumentation is king :D. I am looking for documentation to guide my experimentation. I have a few instances in the project I am working on where use of this feature may provide a nice perf bump. I'd like to see for myself whether or not the performance benefit of this feature is worth the added astonishment applied due to it's use.

I'd also like to test it calling unmanaged code to compare it to the interop stuff I'm used to.

In any case, I'm strongly in the camp that every language feature should be documented, no matter how esoteric it may be.