-
Notifications
You must be signed in to change notification settings - Fork 272
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Serializer benchmarks #23
Conversation
…ting 32/64 bit benchmarks, emit full pdb info to get disassembler support
@@ -0,0 +1,49 @@ | |||
#if SGEN | |||
// the new SGEN tool fails to load some of the dependencies, so we need to replace the problematic dependencies for this particular build configuration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this file for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wanted to benchmark the XmlSerializer with SGEN enabled to measure the gains. But the new SGEN tool fails to load some of the dependencies, so I needed to replace the problematic dependencies for the "SGEN" build configuration.
so it is something like
#if SGEN
using fake dependencies;
#else
using real dependencies;
#endif
See https://github.com/dotnet/corefx/issues/27281#issuecomment-367449130 for more
The problem is that it does not work yet, so maybe I should just remove it to keep it clean?
I think |
I was not sure about how to name it and where to add it. There is |
Maybe I should keep it in |
Are we planning on using the same solution/project for all benchmarks? |
Yes, I was thinking about having a single project with benchmarks, then every benchmark "category" having it's own folder. Do you like this idea? |
Yes, that could work. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
We should start thinking about CI integration tests. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@jorive I have added the docs (it took me more time than expected). Could you check my most recent commit? |
src/benchmarks/Serializers/README.md
Outdated
* [JSON.NET](https://github.com/JamesNK/Newtonsoft.Json) `11.0.1` | ||
* [Utf8Json](https://github.com/neuecc/Utf8Json) `1.3.7` | ||
* Binary | ||
* BinaryFormatter |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could use this:
BinaryFormatter version
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe same for the others?
@adamsitnik LGTM |
…m.Runtime.Serialization.Formatters
This PR adds the serializer benchmarks.
The idea is simple:
Definitions
defines benchmarks and targets .NET Standard 2.0Runner
referencesDefinitions
and targets multiple frameworks (.NET 4.6.1, Core 2.0, Core 2.1) and allows to run them using BenchmarkDotNetTodo (why it's WIP):
--coreclr Path --corefx Path
)