调整 toArray 中的数组大小
使用 toArray 方法将 ArrayList 转换为数组时,有两种选项用于指定数组的大小:调整数据库的大小或一个空的数据库。让我们探讨一下它们对性能的影响。
假设我们有一个ArrayList称为 myList,我们可以使用以下语法来创建数组:
MyClass[] arr = myList.toArray(new MyClass[myList.size()]); // Presized array MyClass[] arr = myList.toArray(new MyClass[0]); // Empty array
直观上,调整数组大小可能看起来更有效,但使用 Java Microbenchmark Harness (JMH) 的基准测试结果揭示了一个令人惊讶的发现。使用空大小参数 (new MyClass[0]) 创建数组的性能始终优于预先调整大小的版本 (new MyClass[myList.size()])。
JVM 和 JIT 编译器进行了优化,可以有效地创建和初始化正确大小的数组。通过提供空数组,编译器可以利用这些优化,从而获得更好的性能。随着数组大小的增加,这种优势尤其明显。
以下是基准测试结果:
Size | Presized Array (μs) | Empty Array (μs) |
---|---|---|
1 | 0.025 | 0.019 |
100 | 0.155 | 0.133 |
1000 | 1.512 | 1.075 |
5000 | 6.884 | 5.318 |
10000 | 13.147 | 10.652 |
100000 | 159.977 | 139.692 |
如您所见,空数组方法提供了轻微但一致的性能优势。但是,请务必注意,这些结果可能会有所不同,具体取决于特定的 JVM 和 JIT 编译器优化以及数据的大小和特征。
以上是数组大小如何影响 Java 中 ArrayList 到数组的转换性能?的详细内容。更多信息请关注PHP中文网其他相关文章!
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
3 周前ByDDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前ByDDD
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版
好用的JavaScript开发工具