Comments (2)
I will not be implementing this at this time. The focus of the project is performance and not compatibility with other serialization library. Anything that require not been able to inline as much as possible or calling virtual calls through interface would not work for me at this time.
If fork this project, then i can help contribute a possible solution to the fork.
from netjson.
this is my POC version (no parsing, JsonWriter only): https://gist.github.com/dimzon/37aaf808409df1172da7
benchmark it yourself - there are very little perfomance loss (less than 10%) but more control/flexibility
using System;
using System.Diagnostics;
namespace bench
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime BurthDay { get; set; }
public string[] Certificates { get; set; }
}
class Program
{
static void Main(string[] args)
{
var obj = new Person {Name = "dimzon", Age = 36, BurthDay = new DateTime(1978, 11, 27, 22, 11, 0), Certificates = new []{"MCPD:EAD","MCTS:MSSQL"}};
//warmup
for (var i = 0; i < 1000000; ++i)
{
NetJSON.NetJSON.Serialize(obj);
DimzonNetJSON.DimzonNetJSON.Serialize(obj);
}
const int count = 2000000;
var tw = new Stopwatch();
for (var j = 0; j < 10; ++j)
{
tw.Restart();
for (int i = 0; i < count; ++i)
{
DimzonNetJSON.DimzonNetJSON.Serialize(obj);
}
tw.Stop();
Console.WriteLine("D " + tw.Elapsed);
tw.Restart();
for (int i = 0; i < count; ++i)
{
NetJSON.NetJSON.Serialize(obj);
}
tw.Stop();
Console.WriteLine("O " + tw.Elapsed);
}
}
}
}
output:
D 00:00:01.5138228
O 00:00:01.6044580
D 00:00:01.6135190
O 00:00:01.4975824
D 00:00:01.5947025
O 00:00:01.5274662
D 00:00:01.6073275
O 00:00:01.4749211
D 00:00:01.5504076
O 00:00:01.4883129
D 00:00:01.5398498
O 00:00:01.5253677
D 00:00:01.5886444
O 00:00:01.4451989
D 00:00:01.5432052
O 00:00:01.4504755
D 00:00:01.5747841
O 00:00:01.5088011
D 00:00:01.5792748
O 00:00:01.4611339
from netjson.
Related Issues (20)
- Urgent! Float deserialization fails on v 1.3.1 HOT 2
- Getting Exception when serializing HOT 26
- Invalid JSON causes full CPU usage (infinite loop) HOT 29
- Deserialization into simple char causes System.IndexOutOfRangeException HOT 3
- Could not load type 'TenantClass' HOT 9
- mysterious deserialization result for auto property initializer HOT 18
- The implementation of ToCamelCase can be optimized HOT 22
- NetJSONKnownType doesn't work HOT 20
- Serialize/Deserialize to/from Stream HOT 4
- Getting exception when Deserialize HOT 16
- Time for .Net 5 Release HOT 15
- Ignore object properties HOT 2
- Deserialization to a class that contains enum cause an error HOT 2
- Benchmark NetJSON with the JSON serializer comes with .NET 5? HOT 25
- Edge-Case failures to deserialize DateTime value HOT 9
- Invalid DateTime when deserializing from ISO-8601 HOT 12
- Encounter InvalidProgramException HOT 23
- NetJSON.NetJSONTypeMismatchException: 'Unexpected type was encountered in JSON' HOT 8
- When deserialize null result it throw "Input is not a valid JSON". HOT 3
- When the `value` is null the `SerializeObject` will throw NullReferenceException HOT 4
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 netjson.