java – 整数集.增加新条目时可能获得的性能提升
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 整数集.增加新条目时可能获得的性能提升,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1584字,纯文字阅读大概需要3分钟。
内容图文
![java – 整数集.增加新条目时可能获得的性能提升](/upload/InfoBanner/zyjiaocheng/789/e26f1337e6464249a321515e64496ecd.jpg)
如果你是一个技术娴熟的低延迟Java开发人员(我不是)并且你被告知要实现一组int(原语或非原语),那么考虑到保证的前提条件,你是否有可能获得额外的性能提升每个新条目都高于先前存储在集合中的任何其他值?
在最佳/最差情况下添加,包含和删除操作的增益有多大?
一方面,这种限制似乎很自然会带来更好的表现.另一方面,非递减条目是非常常见的情况(例如,在生成唯一id中)并且如果增益值得争取,则已经开发了或多或少已知的实现.
解决方法:
当您检查此question时,您发现add和contains已经是O(1).所以那里没有太多改进.
我认为这两个人将是唯一一个可以受益于这种约束的人:
>“添加”变得更容易,因为您可以简单地记住添加的最后一个值;因此,只有在新值进入时才需要进行一次检查
>同样,当要求“包含”时;你有一个第一次预检,当一个给定的值不能在集合中时,它会立即告诉你
但那是关于它的.
除此之外:当您的约束确实是要添加的每个“新”条目大于最后一个条目时 – 那么您首先不需要Set.因为您的约束保证所有项目都是唯一的.所以在这个意义上,你也可以查看列表……
关于问题在O(1)和O(1.5)之间可能的增量之间提出的评论;我的回复:
O(1)和O(n)之间的差异具有理论性质,您可以使用笔和纸来回答这个问题. O(1.0)和O(1.005)之间的区别……我将从实验和基准开始.
含义:这些“真实”因素依赖于与底层实现“接近”的各种元素.首先,您将了解如何为您的平台实现您当前使用的Set;以及您平台上的JVM如何进行即时编译.从那以后,你可以通过考虑这个约束来得出可以改进的事情的结论.
最后;关于降低现有实现的约束.我想这也可能发生;如上所述:这些细节实际上取决于具体实施.除此之外:你命名了三种不同的操作;而实际结果可能会有很大差异;取决于操作类型.
如果我不得不解决这个问题;我首先要创建具有“测试数据”的合理大文件(随机数,仅增加数字;以及其变体).然后我会使用一个真正的分析器(或至少是复杂的benchmarking)并开始测量.
内容总结
以上是互联网集市为您收集整理的java – 整数集.增加新条目时可能获得的性能提升全部内容,希望文章能够帮你解决java – 整数集.增加新条目时可能获得的性能提升所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。