Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8235794 | 11.0.7-oracle | Daniil Titov | P4 | Resolved | Fixed | b01 |
JDK-8237334 | 11.0.7 | Daniil Titov | P4 | Resolved | Fixed | b01 |
The implementation of getThreadInfo(long ids[], int maxDepth) iterates over the ids array, calling Threads::find_java_thread_from_java_tid() for each one. find_java_thread_from_java_tid() does a linear search over the thread list, so if the ids array length is large, it can take quite some time to find the corresponding JavaThread*s. One idea is to add find_java_threads_from_java_tids() to get them all at once and have it put the content of the ids array into a set (hashtable, perhaps) for a "sufficiently large" ids array.
- backported by
-
JDK-8235794 Improve performance of ThreadMXBean.getThreadInfo(long ids[], int maxDepth)
-
- Resolved
-
-
JDK-8237334 Improve performance of ThreadMXBean.getThreadInfo(long ids[], int maxDepth)
-
- Resolved
-
- relates to
-
JDK-8207266 ThreadMXBean::getThreadAllocatedBytes() can be quicker for self thread
-
- Resolved
-
-
JDK-8231666 ThreadIdTable::grow() invokes invalid thread transition
-
- Closed
-
-
JDK-8229391 Improve performance for com.sun.management.ThreadMXBean#getThreadAllocatedBytes(long) for current thread
-
- Open
-