使用太多听众是否有可能减速?

时间:2015-07-03 13:41:57

标签: java actionlistener

在我写的程序中,我将至少有64个JButton。编写一个ActionListener或者有64个,每个一个会更好吗?我不认为我会为每个JButton路由使用一个监听器,但它确实让我对某些事情感到疑惑。是否存在太多听众实际上会损害表现的地方,如果有这样的事情,会花多少钱?

2 个答案:

答案 0 :(得分:1)

我不会那么担心这个。我会担心一个听众的逻辑。它可能变得相当复杂和冗长。维护的开销可能引起关注。 (但我不知道这个监听器会发生什么。)

小听众专注并非常清楚地传达意图。但我同意64很多。

答案 1 :(得分:1)

每个JButton都会保留一个列表(或数组,或者它实现的集合,但是它实现了)对其侦听器的引用,而不知道其他按钮的侦听器。当事件发生时,按钮会调用其侦听器。因此,拥有许多其他按钮的监听器不会减慢监听器的调用速度。所以这里没有减速。

我可以预见的唯一减速来源是缓存未命中。拥有许多不同代码的侦听器意味着更多的缓存未命中。

但是让一个拥有大量复杂代码的侦听器来处理所有情况可能会更慢。你仍然有很多字节码,你可能比多个听众有更多的分支。

结论: 让你的听众cohesive。拥有不同的侦听器来处理不同的操作,并对执行类似操作的按钮使用相同的侦听器。它将为您提供更好的代码和速度。

相关问题