验证类应该是静态类吗?

Dar*_*der 9 java static

我正在一个每秒接收数千个请求的系统上工作,实际上,我们要避免的任务之一就是创建不必要的对象

我们需要验证6个请求项本身的传入请求。

我正在考虑为每个项目验证创建一个类。

但是,我试图证明我是否应该对包含HttpRequest作为实例字段的实例使用静态验证类vs对象。

我应该使用静态类还是对象?你会怎么做?

本质上,我正在做的是注入List<IValidator> validators请求处理程序并对其进行迭代。但不确定我是否应该有一个实例vs静态类。

mat*_*t b 7

您是否真正衡量了创建新的Validator实例与重新使用静态方法相比对内存的影响?使用短期对象的成本非常非常小。您应该测量两种方法之间的区别,如果没有可测量的区别,请使用代码更清晰易懂的方法。

在这种情况下,测量差异总是有意义的,而不仅仅是假设一个相对另一个更好。

  • 有“太多对象”的原因很多。到目前为止,最常见的是字符串解析。 (2认同)
  • 知道哪种方法在您的应用程序中性能更高且对GC的影响较小的唯一真实方法是对应用程序中的两个变体进行基准测试和衡量。对于这类事情,仅接受公认的智慧并将其应用于您的独特情况可能会很危险。特别是考虑到经常会高估分配和垃圾收集短命对象的成本。 (2认同)
  • 如果您有时间观看,这是来自Twitter开发人员的有关JVM性能和GC调优的精彩演示,他们在Twitter上进行了很多练习:http://www.infoq.com/presentations/JVM-Performance-调谐器 (2认同)