Whatstone and GitHub
7c7d1ae451
Cleanup: Warning resolution/suppression ( #6721 )
2026-07-16 19:43:54 +10:00
Paul Ritter and GitHub
bafbdb6363
Analyzer to check that notnullableflag is being properly used ( #3569 )
2022-12-21 00:11:04 +01:00
be8147a722
serv4 ( #3527 )
...
Co-authored-by: Paul <ritter.paul1@gmail.com >
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com >
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com >
2022-11-27 19:23:58 +01:00
8491f7be24
New Serv3 api just dropped ( #2605 )
...
Co-authored-by: Paul Ritter <ritter.paul1@gmail.com >
2022-04-03 01:59:48 +02:00
de4d255841
Analyzer to enforce classes to be either [Virtual], abstract, or sealed. ( #2469 )
...
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com >
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com >
2022-02-05 19:31:58 +01:00
Javier Guardia Fernández and GitHub
69921da034
Change serialization copying with serializers to use expression trees ( #2008 )
2021-09-07 08:09:26 +02:00
Javier Guardia Fernández and GitHub
0b3ecf2168
Add benchmarks for serializing flags ( #1938 )
...
* Add benchmarks for serializing flags
* Add type definitions
2021-08-09 13:03:24 +02:00
DrSmugleaf and GitHub
3e28b083b9
Cleanup serialization markdown, add extensions for easier mapping node manipulation ( #1738 )
2021-05-04 13:01:07 +02:00
DrSmugleaf and GitHub
f9cd9ac12a
Add serialization copy benchmark, optimize copying and reading with IL generators ( #1729 )
...
* Create serialization copy benchmark
* Optimize copy generic method call
Before
| Method | Mean | Error | StdDev | Median |
|----------------------------------- |-------------:|-----------:|-----------:|-------------:|
| CreateCopyString | 43.54 ns | 0.918 ns | 0.859 ns | 43.74 ns |
| CreateCopyInteger | 19.33 ns | 0.388 ns | 0.860 ns | 19.24 ns |
| CreateCopyDataDefinitionWithString | 3,971.42 ns | 78.974 ns | 213.512 ns | 3,902.54 ns |
| CreateCopySeedDataDefinition | 49,916.69 ns | 264.992 ns | 221.280 ns | 49,950.53 ns |
After
| Method | Mean | Error | StdDev |
|----------------------------------- |-------------:|-----------:|-----------:|
| CreateCopyString | 43.15 ns | 0.917 ns | 1.766 ns |
| CreateCopyInteger | 17.91 ns | 0.366 ns | 0.305 ns |
| CreateCopyDataDefinitionWithString | 544.20 ns | 8.137 ns | 7.611 ns |
| CreateCopySeedDataDefinition | 18,233.34 ns | 357.861 ns | 397.761 ns |
* Change populate delegate to use IL
| Method | Mean | Error | StdDev |
|----------------------------- |------------:|----------:|----------:|
| ReadString | 190.7 ns | 3.48 ns | 5.63 ns |
| ReadInteger | 218.8 ns | 4.29 ns | 6.01 ns |
| ReadDataDefinitionWithString | 677.5 ns | 13.34 ns | 24.06 ns |
| ReadSeedDataDefinition | 11,067.0 ns | 219.19 ns | 260.93 ns |
| Method | Mean | Error | StdDev |
|----------------------------------- |-------------:|-----------:|-----------:|
| CreateCopyString | 42.69 ns | 0.926 ns | 1.414 ns |
| CreateCopyInteger | 18.02 ns | 0.268 ns | 0.237 ns |
| CreateCopyDataDefinitionWithString | 556.80 ns | 11.206 ns | 21.589 ns |
| CreateCopySeedDataDefinition | 13,797.07 ns | 256.011 ns | 367.163 ns |
* Make copying use IL to get values
| Method | Mean | Error | StdDev |
|------------------------------------- |------------:|-----------:|-----------:|
| CreateCopyString | 42.55 ns | 0.889 ns | 1.357 ns |
| CreateCopyInteger | 18.72 ns | 0.394 ns | 0.740 ns |
| CreateCopyDataDefinitionWithString | 398.98 ns | 7.853 ns | 12.682 ns |
| CreateCopySeedDataDefinition | 5,996.60 ns | 118.724 ns | 181.304 ns |
| BaselineCreateCopySeedDataDefinition | 340.85 ns | 6.811 ns | 12.281 ns |
* Rest in peace the fast path
For now
* Fix serialization copying not passing the target ref properly
* Fix field assigners for structs
2021-05-02 12:09:12 +02:00
DrSmugleaf and GitHub
1fa979c0f6
Add serialization manager shutdown method and initialize benchmark ( #1728 )
2021-04-25 13:00:31 -07:00
DrSmugleaf and GitHub
2a349eb023
Optimize serialization reading, create benchmarks ( #1679 )
...
* Add Robust.Benchmarks and read string benchmark
* Separate serialization manager methods, use compiled lambdas to call manager read
4 us > 200 ns
* Add int and data definition with string benchmarks
* Make serialization population use expressions to create definitions
* Make benchmark classes internal and create seed data definition
* Add complex data definition read benchmark
* Create primitive serializers, remove primitive special case
| Method | Mean | Error | StdDev |
|----------------------- |------------:|----------:|----------:|
| ReadString | 227.1 ns | 4.47 ns | 5.65 ns |
| ReadInteger | 245.4 ns | 4.82 ns | 6.26 ns |
| ReadDataDefWithString | 804.7 ns | 15.27 ns | 16.34 ns |
| ReadSeedDataDefinition | 15,846.8 ns | 312.89 ns | 773.39 ns |
* Remove testing code
* Setup delegates during initialize
* Revert "Setup delegates during initialize"
This reverts commit 7ff4d4eaaa .
* Store delegates in a concurrent dictionary because I really cannot be arsed to generate them on initialize at this point
2021-04-05 14:50:33 +02:00