프로그래밍 언어/Java

[Java 성능개선] for 루프와 String 연산, 입출력

DevPing9_ 2022. 1. 26. 17:24

# For 문 성능개선

 

Java 에는 for 문이 여러개 있지만, 가장 기초적인 for문(C언어와 유사)를 쓸때 주의할 점에 대해 기록하고자 한다.

 

// 1번 방법
for(int i=0; i<list.size(); i++){
	//...
}

// 2번 방법
int size = list.size();
for(int i=0; i<size; i++){
	//...
}

 

가끔 저러한 for문을 사용할 때, 변수할당하기 귀찮아 그냥 1번방법으로 작성한 적이 많았는데

1번방법에서는 for문을 돌때마다 list.size()를 호출하는 쓸데없는 오버헤드가 생긴다.

 

만약 저러한 반복문을 사용한다면 2번방법으로 작성하는 습관을 기르자.


 

# String 연산 및 입출력

 

코딩테스트 문제를 많이 풀다보면 알게되는 당연한 건데,

그래도 기록하여 내가 만든 어플리케이션의 성능을 튜닝할 때 체크리스트로 만들어두자!

 

// String 연산
"abc"+"cd";

// StringBuilder
sb.append("abc");
sb.append("cd");

 

StringBuilder 가 훨씬 빠르다.

 

I/O 작업도 System 라이브러리보다 StreamReader 들이 훨씬 빠르다.

 

728x90