We\'re considering replacing (some or many) \'classic\' SOAP XML WCF calls by JSON (WCF or other) calls, because of the lower overhead and ease of use directly in Javascript
I'm adding 2 more points here, which help me to improve my IoT application performance. I was receiving millions of JSON messages every day.
Old code
return JsonConvert.SerializeObject(this, Formatting.Indented,
new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
New Code
Not creating contract resolver instance on every call, Instead using a single instance
return JsonConvert.SerializeObject(this, Formatting.Indented,
new JsonSerializerSettings
{
ContractResolver = AppConfiguration.CamelCaseResolver
});
Old Code
JObject eventObj = JObject.Parse(jsonMessage);
eventObj.Add("AssetType", assetType); //modify object
JObject eventObj2 = JObject.Parse(jsonMessage);
eventObj.Add("id", id); //modify object
NewCode
JObject eventObj = JObject.Parse(jsonMessage);
eventObj.Add("AssetType", assetType); //modify object
JObject eventObj2 = (JObject)eventObj.DeepClone();
eventObj.Add("id", id); //modify object
To check performance benefits, I used benchmarkdotnet to see the difference. check this link as well.