문득 이런 생각이 들었습니다.

문자열에서 숫자로 변환하는게 빠른지 숫자에서 문자열로 변환하는게 빠른지가 궁금해졌습니다.

말그대로 테스트는 이렇습니다.

String -> int  : String.valueOf(1);

int -> String  : Integer.valueOf("1");


테스트는  for문을 사용하여 10000번의 루프를 돌면서 변환 하도록 하는 아주 간단한 프로그램 입니다.


컴퓨터 사양은 아래와 같습니다.

CPU : i7 3.40GHz

메모리:8G

Java : 1.7_50 32bit


[소스]

public class StringVsInt {
 
	public static void main(String[] args) {
 
		testIntString();
		testStringToInt();		
	}
 
	public static void testIntString() {
 
		System.out.println("----------------------------");
 
		long startTime = System.nanoTime();
 
		for (int i = 0; i < 10000; i++) {
			String data = String.valueOf(1);
		}
 
		long endTime = System.nanoTime();
 
		long lTime = endTime - startTime;
		System.out.println("Int to String TIME : " + lTime/1000000.0 + "(ms)");
		System.out.println("----------------------------\n");
 
	}
 
	public static void testStringToInt() {
 
		System.out.println("----------------------------");
 
		long startTime = System.nanoTime();
 
		for (int i = 0; i < 10000; i++) {
			int data = Integer.valueOf("1");
		}
 
		long endTime = System.nanoTime();
 
		long lTime = endTime - startTime;
		System.out.println("String to Int TIME : " + lTime/1000000.0 + "(ms)");
		System.out.println("----------------------------\n");
 
	}
}



[실행 결과]

stringvsint_1.PNG


테스트한 결과 숫자를 문자열로 변환하는게 더 빠르게 나왔습니다.


시간으로 봤을때 얼마 걸리지는 않지만, 왠만하면 숫자값으로만 사용하도록 프로그램을 해야 겠네요..^^;


다음 시간은 ARM7에서는 어떤 결과가 나오는지 알아보도록 하겠습니다.



감사합니다.