JsonConvert.DeserializeObject如何在迭代后变得更快?

时间:2018-03-21 15:39:35

标签: c# json.net deserialization

我正在努力寻求在我们的应用程序中进行更高性能的反序列化过程。我在下面创建了简单测试。当我检查结果时,看起来JsonConvert.DeserializeObject在第一次迭代后工作得更快。

[TestMethod]
        public void DeserializeObjectTest()
        {
            int count = 5;
            for (int i = 0; i < count; i++)
            {
                CookieCache cookieCache = new CookieCache()
                {
                    added = DateTime.UtcNow.AddDays(-1),
                    VisitorId = Guid.NewGuid().ToString(),
                    campaigns = new List<string>() { "qqq", "www", "eee" },
                    target_dt = "3212018",
                    updated = DateTime.UtcNow

                };
                Stopwatch stopwatch = Stopwatch.StartNew();
                string serializeObject = JsonConvert.SerializeObject(cookieCache);
                CookieCache deserializeObject = JsonConvert.DeserializeObject<CookieCache>(serializeObject);
                stopwatch.Stop();
                double stopwatchElapsedMilliseconds = stopwatch.Elapsed.TotalMilliseconds;
                Debug.WriteLine("iteration " + i + ": " + stopwatchElapsedMilliseconds);
            }

我的结果:

enter image description here

我认为我正确使用秒表。那么JSON.NET是否在后续调用的反序列化中使用某种内部缓存或优化过程?

由于这是一个Web应用程序,当然,我的日志(280.6466)中的每个Web请求都会得到类似的结果。

我在测试中遗漏了什么?或者是预期的行为?

0 个答案:

没有答案