Thread

Conversation

This talk is focused on how the RPC & Serializer in Orleans work and how they are designed for high performance. Rather than being Orleans 101, it's a perf-focused look under the hood. Some examples Down pointing backhand index
Quote Tweet
Konrad Kokosa
@konradkokosa
·
Smiling face with heart-shaped eyesLead for Microsoft Orleans @ReubenBond about "A Deep Dive into Orleans" youtube.com/watch?v=kgRag4
Image
5
124
Daniel Markham
Reply
You can have low-cost abstraction by creating generic types and specializing them using value-typed parameters, allowing the JIT to remove type checks and eliminate dead code
Image
Image
1
16
In order to support flexible RPC which is also high-performance (to serialize, deserialize, & invoke), we generate per-method closure types. This eliminates the quagmire of method overload resolution and allows for very cheap introspection for middleware
Image
Image
Image
1
11
I mention some issues inherent with optimizing for microbenchmarks in the talk. You may end up with code which benchmarks well but is selfish. Eg, the generated deserializer code here is fast and friendly to the CPU's branch predictor, but less efficient for the instruction cache
Image
Image
1
13
Lower is better in these benchmarks, so System.Text.Json is only beating out Newtonsoft.Json here. I imagine it's performance will be improved, but it's not there yet in my books
1
Show replies

Trending now

What’s happening

World News
5 hours ago
Several people killed, injured in a bow and arrow attack in Norway
Trending with Norway
#NHLonTNT
It's Our Shift.
Promoted by NHLonTNT
Trending in Virginia
Loudoun County
38.8K Tweets
Bloomberg
This afternoon
Netflix employees raised concerns about Dave Chappelle's special days before its release
Bloomberg Quicktake
5 hours ago
3% of Americans quit their jobs in August, here's where the mass exodus hit the hardest