Skip to content

[14장] 불변 객체 성능 문제 #116

Discussion options

You must be logged in to vote

기본적으로 참조하지 않는 객체가 있다면 가비지 컬렉터가 일을 하지 않을까 하지만
가비지 컬렉터가 일을 제대로 하지못할 정도의 어떤 이슈가 발생한다면 최적화 방법을 고려할 수 있다고 생각합니다.

많은 최적화 방법이 있지만 하나의 예로 들어본다면 객체 풀링(Object Pooling) 방법을 사용해 볼 수 있을 것 같습니다.

public final class PurchasePoint {
    private static final Map<Integer, PurchasePoint> CACHE = new HashMap<>();

    private final int points;

    private PurchasePoint(int points) {
        this.points = points;
    }

    public static PurchasePoint of(int points) { // 값으로 들어온 객체가 이미 존재한다면 CACHE에서 반환, 없다면 새로운 객체 반환
        return CACHE.computeIfAbsent(points, PurchasePoint::new);
    }

    public int getPoints() {
        return points;
    }
}

Replies: 2 comments 1 reply

Comment options

You must be logged in to vote
1 reply
@corock
Comment options

Answer selected by 0sunset0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chapter14 리팩터링: 기존의 코드를 성장시키는 기술
3 participants