주제가 말했듯이, BLOCKED 및 WAITING 등의 상태에서 소비 된 시간도 포함되어 있습니까? 아니면이 것이 단지 실행 가능합니까? 워드 프로세서는 단지 "CPU 시간"이라고 말하면서 다소 모호합니다 ...ThreadMXBean.getThreadCpuTime()에는 모든 상태에서 소비 된 시간이 포함됩니까? 아니면 단지 RUNNABLE입니까?
답변
실행 만 가능합니다. 그게 전부입니다. 그렇지 않으면 쓸모가 없습니다.
그렇지 않습니다. 모든 시간을 포함하면 실행 가능한 시간은 전체 차단 대기에서 파생 될 수 있습니다. 또한, 당신은 어떤 증거도 제공하지 않았고, 당신은 방금 추측처럼 보였다고 말했습니다. –
동시에 시작된 모든 스레드 차단/대기는 동일한 값을가집니다. 그것은 당신이 스스로 고안 할 수있는 아주 간단한 관찰입니다. 또는 JVM impl의 소스를 확인하십시오. 또는 질문에 증거가 필요한 경우 필요합니다. Morealso CPU 시간은 그 이름에서 알 수 있듯이 CPU 내에서 소비 된 시간입니다. BLOCKED/WAITING 상태는 OS 스케줄러에서 CPU가 아닌 휴면 상태에 놓여 있습니다. 정말 분명하다고 생각했습니다. – bestsss
ThreadMXBean.getThreadCpuTime()은 RUNNABLE 상태에서 소요 된 시간 만 포함하지만이 계산 방법은 플랫폼에 따라 다릅니다. 당신은을 통해 다른 주에서 보낸 시간의 추가 통계를받을 수 있습니다
import java.lang.management.*;
public class Test implements Runnable {
public static void main(String[] args)
throws Exception {
long time = System.nanoTime();
Test test = new Test();
synchronized (test) {
new Thread(test).start();
while (test.cpu == -1) {
test.wait();
}
}
System.out.println("time: " + (System.nanoTime() - time));
System.out.println("cpu: " + test.cpu);
}
private long cpu = -1;
public synchronized void run() {
try {
ThreadMXBean thread = ManagementFactory.getThreadMXBean();
long cpu = thread.getCurrentThreadCpuTime();
Thread.sleep(300);
long time = System.nanoTime();
while (System.nanoTime() - time < 700000000);
this.cpu = thread.getCurrentThreadCpuTime() - cpu;
}
catch (InterruptedException _) {}
finally {
notify();
}
}
}
이 앱은 어떻게 당신의 가설을 증명합니까? –
이것은 가설이 아니므로 Java 소스 코드를 살펴 보았습니다. Java 소스 코드는 "플랫폼에 달려있다"는 것을 알았습니다. 이 연구를 보여주기가 어렵 기 때문에 아무 것도 증명하지는 못했지만 상관 관계를 보여주는 테스트를 설계했습니다. – petithug
예,이 단지 RUNNABLE
입니다 : 여기
TIMED_WAITING
과 WAITING
사이의 차이는 getWaitedTime()
입니다.
- 1. gprof에서 계산 된 시간에는 프로파일되지 않은 함수에 소비 된 시간이 포함됩니까?
- 2. 자바 스크립트에 얼마나 많은 시간이 캐시에 포함됩니까?
- 3. Linux가 모든 코어의 커널에 포함됩니까?
- 4. 다음 로그 백업 - 모든 트랜잭션이 포함됩니까?
- 5. 누락 된 기능이 자동으로 포함됩니까?
- 6. 프로세스 당 소비 된 메모리
- 7. jQuery Split Button 데모 : 나만인가, 아니면 단지 2 개의 버튼인가?
- 8. 가상 디렉터리를 통해 소비 된 리소스를 확인하십시오.
- 9. TR1은 어떻게 포함됩니까?
- 10. WPF 사용자 정의 컨트롤을 사용해야합니까? 아니면 단지 격자?
- 11. 직렬화 된 객체에 메타 데이터가 포함됩니까?
- 12. 영숫자에는 _과 공백이 포함됩니까?
- 13. X에서 업데이트 된 시간이
- 14. 치수가 일치하지 않아서 오류가 발생하면 Matlab에 표현식의 모든 치수가 포함됩니까?
- 15. 레일 rabl - 모든 속성 반환, 단지 사람
- 16. 은 단지 조직의 ID가 데이터베이스에 저장하더라도, 단지
- 17. 프로세스에 소비 된 CPU 시간 대 프로세스 시간에 소비 된 월드 타임 C++
- 18. 분리 된 상태에서 관계 삭제하기
- 19. 모든 시간이 4 시간 오프셋되도록
- 20. 프로세스에 의해 소비 된 CPU 클럭을 측정하십시오.
- 21. 유휴 파일 스트림에 의해 소비 된 메모리
- 22. 시간이 다 된 계산
- 23. 왜 '@'가 댓글에 포함됩니까?
- 24. PHP 캐시는 런타임에 포함됩니까?
- 25. len은 어떻게 목록에 포함됩니까?
- 26. F # 및 WCF 소비
- 27. Wordpress - 모든 유형의 게시물을 얻으려면 ID 별 첨부 파일이 포함됩니까?
- 28. Microsoft 푸시 알림 서비스에서 반환되는 모든 정보가 uri에 포함됩니까?
- 29. 모든 단어를 제거한 상태에서 문자열을 문자열로 변환합니다.
- 30. 모든 변경 상태에서 js 스크립트를 호출하십시오.
auu, 합리적인 질문에 조금 관심이 ... – bestsss