【问题标题】:Very slow response of jackson library in Java spring hibernate MVC frameworkJava spring hibernate MVC框架中jackson库响应非常慢
【发布时间】:2013-12-29 01:47:47
【问题描述】:

我使用 spring hibernate MVC 创建了 restful web 服务,它返回 JSON 作为响应。 我为此使用杰克逊库。我正在从 bean 类创建 json,并且正在使用休眠方法从 MySQL 服务器获取数据。

我的 bean 类中有近 20 个属性。问题是当记录较少时,比如 50-100,它的响应时间非常快,即在一秒钟内,但是当记录增加到 500 或更多时,从 bean 解析到 JSON 需要大量时间,即最多 25 -30 秒,但是,休眠 - MySQL 响应仍然非常快。

我已经在本地机器(i7 8 GB ram,window 7)上部署了这个 web 服务,在 tomcat 7 上。jackson 出了什么问题? 任何帮助将不胜感激。

【问题讨论】:

  • 你能提供在 JSON 中转换对象的代码吗?
  • 您的实体有任何关系吗?您是否尝试仅返回一个实体或一组?如果它是一个集合,你是如何将它转换为 json 对象的?从数据库读取时,您有任何条件/过滤器/标准吗?您是否在调试模式下运行服务以查看瓶颈位置?
  • 500 个对象,每个对象有 20 个字段,这是一个大数组,容易导致速度下降。我建议使用 JProfiler 或 VisualVM 来分析执行情况并找出减速的​​确切位置。此外,请考虑浏览器或您用于查看 JSON 的工具可能解析速度慢和/或呈现大响应的可能性。
  • 我同意@Marquez:一个包含 500 多个条目的数组,每个条目有 20 多个属性,无论如何都需要时间来序列化,无论您使用什么序列化工具我的意见......分页呢?这是我能想到的唯一可扩展的解决方案。
  • 嘿伙计,我现在遇到同样的问题,当 RestController 返回大约 50 条记录时,一切似乎都很好,但是当返回大约 500 条记录时,一切都变得如此缓慢。谁能知道发生了什么? JSON 序列化不应该那么慢。

标签: java spring hibernate rest jackson


【解决方案1】:

我想猜测您将 Json 转换回 bean 对象的方式可能存在性能问题。

【讨论】:

  • 这基本上就是OP在他的问题中所说的,不是吗?
  • 哦,你是对的,所以我认为他需要重构代码以便更好地转换。
猜你喜欢
  • 2016-02-15
  • 2014-08-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2023-02-26
  • 2021-07-04
  • 2015-05-15
  • 2012-10-27
相关资源
最近更新 更多