【问题标题】:High CPU usage when JRebel is onJRebel 开启时 CPU 使用率高
【发布时间】:2014-03-14 00:36:42
【问题描述】:

为我的 JSF 项目启用 JRebel 时,每个请求的 CPU 使用率都过高,并且在请求得到处理后下降。我确实查看了探查器,但这不是由于我的项目类本身引起的。但我什至可以通过分析结果找出罪魁祸首。以下是分析结果:

有趣的是,当我

  1. 要么禁用 JRebel,
  2. 或删除第 3 方 URL 重写库 (com.ocpsoft.pretty.faces.*)。

但是后来我创建了一个新的 netbeans 项目而没有禁用上述两个项目,但问题仍然不存在,这应该是预期的。

知道是什么原因造成的吗?

编辑:

似乎Prettyfaces (com.ocpsoft.pretty.faces) URL 重写库无论如何都是罪魁祸首.. 看这个快照:

但为什么只有在 Jrebel 开启时才会发生这种情况??

【问题讨论】:

  • 请将 -Drebel.log=true -Drebel.log.perf=true 添加到 VM 参数中,重现工作流并将 jrebel.log 发送到 {user.home}/.jrebel/jrebel。登录到 JRebel 的支持。 JRebel 可能会在您的设置中进行一些过度扫描。

标签: java jsf netbeans prettyfaces jrebel


【解决方案1】:

问题出在 JRebel 5.5.0 prettyfaces 插件中,您可以禁用它,或者使用 JRebel nightly build(或 JRebel 5.5.1+ 一旦可用),其中包含固定版本。

http://zeroturnaround.com/software/jrebel/download/early-access/

【讨论】:

  • 哦,我什至没有意识到可能有一个漂亮的插件......现在在禁用它后尝试......
  • 即使在禁用所有插件之后,CPU 负载也不会减少。从本地主机加载页面的延迟会增加..
  • 请将问题发送给 JRebel 支持。支持@zeroturnaround.com。不要忘记包含性能日志。 zeroturnaround.com/software/jrebel/learn/sending-log 。还要确保您运行的是最新的 JRebel 5.5.2
【解决方案2】:

我也遇到过这个。这绝对是 JRebel 5.5.0 的问题。

我改用 JRebel 5.4.2 解决了这个问题。

【讨论】:

  • 您是否也有相同的设置(jsf/prettyfaces)?在你的情况下是什么在吃 CPU?
  • PrettyFaces 配置缓存在 JRebel 似乎出于某种原因清除的字段中。这就是 PrettyFaces 为每个请求重建其配置的原因,由于注释扫描,这需要一些时间。
  • jrebel 是否通过在每个请求上清除它来做正确的事,而不是在进行更改时这样做。我认为错误在 jrebel 中,对吗?奇怪的是,这不会发生在我使用相同设置创建的新项目中。
  • 这是 JRebel 中的一个错误。
猜你喜欢
  • 1970-01-01
  • 2013-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-09
  • 2014-07-16
  • 2014-08-24
相关资源
最近更新 更多