Java注解会影响运行时性能吗?

10

我们知道在启动期间进行注释会导致组件扫描,但是一旦所有配置加载完成,它是否会影响运行时性能?

顺便说一下,我们正在构建一个自制的轻量级restful服务框架,为了配置路由,我们有两种风格:

  • 硬编码枚举
  • 注释

我们的一位同事对注释表示担忧。


1
一篇相关的博客文章:http://ericlippert.com/2012/12/17/performance-rant/ - Matthew
1个回答

11

是的,注释会增加几毫秒的运行时间。然而,在程序运行时不会有任何额外的开销。在优化之前,最好先运行程序,检查性能速度是否是一个问题 - 如果它没有问题,那就不要修复它。

如果程序运行得太慢,我敢打赌瓶颈不是注释。为了优化它,您应该编写一些基准测试代码,找到瓶颈实际上在哪里,并优化最慢的部分。你的同事应该把时间节省下来,到处跑步并生吃他的食物,而不是优化他的注释。


你可以解释一下为什么会多花费那几毫秒吗? - BigFatSea
2
这真的取决于您如何使用注释。因为注释本质上只是类文件中的元数据,它们经常用于告诉Java如何将您的类与其他库和文件(例如XML模式:[链接](http://docs.oracle.com/javaee/5/api/javax/xml/bind/annotation/package-summary.html))一起使用。当您想要编译程序时,Java必须将您的注释映射到类文件中,这涉及少量相对较快的操作。这就是延迟出现的原因。 - Anthony
值得注意的是,正确使用注释甚至可以加快程序的运行速度。当Java编译程序时,它会自动尝试优化代码的某些部分。如果您提前使用注释指定这些优化,就可以避免Java在运行时进行计算。链接。然而,除非您的程序必须尽可能快地运行,否则不太可能需要担心这个问题。 - Anthony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接