快速优化Java工作者

时间:2013-04-13 18:46:54

标签: java

我有一个处理大量数据的Java工作者。它等待main()中的Redis队列,然后根据类型调用不同的函数来处理数据。

我有两个关于优化代码的问题:

  1. 拥有私有静态类变量并使用它们向方法发送数据而不是使用函数参数会更好吗?
  2. 如果在这些经常调用的方法中使用的变量在类上是私有静态而不是在输入方法时总是重复声明,它会加快执行时间吗?
  3. 由于

1 个答案:

答案 0 :(得分:1)

你在谈论速度,但static变量将主要帮助你记忆。

如果您要创建多个instante变量(非static字段)并考虑更改为static字段:

  

当一个类的多个实例需要访问这些实例(实例变量)本地变量中的特定对象时,最好将该变量设为static变量,而不是让每个实例都包含一个单独的引用。这减少了每个对象占用的空间(少一个实例变量),并且如果每个实例创建一个单独的对象来填充该实例变量,也可以减少创建的对象数。 (引自Java Performance Tuning一书。)

如果您没有创建实例变量,只是在参数中传递变量:

在性能方面,应该没有区别。由于Java中的所有方法参数都是逐个引用传递的,这意味着实际变量不会复制到over:只有它的地址(指针 - 对变量的引用)被复制到被调用方法的参数中。 / p>

在任何情况下,static字段都会影响代码的可读性(这会使它们更难维护)。如果您确实需要static行为,请同时考虑使用Singleton设计模式。

底线是:

在我看来,你的情况是:你只是传递变量(没有实例变量)。

我建议你保持这种方式。如果你改变它,通过使用静态字段会有接近零(如果有的话)性能增益 - 另一方面,你的代码将更难维护/理解/调试。