2011-01-03 4 views
10

대학의 경우 바이트 코드 수정을 수행하고 Java 프로그램의 성능에 미치는 영향을 분석합니다. 따라서 Java 프로그램 - 생산에 가장 적합한 경우 -와 적절한 벤치 마크가 필요합니다. 예를 들어, 이미 HyperSQL을 얻었고 벤치 마크 프로그램 PolePosition으로 성능을 측정했습니다. JIT 컴파일러없이 JVM에서 실행되는 Java 프로그램. 당신의 도움을 주셔서 감사합니다!벤치마킹 Java 프로그램

P .: 프로그램을 사용하여 JVM 또는 Java 언어 자체 (예 : Wide Finder)의 성능을 벤치 마크 할 수 없습니다.

+0

당신이하고 싶은 것이 분명하지 않습니다. 좀 더 설명해 주시겠습니까? – Riduidel

+1

바이트 코드는 대개 최적화되지 않고 대신 JIT가 생성 한 원시 코드를 최적화합니다. 따라서 바이트 코드를 변경해도 네이티브 코드로 변환되는 방식에 따라 예상대로 성능이 향상되지 않습니다. –

+0

@ Peter, 그는 최상의 성능을 제공하는 시나리오를 찾고 있다고 생각합니다. – UVM

답변

8

브렌트 보이어 (Brent Boyer)는 IBM 개발자 작업을위한 멋진 기사 시리즈 인 Robust Java benchmarking을 작성했습니다. 여기에는 건전한 통계적 접근 방식을 기반으로하는 마이크로 벤치마킹 프레임 워크가 수반됩니다. ArticleResources Page.

대학 진도를 생각하면 Andy Georges, Dries Buytaert, Lieven Eeckhout: Statistically rigorous java performance evaluation in OOPSLA 2007에 관심이있을 수 있습니다.

0

숙련 된 프로그래머라면 조기 최적화가 최적화가없는 것보다 더 나을 것이라고 말합니다. 자원 낭비가 가장 많으며, 최악의 상황에서 무한한 미래 (현재) 문제의 원인이됩니다.

벤치 마크 로그가있는 애플리케이션이라도 컨텍스트가 없어도 아무 것도 알려주지 않습니다. 완료하려면 10 시간이 걸릴 루프가있을 수 있습니다 벤치 마크는 거의 영원히 복용 표시하지만 성능에 중요하지 않기 때문에 상관 없어. 다른 루프는 단지 밀리 초가 걸리지 만 너무 길면 100 마이크로 초 간격으로 수신되는 들어오는 데이터 패킷을 포착하지 못하게됩니다.

두 가지 극단이 있지만 둘 다 (동일한 애플리케이션에서도) 발생할 수 있으며 애플리케이션, 사용 방법, 수행 조건 및 요구 사항을 알지 못한다면 결코 알 수 없습니다.

사용자 인터페이스가 렌더링 시간이 1/2 초 정도 걸리거나 문제가없는 경우 컨텍스트는 무엇입니까? 사용자 기대치는 무엇입니까?

8

Caliper은 마이크로 벤치마킹을 위해 Google에서 제공하는 도구입니다. 그것은 그래프와 모든 것을 제공 할 것입니다. 이 도구를 함께 사용하는 사람들은 "조기 최적화가 모든 악의 근원"이라는 원칙에 매우 익숙하며 벤치마킹의 역할을 설명하는 데 매우 신중합니다.