Open Yerimi11 opened 1 year ago
성능 때문에 견고한 구조를 희생하지 말자
빠른 프로그램보다는 좋은 프로그램을 작성하라
좋은 프로그램: 정보 은닉 원칙 따르므로 개별 구성요소의 내부를 독립적으로 설계할 수 있다.
아키텍처의 결함이 성능을 제한하는 상황 → 시스템 전체를 다시 작성하지 않고는 해결하기 불가능할 수 있음
따라서, 설계 단계에서 성능을 반드시 염두에 두고 시작해야 함.
성능을 제한하는 설계를 피해라
API를 설계할 때 성능에 주는 영향을 고려해라
java.awt.Component 클래스의 getSize 메서드
→ 불변으로 만드는게 가장 이상적, getSize를 getWidth, getHeight처럼 기본 타입 값들을 따로 반환하도록 나누는 방법도 있음.
각각 최적화 시도 전후로 성능을 측정하라
자바의 성능 모델은 정교하지 않고, 구현 시스템/릴리즈/프로세서 마다 차이가 있어서 각각 하드웨어 플랫폼에서 최적화의 효과를 측정해봐야 한다 (측정의 중요성)
개발할 때마다 성능을 고민했던 적이 많은데 견고한 설계 자체가 먼저이네요
처음부터 성능과 구조를 잘 고려해서 개발해야겠습니다
개발하면서 성능을 먼저 생각해야하는건가..? 싶은 고민 지점이 있었는데 처음부터 성능 구조를 같이 고려해서 코드를 짜야겠습니다.
67. 최적화는 신중히 하라
성능 때문에 견고한 구조를 희생하지 말자
빠른 프로그램보다는 좋은 프로그램을 작성하라
좋은 프로그램: 정보 은닉 원칙 따르므로 개별 구성요소의 내부를 독립적으로 설계할 수 있다.
아키텍처의 결함이 성능을 제한하는 상황 → 시스템 전체를 다시 작성하지 않고는 해결하기 불가능할 수 있음
따라서, 설계 단계에서 성능을 반드시 염두에 두고 시작해야 함.
성능을 제한하는 설계를 피해라
API를 설계할 때 성능에 주는 영향을 고려해라
java.awt.Component 클래스의 getSize 메서드
→ 불변으로 만드는게 가장 이상적, getSize를 getWidth, getHeight처럼 기본 타입 값들을 따로 반환하도록 나누는 방법도 있음.
각각 최적화 시도 전후로 성능을 측정하라
자바의 성능 모델은 정교하지 않고, 구현 시스템/릴리즈/프로세서 마다 차이가 있어서 각각 하드웨어 플랫폼에서 최적화의 효과를 측정해봐야 한다 (측정의 중요성)