2014년 12월 7일 일요일

나누기와 나머지 계산의 속도 비교




/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
 public static void main (String[] args) throws java.lang.Exception
 {
  long start, end;
  int data = 1,index;
  
  data = 1;
  start = System.currentTimeMillis();
  for(index = 1 ; index < 1000000 ; index++) {
   data = ((int)(Math.random()*10000+1) / (int)(Math.random()*1000+1)) ;
  }
  end = System.currentTimeMillis();
  System.out.println( "실행 시간 / : " + ( end - start )/1000.0 );

  data = 1;
  start = System.currentTimeMillis();
  for(index = 1 ; index < 1000000 ; index++) {
   data = ((int)(Math.random()*10000+1) % (int)(Math.random()*1000+1)) ;
  }
  end = System.currentTimeMillis();
  System.out.println( "실행 시간 % : " + ( end - start )/1000.0 );
  
  data = 1;
  start = System.currentTimeMillis();
  for(index = 1 ; index < 1000000 ; index++) {
   data = ((int)(Math.random()*10000+1) * (int)(Math.random()*1000+1)) ;
  }
  end = System.currentTimeMillis();
  System.out.println( "실행 시간 * : " + ( end - start )/1000.0 );
  
  data = 1;
  start = System.currentTimeMillis();
  for(index = 1 ; index < 1000000 ; index++) {
   data = ((int)(Math.random()*10000+1) + (int)(Math.random()*1000+1)) ;
  }
  end = System.currentTimeMillis();
  System.out.println( "실행 시간 + : " + ( end - start )/1000.0 );
  
  data = 1;
  start = System.currentTimeMillis();
  for(index = 1 ; index < 1000000 ; index++) {
   data = ((int)(Math.random()*10000+1) - (int)(Math.random()*1000+1)) ;
  }
  end = System.currentTimeMillis();
  System.out.println( "실행 시간 - : " + ( end - start )/1000.0 );
 }
}


결과를 보자니 /,% 가 느리고 나머지는 비슷한 수준이다. 하지만 많이 차이는 나지 않았다.
실행 시간 / : 0.18
실행 시간 % : 0.173
실행 시간 * : 0.157
실행 시간 + : 0.156
실행 시간 - : 0.157











댓글 없음:

댓글 쓰기