Comments (3)
I don't know why the methods that are attributed were attributed. Inlining already happens by the JIT automatically in cases where it is obvious to the JIT that it would provide a useful improvement. We should only add attributes where the JIT isn't already inlining it yet we've measured perf and found it to make it faster to add the attribute.
If you have that data, I'd take a PR that adds the attributes.
from messagepack-csharp.
The methods are getting called ~300M times, in green:
The timings differ 49 vs 34 sec:
It seem to be a possible way go forward; however I'd ask collective brain
to look for pitfalls in da approach.
Thanks.
from messagepack-csharp.
The first challenge - how to measure accurately.
There are tier-ed compilations, therefore a point with JIT optimizations makes sense:
However, as you've mentioned, runtime to pick how/which calls to be inlined:
In case of .NET 7 the ReadInt32
method still gets a jmp
(what is weird - with multiple different addresses).
Since we are effectively trying to measure the impact of 'extra' work on top of read int from span = super fast
, any observation tools will introduce the noise = influence = explain why numbers are so different with dotTrace, and not that far in real life.
from messagepack-csharp.
Related Issues (20)
- Serialize/deserialize of interface types failing with ContractlessStandardResolver HOT 1
- Make System.Runtime.CompilerServices.Unsafe a conditional based on TFM
- Serializing a property without a setter throws "No set accessor" when the class has a constructor HOT 4
- Source generated formatter support of sparse/patch objects via BitArray HOT 5
- A conflict issue using MessagePack.Unityshims HOT 2
- Securely Save and Load for my game? HOT 1
- Wrong type of formatter for record with string keys HOT 2
- GeneratedResolver does not exist in the namespace MessagePack.Resolvers
- Recursive serialization with custom formatter only writes last member HOT 2
- How to avoid cast and multiple Deserialize in code. HOT 1
- [Optimization] Locate formatters only if dictionary has elements HOT 1
- Unable to Deserialize Data Serialized with Typeless Resolver after Migrating to Attributed Objects HOT 16
- Message Pack Compiler just freezes HOT 1
- Help with removing from Unity HOT 2
- Dependency review to enable optimisations. HOT 6
- Private fields of base-class doesn't get (de-)serialized. HOT 1
- `MessagePack` package should depend on `MessagePackAnalyzer` package
- Source generated resolver should support hand-written formatters that use the singleton pattern HOT 1
- Nested `private` custom formatters result in CS0122: inaccessible from source generated resolver
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from messagepack-csharp.