사용하지 않는 가져 오기 및 개체가 성능에 영향을 미칩니 까?
Java 코드에서 사용되지 않는 가져 오기 및 사용되지 않는 개체가 성능에 영향을 미치는지 의심 스럽습니까?
객체가 초기화되고 사용되지 않았다고 가정하면 어떻게됩니까? 그리고 미사용 수입품의 비용은 얼마입니까?
매우 일반적인 질문입니다.
대부분의 성능 질문과 마찬가지로 최선의 접근 방식은 가능한 한 가장 명확하고 간단한 코드를 작성하는 것입니다. 이렇게하면 코드의 유지 관리 가능성이 향상되고 변경된 후에도 합리적으로 잘 수행 될 수 있습니다. (영리한 / 집중 한 / Needlessly Verbose 코드는 처음에는 빠르게 실행할 수 있지만 단순한 필사자에 의해 변경되므로 훨씬 느려질 수 있습니다.)
사용하지 않는 가져 오기는 컴파일러에 사소한 영향을 미치지 만 바이트 코드 또는 런타임에는 가져 오기가 없습니다.
사용하지 않는 객체는 최적화 할 수 있지만 거의 항상 성능에 영향을 미치기 때문에이를 피하는 것이 가장 좋지만 더 중요한 것은 코드를 읽고 유지 관리하는 것을 더 어렵게 만드는 것입니다.
사용하지 않는 가져 오기는 런타임에 성능에 영향을주지 않습니다. 순전히 네임 스페이스 메커니즘입니다. 그럼에도 불구하고 항상 가독성을 위해 필요한 것만 가져 와서 성가신 네임 스페이스 충돌을 피해야합니다.
코드 가독성 및 따라서 코드의 유지 관리 가능성 외에도 가져 오기를 정리하여 Java 코드를 더 빠르게 컴파일 할 수 있지만 (하지만 눈에 띄지 않는) 생성 된 바이트 코드가 깔끔한 가져 오기의 영향을받지 않기 때문에 런타임 성능에는 영향을주지 않습니다. 생성 된 바이트 코드는 동일하게 유지됩니다.
컴파일에 미치는 영향은 미미하지만 배포에 미치는 영향은 심각 할 수 있습니다. 나는 maven 종속성이 된 별도의 라이브러리가 필요한 사용하지 않는 가져 오기를 발견했습니다. 다행스럽게도 전 이적 의존 문제는 발견되지 않았지만 아무런 이유없이 전쟁이 더 두꺼워졌습니다. webapp 클래스 로더에 불필요한 jar를 추가하십시오.
Java 파일에서 사용하지 않는 가져 오기는 해를 끼치 지 않지만 Java 소스 파일의 길이와 크기를 불필요하게 증가시킵니다.
예, Java 클래스에서 사용하지 않는 import 문을 참조하는 경우 성능에 약간의 영향을 미칩니다. Java 컴파일러는 import 문에 언급 된 참조를 확인하고 분 수준에서 클래스 성능에 영향을줍니다.
감사
'developer tip' 카테고리의 다른 글
/ Ox 및 / O2 컴파일러 옵션의 차이점은 무엇입니까? (0) | 2020.11.21 |
---|---|
순환 대기열 / 래핑으로 ViewPager (0) | 2020.11.21 |
FileWriter와 BufferedWriter의 Java 차이점 (0) | 2020.11.21 |
Node.js 동일한 읽기 가능한 스트림을 여러 (쓰기 가능한) 대상으로 파이핑 (0) | 2020.11.21 |
단일 2D 배열을 할당하는 것이 전체 크기와 모양이 동일한 여러 1D 배열을 할당하는 루프보다 더 오래 걸리는 이유는 무엇입니까? (0) | 2020.11.21 |