gpt4 book ai didi

Java 7 排序 "optimisation"

转载 作者:IT老高 更新时间:2023-10-28 20:23:44 24 4
gpt4 key购买 nike

在 Java6 中,快速排序和合并排序都在 Arrays#sort 中使用,分别用于原始数组和对象数组。在 Java7 中,这些都已更改为 DualPivotQuicksort和蒂姆索特。

在新快速排序的源代码中,以下注释出现在几个地方(例如第 354 行):

 /*
* Here and below we use "a[i] = b; i++;" instead
* of "a[i++] = b;" due to performance issue.
*/

这是一个性能问题吗?编译器不会将它们简化为相同的东西吗?

更广泛地说,我自己调查这个问题的好策略是什么?我可以运行基准测试,但我对分析编译代码中的任何差异更感兴趣。但是,我不知道使用什么工具等。

最佳答案

这只是一般问题的答案。

您可以查看字节码并尝试了解其中的差异。 IE。你可以用 a[i] = b; 给自己写一个简单的例子。 i++;a[i++] = b; 看看有什么区别。

显示字节码的最简单方法是 javap 程序(应该包含在您的 JDK 中)。使用 javac SomeFile.java 编译代码并在代码上运行 javap:javap -c SomeFile(-c 开关告诉 javap 为文件中的每个方法输出字节码)。

如果您使用的是 eclipse,您也可以尝试 this one .

关于Java 7 排序 "optimisation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6676836/

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