Giống như chủ đề nói, nó có bao gồm thời gian dành cho BLOCKED và WAITING etc, hay không, hay chỉ là RUNNABLE? Tài liệu chỉ nói "thời gian cpu", hơi mơ hồ ...Có ThreadMXBean.getThreadCpuTime() bao gồm thời gian dành cho tất cả các trạng thái hay chỉ RUNNABLE?
Trả lời
Chỉ có thể chạy. Đó là nó, nếu không nó sẽ là vô ích.
Không phải như vậy. Nếu nó bao gồm tất cả thời gian, thời gian runnable có thể được bắt nguồn từ tổng số - bị chặn - chờ đợi. Ngoài ra, bạn đã không cung cấp bất kỳ bằng chứng về bất cứ điều gì, bạn đã chỉ tuyên bố những gì trông giống như một đoán. –
nếu nó đã bao gồm. chặn/chờ tất cả các chủ đề bắt đầu cùng một lúc sẽ có cùng giá trị. Đó là một quan sát khá đơn giản mà bạn có thể tự tạo ra. Ngoài ra, hãy kiểm tra nguồn của JVM impl ... Hoặc nếu bạn cần trạng thái chứng minh nếu trong câu hỏi. Thời gian CPU của Morealso như tên gọi của nó là thời gian đã được sử dụng trong CPU. Trạng thái BLOCKED/WAITING nằm im trong bộ lập lịch hệ điều hành không phải CPU, tôi thực sự nghĩ rằng nó là hiển nhiên. – bestsss
ThreadMXBean.getThreadCpuTime() chỉ bao gồm thời gian ở trạng thái RUNNABLE, nhưng lưu ý rằng cách tính toán này phụ thuộc vào nền tảng.
Dưới đây là một chương trình mà cho thấy getThreadCpuTime() chỉ bao gồm thời gian thread đang thực sự làm điều gì đó:
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();
}
}
}
Ứng dụng này chứng minh giả thuyết của bạn như thế nào? –
Nó không phải là một giả thuyết, tôi nhìn vào mã nguồn Java, đó là cách tôi phát hiện ra rằng nó "phụ thuộc vào nền tảng". Bởi vì rất khó để cho thấy nghiên cứu này, tôi đã thiết kế một thử nghiệm, mặc dù nó không chứng minh bất cứ điều gì, cho thấy sự tương quan. – petithug
Có, đây là chỉ RUNNABLE
, bạn có thể nhận được thống kê thêm thời gian dành cho các quốc gia khác thông qua ThreadInfo với các phương pháp sau:
Không còn phân biệt đối xử giữa TIMED_WAITING
và WAITING
trong getWaitedTime()
.
- 1. Bao gồm tất cả các phụ thuộc
- 2. Không gian tên vô danh bao gồm tất cả các không gian tên?
- 3. Kết xuất chuỗi hiển thị trạng thái Runnable, nhưng nó bị treo trong một thời gian khá dài
- 4. API cho thời gian đi lại bao gồm cả giao thông?
- 5. Truy vấn MySQL: Thời gian dài ở trạng thái 'init'
- 6. C# có bao gồm các máy trạng thái hữu hạn không?
- 7. Thời gian `gprof` dành cho các dòng mã cụ thể
- 8. Trả về tất cả các giá trị bao gồm NULL
- 9. Android.mk, bao gồm tất cả các tệp cpp
- 10. Date.getTime() không bao gồm thời gian?
- 11. Có bao gồm chỉ số z-index tăng thời gian xử lý trình duyệt không?
- 12. Tìm tất cả việc sử dụng trạng thái phiên
- 13. phương thức setStage forState đặt hình ảnh cho tất cả các trạng thái trên một nút
- 14. Trạng thái MySQL "các bảng đóng" lấy gấp đôi thời gian của quá trình
- 15. Có thể trả lời nhiều hàng loạt bao gồm trả lời trạng thái hoặc lỗi không?
- 16. trạng thái git mất quá nhiều thời gian
- 17. Các tệp Javascript có nên bao gồm BOM hay không?
- 18. Tạo CSR cho miền gốc (bao gồm www hay không?)
- 19. Kết hợp: tạo tất cả "trạng thái" - kết hợp mảng
- 20. Danh sách toàn diện các mã trạng thái HTTP KHÔNG BAO GỒM MỘT CƠ THỂ RESPONSE
- 21. Siêu kết nối XJC và siêu lớp chỉ dành cho tất cả các lớp?
- 22. Cách tính toán thời gian chạy từ trạng thái và thời gian sử dụng python
- 23. g ++ bao gồm tất cả/usr/include đệ quy
- 24. HTTPS có trạng thái hoặc trạng thái không?
- 25. Tất cả các từ dành riêng cho mỗi DBMS
- 26. Plugin Scatter-plot tốt cho JQuery (bao gồm cả mẫu pic)?
- 27. PHP bao gồm thứ tự đường dẫn và bộ nhớ cache trạng thái
- 28. tìm thấy tất cả các chức năng (bao gồm cả tư nhân) trong một gói
- 29. Có thể resharper tạo ra tostrings bao gồm tất cả các thuộc tính của lớp?
- 30. Có bất kỳ nhược điểm nào để ghép tất cả các tệp JavaScript (bao gồm cả nhà cung cấp)
auu, rất ít quan tâm đến một câu hỏi hợp lý ... – bestsss