java - com.fasterxml.jackson.core.util.InternCache.intern() 高负载下死锁

标签 java jackson tomcat7 deadlock

环境:

  • 亚马逊
  • Centos
  • Apache-tomcat-7.0.53
  • Java 8
  • Jackson-core-2.2.3

问题

当我们以约 7000CCU 的负载测试服务器时,当我们使用 Yourkit 分析我们的应用程序服务器时,我们会看到以下几项内容。

http-apr-8080-exec-952 <--- Frozen for at least 17 sec
com.fasterxml.jackson.core.util.InternCache.intern(String) InternCache.java:43
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.findSymbol(char[], int, int, int) CharsToNameCanonicalizer.java:506
com.fasterxml.jackson.core.json.ReaderBasedJsonParser._parseFieldName(int) ReaderBasedJsonParser.java:1182
com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken() ReaderBasedJsonParser.java:602
com.fasterxml.jackson.core.base.ParserMinimalBase.nextValue() ParserMinimalBase.java:128

我们可以做些什么来提高这个库的性能。

最佳答案

我找到了原因,我们没有关闭解析器实例。通过在“finally block ”中关闭解析器实例,这个问题就消失了。

关于java - com.fasterxml.jackson.core.util.InternCache.intern() 高负载下死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988779/

相关文章:

java - 使用 Guice 将不同的 JacksonJsonProvider 绑定(bind)到不同的 Jersey 资源

ubuntu - 如何修复 'Failed to initialize end point associated with ProtocolHandler' 错误?

java - 找出工作站上的哪个用户启动了程序

java - JTA事务意外回滚,嵌套异常为javax.transaction.RollbackException

java - 打印数组中不同的整数

html - 找不到使用 Apache Tomcat 7.0 的 Web 应用程序的 CSS

jsp - tomcat中jsp请求参数的问题

java - 如何在 Java GWT 中进行日历操作?如何在日期中添加天数?

java - 反序列化时忽略属性

java - 当值包含一个列表并且对列表的引用为 NULL 时,如何在 JSON 中迭代一个 Map