gpt4 book ai didi

c# - JSON 序列化速度慢

转载 作者:行者123 更新时间:2023-11-30 12:40:41 26 4
gpt4 key购买 nike

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

当我将该项目部署到 Azure 时,该调用大约需要 100 毫秒,这还好,但仅在前几分钟,然后突然减慢至 24 秒。

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

[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 上的另一个网站,或者在本地运行它并指向生产数据库,它总是很快。

知道为什么会发生这种情况吗?

最佳答案

按照 matt_lethargic 指出的想法,我发现在 .map 调用上执行了某些操作,从而导致了问题。

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

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

关于c# - JSON 序列化速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40993827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com