首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON序列化慢

JSON序列化慢
EN

Stack Overflow用户
提问于 2016-12-06 11:05:35
回答 2查看 2.4K关注 0票数 4

我有一个非常简单的ASP.NET WebAPI端点,它对数据库进行一次调用,并以JSON的形式返回这些行。响应大小约180 is (180条记录)。

当我将该项目部署到Azure时,调用大约需要100 is -这很好,但只在第一分钟,然后突然慢到24秒。

在下面的代码中,我将手动序列化对象,而不是直接返回模型(使用相同的webapi JSON序列化程序),以了解花在哪里的时间。

代码语言:javascript
复制
[HttpGet]
[Route("{stuffId}/toys")]
[ResponseType(typeof(IQueryable<FooModel>))]
public HttpResponseMessage GetStuff(int stuffId)
{
    var stuff = QueryProcessor.Execute(new GetStuffByIdQuery
    {
        StuffId = stuffId,
    });

    var mappedResult = stuff.Map();

    var response = Request.CreateResponse(HttpStatusCode.OK);

    var json = JsonConvert.SerializeObject(mappedResult);

    response.Content = new StringContent(json, Encoding.UTF8, "application/json");

    return response;
}

和我意识到的是令人惊讶的是,时间正花在序列化方法上.

var json = JsonConvert.SerializeObject(mappedResult);

更令人困惑的是,将相同的代码部署到Azure上的其他网站上,而不是我们的生产环境,或者在本地运行它,指向生产数据库,它总是很快的。

知道为什么会这样吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-15 14:53:17

按照matt_lethargic指出的想法,我发现在.map调用上做了一些事情,导致了这个问题。

我被拖延执行的事实误导了,所以做秒表我并没有陷入确切的问题。

基本上,在ResourceManager上每一行都有一个实例化来访问资源文件中的一些值。

票数 2
EN

Stack Overflow用户

发布于 2020-03-17 03:10:47

你能做到的

代码语言:javascript
复制
var mappedResult = stuff.Map().ToList();

这对我来说很管用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40993827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档