Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的代码运行所需的时间背后有什么直觉?_Java_Arraylist_Operating System_Cpu - Fatal编程技术网

Java 我的代码运行所需的时间背后有什么直觉?

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++

我的代码运行所需的时间背后有什么直觉?(例如,在java中向ArrayList添加100个对象需要多少时间?)

澄清一下,我不是在找计时器。我正在寻找关于每个指令需要多长时间的低级讨论。例如,假设我们有以下设置

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);

你能更具体地说你想知道什么吗?询问“直觉”是询问意见的另一个词。这里的答案应该基于事实和经验,而不是观点。你能更具体地说明你想知道什么吗?要求“直觉”是要求观点的另一个词。这里的答案应该基于事实和经验,而不是观点。你能更具体地说明你想知道什么吗?要求“直觉”是要求观点的另一个词。这里的答案应该基于事实和经验,而不是观点。你能更具体地说明你想知道什么吗?要求“直觉”是要求观点的另一个词。这里的答案应该基于事实和经验,而不是观点。