4 ms·
wow. I havent used C# for at least three years, but that is a really powerful feature.
by holtalanm 10y ago
wow. I havent used C# for at least three years, but that is a really powerful feature.
- zamalek 10y agoWhat's even better is that the DLR consists of some pretty tight code. Historically I was using a ConcurrentDictionary containing Funcs compiled using Expression. I've found the DLR is just as fast (for things that you can express with it), with a much lower overhead. I've started using it in dynamic scenarios wherever possible. Basically, this is going to be about as fast as you can get with the statically-typed underlying runtime.
- zastrowm 10y ago> I've found the DLR is just as fast... with a much lower overhead Can you expand on this? I would not have expected that it would be faster than compiled expressions.
- duncans 10y agoDynamic calls gets compiled at runtime, so there's an initial hit (as there would be with Expr.Compile) but after that ...
- zamalek 10y agoThe codegen creates a cache of delegates (created using expression trees), but uses a structure more suited to the problem than a simple ConcurrentDictionary. [1]: http://geekswithblogs.net/simonc/archive/2012/07/20/inside-the-dlr---callsites.aspx http://geekswithblogs.net/simonc/archive/2012/07/20/inside-t...
- zastrowm 10y agoAh, faster than the `ConcurrentDictionary`. That makes sense!