Java 我的代码运行所需的时间背后有什么直觉?
我的代码运行所需的时间背后有什么直觉?(例如,在java中向ArrayList添加100个对象需要多少时间?) 澄清一下,我不是在找计时器。我正在寻找关于每个指令需要多长时间的低级讨论。例如,假设我们有以下设置Java 我的代码运行所需的时间背后有什么直觉?,java,arraylist,operating-system,cpu,Java,Arraylist,Operating System,Cpu,我的代码运行所需的时间背后有什么直觉?(例如,在java中向ArrayList添加100个对象需要多少时间?) 澄清一下,我不是在找计时器。我正在寻找关于每个指令需要多长时间的低级讨论。例如,假设我们有以下设置 Object[] array = new Object[100]; currentIndex = 0; // I call myList.add(myObject); 每个指令需要多长时间: 说明1: 数组中的第一个对象指针将引用myObject 说明2: currentIndex++
Object[] array = new Object[100];
currentIndex = 0;
// I call myList.add(myObject);
每个指令需要多长时间:
说明1:
数组中的第一个对象指针将引用myObject
说明2:
currentIndex++
说明3:
if(currentIndex>100)
// resize internal array
类时间测试1{
公共静态void main(字符串[]args){
long startTime=System.currentTimeMillis();
长总计=0;
对于(int i=0;i<10000000;i++){
总数+=i;
}
长停止时间=System.currentTimeMillis();
长延时=停止时间-开始时间;
System.out.println(elapsedTime);
}
}
试试这个类时间测试1{
公共静态void main(字符串[]args){
long startTime=System.currentTimeMillis();
长总计=0;
对于(int i=0;i<10000000;i++){
总数+=i;
}
长停止时间=System.currentTimeMillis();
长延时=停止时间-开始时间;
System.out.println(elapsedTime);
}
}
试试这个类时间测试1{
公共静态void main(字符串[]args){
long startTime=System.currentTimeMillis();
长总计=0;
对于(int i=0;i<10000000;i++){
总数+=i;
}
长停止时间=System.currentTimeMillis();
长延时=停止时间-开始时间;
System.out.println(elapsedTime);
}
}
试试这个类时间测试1{
公共静态void main(字符串[]args){
long startTime=System.currentTimeMillis();
长总计=0;
对于(int i=0;i<10000000;i++){
总数+=i;
}
长停止时间=System.currentTimeMillis();
长延时=停止时间-开始时间;
System.out.println(elapsedTime);
}
}
试试这个绝对没有任何“直觉”。你必须衡量 和基准 和个人资料 和测试
在现代计算环境中,特定操作的实际执行速度取决于太多(越来越大和越来越小)的细节,以至于几乎无法“直观地”判断执行它需要多长时间
如果您有关于算法计算复杂度的数据,您可能能够根据输入大小(比率)的变化得出执行时间变化的近似值。但这是一种完全不同的野兽。绝对没有任何“直觉”。你必须衡量 和基准 和个人资料 和测试
在现代计算环境中,特定操作的实际执行速度取决于太多(越来越大和越来越小)的细节,以至于几乎无法“直观地”判断执行它需要多长时间
如果您有关于算法计算复杂度的数据,您可能能够根据输入大小(比率)的变化得出执行时间变化的近似值。但这是一种完全不同的野兽。绝对没有任何“直觉”。你必须衡量 和基准 和个人资料 和测试
在现代计算环境中,特定操作的实际执行速度取决于太多(越来越大和越来越小)的细节,以至于几乎无法“直观地”判断执行它需要多长时间
如果您有关于算法计算复杂度的数据,您可能能够根据输入大小(比率)的变化得出执行时间变化的近似值。但这是一种完全不同的野兽。绝对没有任何“直觉”。你必须衡量 和基准 和个人资料 和测试
在现代计算环境中,特定操作的实际执行速度取决于太多(越来越大和越来越小)的细节,以至于几乎无法“直观地”判断执行它需要多长时间 如果您有关于算法计算复杂度的数据,您可能能够根据输入大小(比率)的变化得出执行时间变化的近似值。但这是一个完全不同的野兽。这将起作用:
long startTime = System.nanoTime();
//do something - add 100 objects in ArrayList
long endTime = System.nanoTime();
System.out.println(endTime - startTime);
这将有助于:
long startTime = System.nanoTime();
//do something - add 100 objects in ArrayList
long endTime = System.nanoTime();
System.out.println(endTime - startTime);
这将有助于:
long startTime = System.nanoTime();
//do something - add 100 objects in ArrayList
long endTime = System.nanoTime();
System.out.println(endTime - startTime);
这将有助于:
long startTime = System.nanoTime();
//do something - add 100 objects in ArrayList
long endTime = System.nanoTime();
System.out.println(endTime - startTime);
你能更具体地说你想知道什么吗?询问“直觉”是询问意见的另一个词。这里的答案应该基于事实和经验,而不是观点。你能更具体地说明你想知道什么吗?要求“直觉”是要求观点的另一个词。这里的答案应该基于事实和经验,而不是观点。你能更具体地说明你想知道什么吗?要求“直觉”是要求观点的另一个词。这里的答案应该基于事实和经验,而不是观点。你能更具体地说明你想知道什么吗?要求“直觉”是要求观点的另一个词。这里的答案应该基于事实和经验,而不是观点。