我在我的Wicket应用程序中使用AbstractAjaxWicketBehavior,并且当出现更多的AJAX调用时,它似乎随着时间的推移而下降。当页面刷新没有AJAX时,性能再次变好。我想知道这是正常的事情还是可能是某种类型的内存泄漏?我不能简单地连接代码,因为它是分布在更多的类,它需要太多的精力去了解,但总之我想这样做:Wicket AbstractAjaxTimerBehavior和性能
- 创建并启动定时器
- 重复一些代码10X
- 停止定时器
- 设置一些值属性到
- AJAX刷新(原因显示出一些部件的/隐藏)
和在S再次(意味着无限次)。
即使我使用100ms的持续更新间隔,此流程的每一次重复都较慢。
由于计时器是一种行为,不允许重新启动或重新使用,因此每次都将其作为新实例创建并附加到表单组件。
计时器看起来是这样的:
static int count = 0
new AbstractAjaxTimerBehavior(Duration.milliseconds(100)) {
// do some code
count++
if(count == 10) {
stop();
// do some code
}
}
这种行为被连接到形成面板内,在一个点击的AjaxLink形式刷新(加入AjaxRequestTarget)。每次在添加新行为之前从Form组件中删除旧的计时器。
一切工作正常,但这个过程的每一个重复运行较慢(第一个是完美的,第二个也是100ms左右,但后来变得更慢(经过10或15次重复,刷新间隔大约1秒)和应用程序中的所有其他AJAX调用也会明显变慢),所以我怀疑存在内存泄漏......任何明显的原因?或者有什么方法可以让我的目的更好地实现小门计时器?任何意见赞赏。谢谢。