2012-06-06 1 views
3

이 개념의 질문에 대해 자세히 설명합니다. 어떤 알고리즘이든 JVM에서 OS로 전달 된 명령어를 캡처하는 동안 어떤 알고리즘을 사용했는지 궁금합니다.알고리즘 집합을 실행하기위한 JVM 명령어

우리가 응용 프로그램의 성능을 말한다면 프로세스의 수, CPU의 수, CPU의 속도, 사용 가능한 메모리 등등과 같은 변수가 너무 많습니다. 내가 뭘 찾고 있는지 기본적으로 모든 의존성을 추상화하는 방식이므로 기본적으로 JVM에서 전달되는 명령어 수에 따라 달라지며 다른 변수에 따라 이러한 명령어를 더 빨리 또는 더 느리게 실행할 수 있습니다.

이러한 코드에 연결할 수있는 방법이 있습니까? 해당 정보를 얻을 수 있습니까?

나는 그 추상적 인 사실을 알고 있지만 어떤 단순한 형태로든 그것을 넣을 수 있는지 확신 할 수 없다.

감사합니다.

답변

1

정말 그렇게 할 수 없습니다.

시간이 지남에 따라 주어진 (작은) 코드 조각의 속도 사이클을 계산할 수 있습니다 (사용 된 참조에서 사용할 수있는 주어진 x86 어셈블러 명령의 밀리 초 기간을 분명히 기억합니다. Intel 8086 CPU에 유효 함).

하지만 현대 하드웨어는 소프트웨어 최적화를 말하는 것이 아니라 다양한 종류의 최적화를 수행하므로 이러한 것들을 "추상화"할 수있는 쉬운 방법이 없습니다. 관계조차 다를 수 있습니다 (계산은 아키텍처 # 1에서 메모리 액세스보다 10 배 더 빠르며 아키텍처 # 2에서는 20 배 더 빠름). 다른 CPU 캐시 레벨 크기만으로도 코드 조각의 실제 속도에 큰 영향을 줄 수 있습니다.

그러나 방법을 찾았 으면이를 특허하고 숨길 수 있습니다. 당신은 그걸로 많은 돈을 벌 수 있어야합니다.

관련 문제