티스토리 뷰
목차
Java 코드 최적화 4가지, 자바 코딩 규칙으로 성능 향상(속도 개선)
[자바 입문, 좋은 소스 작성하는 기술]
자바 코딩 개선 1. 단항 연산자(증감 변수)
- Unary Operator(Increment/Decrement)
자신이 작성한 코드를 다른 사람이 쉽고, 짧게 읽을 수 있게 해야합니다. 다른 언어와 마찬가지로, 자바는 증감에 대한 단항 연산자를 지원합니다.
예를 들면,
1 2 3 4 | int counter = 1; counter++; counter--; | cs |
위 코드는 아래와 똑같습니다.
1 2 3 4 | int counter = 1; counter = counter + 1; counter = counter – 1; | cs |
위의 단항 연산자(+, -)는 접두사나 접미사로 사용할 수 있습니다.
그래서 연산자의 위치에 따라 증감의 발생 여부와 지점의 조절이 가능합니다.
다시 예를 들면, 안드로이드 로깅을 이용해서 카운터 변수를 단항 연산자가 어떻게 조절하는지를 알아 볼 수 있습니다.
1 2 3 4 5 6 7 8 | int counter = 0; Log.i(DEBUG_TAG, "The counter value is ="+counter++); // prints 0 Log.i(DEBUG_TAG, "The counter value is ="+counter); // prints 1 Log.i(DEBUG_TAG, "The counter value is ="+counter--); // prints 1 Log.i(DEBUG_TAG, "The counter value is ="+counter); // prints 0 Log.i(DEBUG_TAG, "The counter value is ="+(++counter)); // prints 1 Log.i(DEBUG_TAG, "The counter value is ="+--counter); // prints 0 | cs |
[Java 코드 최적화] 코딩 성능 향상
자바 코딩 개선 2. 임시 변수(불필요한) 생략
- (Skipping Temporary Variable)
자바 개발자(모든 개발자)는 일반적으로 정말 필요하지 않은 변수는 생성할 필요가 없습니다. 이런 변수들의 특징은 임시적으로 생성되어 한 두번의 결과를 저장하는데 사용되는것이 전부입니다.
- 대신, 자바 개발자(모든 개발자)는 결과 값을 자체적으로 평가하는 문장을 사용해야 합니다.
예를 들어, 다음과 같은 문장은 두 정수의 합계를 임시 변수(보통 temp)가 저장한 뒤 반환합니다.
1 2 3 4 5 6 | int sumVerbose(int a, int b) { int temp = a + b; return temp; } | cs |
개발자들이 오버헤드와 번거로움을 생략하기 위해 임시 변수 생성을 생략하고, 단순한 "반환"을 이용 할 수 있습니다.
1 2 3 4 | int sum(int a, int b) { return (a+b); } | cs |
위 문장은 True일 경우에만 한 번 사용하도록 구성되어 있습니다.
연산 이후의 값을 포함하는 메소드의 경우엔 신중하게 코드를 "쉽게" 구성해야 합니다.
[Java 코드 최적화] 자바 속도 개선
자바 코딩 개선 3. 자바 "this" 키워드와 연쇄 방법
- (this Keyword, Chaining Method)
코딩 시, 종종 상호작용하는 메소드들을 구성하게 됩니다.
이럴 경우 해당 메소드들은 현재 클래스의 인스턴스에서 호출이 됩니다.
1 | InputStream is = getResources().openRawResource(R.drawable.icon); | cs |
이런 코드는 논리적으로 다음 문장과 동일합니다.
1 2 | Resources myAppResources = this.getResources(); InputStream is = myAppResources.openRawResource(R.drawable.icon); | cs |
[자바 입문, 좋은 소스 작성하는 기술]
자바 코딩 개선 4. 빈 문장(무한루프)
- (Infinite Loop)
- 종종 빈 문장이 생성되기도 하는데, 이런 문장들은 무한 루프를 유도합니다.
1 2 3 | for (;;) { //Do something over, and over, and over again. } | cs |
항상 합리적으로 문장이 구성되어있는지 확인해야 하고, 무한 루프를 유도하지 않나 따져봐야 합니다.
Java 코드 최적화 4가지, 자바 코딩 규칙으로 성능 향상(속도 개선)
written by vicddory