Optional 的使用会导致性能下降吗?

Optional的使用确实会导致性能轻微下降,因为它增加了对象创建和GC的压力。然而,其带来的代码可读性和错误减少更为重要。除非面临严格的性能要求,否则不应过度关注此问题。在设计API时,考虑是否提供返回Optional和null的选项,以便调用者选择。在大多数情况下,Optional仍然是一个良好的实践选择。
摘要由CSDN通过智能技术生成

几天前,我在论坛上发了一篇关于Optional 的文章。其中一条评论是一个非常好的问题:

Optional 的使用会导致性能下降吗?

答案是: 是的,它会的。但是你应该担心吗?

使用Optional的好处
Optional 类使我们这些开发人员的生活更轻松

增加代码的可读性
减少代码中的条件数
更不容易出错

 

让我们来看看 Optional 类的一些主要方法是如何实现的。

Optional 如何实现的?
这里有一些 Optional 类的主要方法:

基本上,它将值包装到一个新的 Optional对象中,并检查包装的值是否为null。

即使没有使用 Optional,也必须检查值是否为 null。它可能比您做的检查多一些,但我认为您不必担心这一点。

但是您必须知道,将值包装到新对象中将增加 GC 要收集的对象数量。这意味着堆使用量将增加得更快,CPU 使用量将更高(更多 GC 事件)。

好吧,但是有多高呢?同样,这取决于您正在创建的可选对象的数量、堆的大小以及您的应用程序在不使用可选对象的情况下使用的 CPU 数量。

例如,假设您对应用程序进行了基准测试,并得出结论,使用 Optional 将提高 CPU 使用率1个百分点。如果您的应用程序平均使用50% 的 CPU,那么使用51% 的可选 CPU 并不是一个很大的开销,对吧?

但是,如果您的应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值