IT/Programming / / 2023. 4. 26. 13:34

<Effective Java> RULE 55 신중하게 최적화 하라

반응형

 

서론

· 최적화는 좋을 때 보다 나쁠 때가 더 많으며, 섣불리 시도하면 더욱 나쁘다는 것이다.

· 잘못된 최적화는 빠르지도 정확하지도 않으며 쉽게 고칠 수도 없는 시스템으로 이어진다.

 

본론

· 빠른 프로그램이 아닌 좋은 프로그램을 만들려 노력하라.

· 설계할 때는 성능을 제약할 가능성이 있는 결정들은 피하라.

ㄴ 모듈간 상호작용이나 외부와의 상호작용을 명시한 부분은 성능을 고치기가 까다롭다.

· API를 설계할 때 내리는 결정들이 성능에 어떤 영향을 끼칠지를 생각하라.

ㄴ public자료형을 변경 가능하게 만들면 쓸데없이 방어적 복사를 많이해야 할 수 있다.

· 좋은 성능을 내기 위해 API를 급진적으로 바꾸는 것은 바람직 하지 않다.

ㄴ 다음번 릴리즈때 플랫폼이나 기타 내부 소프트웨어가 바뀌면 성능문제는 사라질수 있지만 너무 많이 변경된 API는 개발자를 괴롭힐 것이다.

· 최적화를 시도할 때마다 전후 성능을 측정하고 비교하라.

ㄴ 프로그램이 어디에 시간을 쓰고 있는지 추측하기 어렵기 때문에 최적화 결과로 성능이 개선되지 않을 수 도 있다.

ㄴ 프로파일링 도구를 활용하면 어디를 최적화 할 지 좀더 쉽게 결정할 수 있다. (다양한 실행 정보를 제공)

 

결론

· 빠른 프로그램을 만들고자 애쓰지 말자.

· 좋은 프로그램을 짜기위해 노력하면 성능은 따라올 것이다.

· 시스템 구현을 마쳤다면 성능을 측정하라, 충분히 빠르다면 끝난 것이다. 그렇지 않다면 프로파일링 도구를 통해 문제를 찾아 낸 다음 최적화 하라.

· 처음으로 해야할 일은 구현에 쓰인 알고리즘을 검토하는 것이다. 저수준으로 최적화를 아무리 해봤자 알고리즘을 잘못 고르면 성능을 만회할 수 없다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유