> Java > java지도 시간 > 인스턴스 오브가 정말 느린가요? Java 1.8의 성능 벤치마크

인스턴스 오브가 정말 느린가요? Java 1.8의 성능 벤치마크

Susan Sarandon
풀어 주다: 2024-11-11 07:33:02
원래의
850명이 탐색했습니다.

 Is instanceof Really Slow? A Performance Benchmark in Java 1.8

Java에서 인스턴스 오브 사용이 성능에 미치는 영향

객체 지향 설계에 대한 비방에도 불구하고 인스턴스 오브 연산자는 애플리케이션에서 여전히 일반적인 설계 선택으로 남아 있습니다. . 성능이 여전히 우려되는 반면, 그 영향은 종종 논쟁의 여지가 있습니다. 이 주제를 밝히기 위해 철저한 벤치마크 분석이 수행되었습니다.

벤치마크 구현

4가지 구현의 성능을 평가하기 위해 벤치마크 프로그램이 만들어졌습니다.

  • instance 구현( 참고)
  • 객체 지향(메서드가 재정의된 추상 클래스)
  • 사용자 정의 유형 구현
  • getClass() == _.class 구현

결과

10개의 포크로 10,000회 반복한 후 평균 시간은 다음과 같습니다. 기록됨:

Operation Runtime in nanoseconds per operation Relative to instanceof
INSTANCEOF 39,598 100.00%
GETCLASS 39,687 100.22%
TYPE 46,295 116.91%
OO 48,078 121.42%

분석

  • instanceofgetClass()에는 무시할 만한 성능 차이가 있습니다. instanceof는 상당한 영향을 미치지 않습니다. 오버헤드.
  • 사용자 정의 유형 ID를 사용하면 instanceof에 비해 중간 정도의 성능 저하가 발생했습니다.
  • 객체 지향 접근 방식이 가장 느렸지만 차이는 크지 않았습니다.

결론

Java 1.8에서는 instanceof 연산자가 유형 검사를 위한 가장 빠른 옵션입니다. getClass()보다 약간 빠르며 사용자 정의 유형 ID나 객체 지향 접근 방식보다 훨씬 빠릅니다. 성능에 미치는 영향이 최소화된 경우 instanceof는 성능이 중요한 시나리오에서 유형 확인을 위한 실행 가능한 선택으로 남아 있습니다.

위 내용은 인스턴스 오브가 정말 느린가요? Java 1.8의 성능 벤치마크의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿