2014-04-16 2 views
1

나의 테스트에서 Java로 정의 된 인터페이스에서 함수를 호출하는 것은 확장 추상 클래스 (my macbook에서)를 사용하는 것보다 실행하는데 약 200 나노 이상 걸린다. 예상되는 오버 헤드입니까?추상 클래스보다 Java 인터페이스의 퍼포먼스 오버 헤드

+4

벤치 마크 코드를 게시 할 수 있습니까? –

+3

나는 적절한 방법으로 벤치마킹하지 않았다고 생각합니다. – Kon

답변

0

Java 구현의 세부 사항에 대해서는 잘 모릅니다. 그러나 다른 언어에 대한 컴파일러 작업 경험을 토대로 한 클래스는 하나의 추상 클래스 만 확장 할 수 있지만 여러 인터페이스를 구현할 수 있으므로 올바른 메소드를 찾는 프로세스가 약간의 복잡성이 있기 때문에 약간 더 오래 걸릴 것이라고 생각합니다. 다이나믹 디스패치를 ​​지원하는 데 필요한 데이터 구조 그래서이 결과는 나를 놀라게하지 않습니다.

0

귀하의 벤치 마크가 깨졌습니다 (Java 벤치마킹이 pretty hard 임). 오버 헤드는 과거 CPU를 사용하지 않는 한 200ns보다 훨씬 낮아야합니다.

인터페이스가 약간 느린 경우가 있지만 my question에서 볼 수있는 것처럼 작업이 훨씬 복잡합니다.