几天前,我在论坛上发了一篇关于Optional 的文章。其中一条评论是一个非常好的问题:
Optional 的使用会导致性能下降吗?
答案是: 是的,它会的。但是你应该担心吗?
使用Optional的好处
Optional 类使我们这些开发人员的生活更轻松
增加代码的可读性
减少代码中的条件数
更不容易出错
让我们来看看 Optional 类的一些主要方法是如何实现的。
Optional 如何实现的?
这里有一些 Optional 类的主要方法:
基本上,它将值包装到一个新的 Optional对象中,并检查包装的值是否为null。
即使没有使用 Optional,也必须检查值是否为 null。它可能比您做的检查多一些,但我认为您不必担心这一点。
但是您必须知道,将值包装到新对象中将增加 GC 要收集的对象数量。这意味着堆使用量将增加得更快,CPU 使用量将更高(更多 GC 事件)。
好吧,但是有多高呢?同样,这取决于您正在创建的可选对象的数量、堆的大小以及您的应用程序在不使用可选对象的情况下使用的 CPU 数量。
例如,假设您对应用程序进行了基准测试,并得出结论,使用 Optional 将提高 CPU 使用率1个百分点。如果您的应用程序平均使用50% 的 CPU,那么使用51% 的可选 CPU 并不是一个很大的开销,对吧?
但是,如果您的应