为啥 byte 的工作速度比 int 慢?类实例化
Posted
技术标签:
【中文标题】为啥 byte 的工作速度比 int 慢?类实例化【英文标题】:Why byte works slower than int? class instantiation为什么 byte 的工作速度比 int 慢?类实例化 【发布时间】:2013-07-05 16:51:15 【问题描述】:我有这个简单的代码。如果我在 MyClass 中将 int 更改为 byte,那么由于某种原因它会慢 1.5 倍。有什么想法,为什么?
public class Test
public static void main(String[] args)
double start = System.currentTimeMillis();
MyClass[] arr = new MyClass[10_000_000];
for (int i = 0; i < arr.length; i++)
arr[i] = new MyClass();
double end = System.currentTimeMillis();
System.out.println(end-start);
class MyClass
final public int pole = 50;
int eshePole;
【问题讨论】:
如果我在 MyClass 中将 int 更改为 byte,那么由于某种原因它会慢 1.5 倍 .. 你是在谈论pole
和 eshePole
变量吗?
***.com/questions/2380696/…
它工作 1.5 什么慢?
@Ingo 慢了 1.5 倍,我假设
它的运行速度慢了 1.5 倍
【参考方案1】:
很难相信这样的测试结果,因为您没有进行任何预热以允许 JVM 执行诸如优化代码路径之类的事情。值得一看的文章如下:
https://wikis.oracle.com/display/HotSpotInternals/MicroBenchmarks
您的测试也不正确,因为 System.currentTimeMillis()
返回的是 long,而不是 double。
【讨论】:
以上是关于为啥 byte 的工作速度比 int 慢?类实例化的主要内容,如果未能解决你的问题,请参考以下文章
为啥带有'exists'的sql运行速度比使用MySQL的'in'慢
为啥我的 Spark 运行速度比纯 Python 慢?性能比较