gpt4 book ai didi

java - 在应用程序中过于频繁地使用非原始 Integer/Long 数据类型会影响性能吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:01:52 26 4
gpt4 key购买 nike

我在我的应用程序中经常使用 Long/Integer 数据类型来构建通用数据类型。我担心使用这些包装器对象而不是原始数据类型可能对性能有害,因为每次都需要创建对象,这是一项昂贵的操作。但似乎我别无选择(当我必须将原语与泛型一起使用)而不是仅仅使用它们。
但是,如果您可以建议我是否可以做些什么来让它变得更好,那就太好了。或者如果我可以避免的话,有什么办法吗??

还有这可能有什么缺点?

欢迎提出建议!

最佳答案

跟着我重复。 “在 Java 中创建对象不是一项昂贵的操作”

您正在过早地优化您的应用程序。更好的方法是使用 IntegerLong 以自然方式实现它,然后分析它以确定瓶颈在哪里。如果探查器告诉您使用 IntegerLong 是一个性能问题,然后看看解决这个问题的方法。


如果您确定 IntegerLong 确实是一个问题,您可以执行以下操作:

  • 寻找一个实现原始类型“集合”的类库;例如宝藏。但请注意,此类集合类型的 API 不会java.util.Collection 及其后代兼容。

  • 使用 Integer.valueOf(int)Long.valueOf(long) 而不是 new Integer(int)new Long(长)valueOf 方法使用常用对象的缓存来减少对象创建次数。


@Rex Kerr 的评论是,这是一个糟糕的建议。他(我认为)说 OP 应该优化他的应用程序以在他知道之前减少 IntegerLong 的使用性能问题。我不同意。

  • 此时(当他提出问题时),OP 并不知道他的应用程序需要优化。如果应用程序在没有任何优化的情况下运行“足够快”,那么开发人员花在优化上的时间最好花在其他事情上。

  • 此时,OP 不知道性能瓶颈在哪里。如果他们不在处理这些值,那么优化这方面将是浪费时间。请注意,一般来说,完全依靠您的直觉来告诉您瓶颈在哪里或可能在哪里是一个坏主意。

  • @Rex Kerr 指出,修改/重组代码以修复因过度使用 IntegerLong 而导致的性能问题需要大量工作>。那根本不是真的。一个体面的 IDE 可以很容易地在中小型应用程序中进行此类更改。

关于java - 在应用程序中过于频繁地使用非原始 Integer/Long 数据类型会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5133571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com