나의 테스트에서 Java로 정의 된 인터페이스에서 함수를 호출하는 것은 확장 추상 클래스 (my macbook에서)를 사용하는 것보다 실행하는데 약 200 나노 이상 걸린다. 예상되는 오버 헤드입니까?추상 클래스보다 Java 인터페이스의 퍼포먼스 오버 헤드
1
A
답변
0
Java 구현의 세부 사항에 대해서는 잘 모릅니다. 그러나 다른 언어에 대한 컴파일러 작업 경험을 토대로 한 클래스는 하나의 추상 클래스 만 확장 할 수 있지만 여러 인터페이스를 구현할 수 있으므로 올바른 메소드를 찾는 프로세스가 약간의 복잡성이 있기 때문에 약간 더 오래 걸릴 것이라고 생각합니다. 다이나믹 디스패치를 지원하는 데 필요한 데이터 구조 그래서이 결과는 나를 놀라게하지 않습니다.
0
귀하의 벤치 마크가 깨졌습니다 (Java 벤치마킹이 pretty hard 임). 오버 헤드는 과거 CPU를 사용하지 않는 한 200ns보다 훨씬 낮아야합니다.
인터페이스가 약간 느린 경우가 있지만 my question에서 볼 수있는 것처럼 작업이 훨씬 복잡합니다.
관련 문제
- 1. 추상 클래스보다 인터페이스의 장점은 무엇입니까?
- 2. 자바 스크립트 라이브러리의 퍼포먼스 오버 헤드
- 3. 오버 헤드
- 4. Java 함수 호출 오버 헤드 최소화
- 5. Java OOP 계층 구조 - 오버 헤드 방지
- 6. 낮은 오버 헤드 Java 웹 서비스 컨테이너?
- 7. Java JVM 또는 Eclipse 시작 오버 헤드
- 8. 추상 및 인터페이스의 사용
- 9. ROWDEPENDENCIES 오라클의 오버 헤드
- 10. 개방 연결 오버 헤드
- 11. ScheduledThreadPoolExecutor를 사용하는 오버 헤드
- 12. 데이터베이스에 연결하는 오버 헤드
- 13. 묶인 대기열 오버 헤드
- 14. 공유 객체 오버 헤드
- 15. 최소한의 네트워크 오버 헤드
- 16. NSNotification observer 오버 헤드
- 17. D 클래스의 오버 헤드
- 18. Android - SendBroadcast 오버 헤드
- 19. 그림 다운로드 오버 헤드
- 20. 스레드 오버 헤드
- 21. 가상 함수와 오버 헤드
- 22. HDF5 스토리지 오버 헤드
- 23. Laravel 성능 오버 헤드
- 24. DLL 함수 오버 헤드
- 25. CoreData 메모리 오버 헤드
- 26. System.Diagnostics.Trace 오버 헤드
- 27. 불변의 사전 오버 헤드?
- 28. SQL Union 오버 헤드
- 29. shim의 시스템 오버 헤드
- 30. 행 크기 오버 헤드
벤치 마크 코드를 게시 할 수 있습니까? –
나는 적절한 방법으로 벤치마킹하지 않았다고 생각합니다. – Kon