Collected 4,802 samples.
| Category | % | Samples |
|---|---|---|
| Ours | 57.8% | 2,777 |
| Native | 26.3% | 1,262 |
| Standard library | 13.7% | 657 |
| JIT | 1.1% | 54 |
| Compiler | 1.1% | 52 |
Functions ranked by samples taken directly in the function body, excluding callees.
| % | Samples | Function | Location |
|---|---|---|---|
| 19.3% | 926 | distance(Double[], Double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 18.8% | 901 | accumulate(Double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 14.1% | 679 | __psynch_cvwait |
libsystem_kernel.dylib |
| 8.6% | 411 | vectorSum() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 8.5% | 410 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 5.1% | 245 | forward_copy_longs |
<unknown> |
| 3.6% | 173 | elementData(int) |
java.util.ArrayList |
| 2.8% | 133 | computeIfAbsent(Object, Function) |
java.util.HashMap |
| 2.4% | 114 | collectClusters(int[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 2.1% | 99 | doubleValue() |
java.lang.Double |
| 1.2% | 56 | add(Object, Object[], int) |
java.util.ArrayList |
| 1.1% | 53 | zero_blocks |
<unknown> |
| 1.0% | 49 | __psynch_cvsignal |
libsystem_kernel.dylib |
| 0.6% | 29 | _platform_bzero |
libsystem_platform.dylib |
| 0.6% | 29 | hash(Object) |
java.util.HashMap |
| 0.5% | 26 | grow(int) |
java.util.ArrayList |
| 0.5% | 25 | checkIndex(int, int) |
java.util.Objects |
| 0.5% | 24 | helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean) |
java.util.concurrent.ForkJoinPool |
| 0.5% | 24 | semaphore_wait_trap |
libsystem_kernel.dylib |
| 0.4% | 17 | arrayof_jint_disjoint_arraycopy |
<unknown> |
| % | Samples | Function | Location |
|---|---|---|---|
| 19.3% | 926 | distance(Double[], Double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 18.8% | 901 | accumulate(Double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 8.6% | 411 | vectorSum() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 8.5% | 410 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 2.4% | 114 | collectClusters(int[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| <0.1% | 2 | accept(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001186d88 |
| <0.1% | 2 | add(double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| <0.1% | 2 | combineResults(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| <0.1% | 2 | <init>(JavaKMeans, int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| <0.1% | 1 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| <0.1% | 1 | div(double[], int) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| <0.1% | 1 | lambda$generateData$3(int, int, Random[], int) |
org.renaissance.jdk.concurrent.JavaKMeans |
| <0.1% | 1 | createSubtask(int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| <0.1% | 1 | createSubtask(int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| <0.1% | 1 | <init>(JavaKMeans, List, List, int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| <0.1% | 1 | combineResults(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| % | Samples | Function | Location |
|---|---|---|---|
| 14.1% | 679 | __psynch_cvwait |
libsystem_kernel.dylib |
| 5.1% | 245 | forward_copy_longs |
<unknown> |
| 1.0% | 49 | __psynch_cvsignal |
libsystem_kernel.dylib |
| 0.6% | 29 | _platform_bzero |
libsystem_platform.dylib |
| 0.5% | 24 | semaphore_wait_trap |
libsystem_kernel.dylib |
| 0.4% | 17 | arrayof_jint_disjoint_arraycopy |
<unknown> |
| 0.3% | 16 | _platform_memset |
libsystem_platform.dylib |
| 0.3% | 13 | pthread_jit_write_protect_np |
libsystem_pthread.dylib |
| 0.2% | 12 | __psynch_mutexwait |
libsystem_kernel.dylib |
| 0.2% | 12 | void G1ScanEvacuatedObjClosure::do_oop_work<narrowOop> |
libjvm.dylib |
| 0.2% | 11 | G1ParScanThreadState::do_copy_to_survivor_space |
libjvm.dylib |
| 0.2% | 9 | G1FullGCMarker::mark_object |
libjvm.dylib |
| 0.1% | 7 | tlv_get_addr |
libdyld.dylib |
| 0.1% | 7 | inflate_fast |
libzip.dylib |
| 0.1% | 6 | ClassLoaderDataGraphKlassIteratorAtomic::next_klass |
libjvm.dylib |
| 0.1% | 5 | void G1ScanClosureBase::handle_non_cset_obj_common<narrowOop> |
libjvm.dylib |
| 0.1% | 5 | void OopOopIterateDispatch<G1AdjustClosure>::Table::oop_oop_iterate<ObjArrayKlass, narrowOop> |
libjvm.dylib |
| 0.1% | 4 | void HeapRegion::apply_to_marked_objects<G1AdjustLiveClosure> |
libjvm.dylib |
| 0.1% | 4 | G1BarrierSet::invalidate |
libjvm.dylib |
| 0.1% | 4 | semaphore_signal_trap |
libsystem_kernel.dylib |
| % | Samples | Function | Location |
|---|---|---|---|
| 3.6% | 173 | elementData(int) |
java.util.ArrayList |
| 2.8% | 133 | computeIfAbsent(Object, Function) |
java.util.HashMap |
| 2.1% | 99 | doubleValue() |
java.lang.Double |
| 1.2% | 56 | add(Object, Object[], int) |
java.util.ArrayList |
| 0.6% | 29 | hash(Object) |
java.util.HashMap |
| 0.5% | 26 | grow(int) |
java.util.ArrayList |
| 0.5% | 25 | checkIndex(int, int) |
java.util.Objects |
| 0.5% | 24 | helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean) |
java.util.concurrent.ForkJoinPool |
| 0.2% | 8 | merge(Object, Object, BiFunction) |
java.util.HashMap |
| 0.1% | 6 | copyOf(Object[], int) |
java.util.Arrays |
| 0.1% | 5 | forEach(BiConsumer) |
java.util.HashMap |
| 0.1% | 4 | tryRemoveAndExec(ForkJoinTask, boolean) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 0.1% | 4 | scan(ForkJoinPool$WorkQueue, int, int) |
java.util.concurrent.ForkJoinPool |
| 0.1% | 4 | add(Object) |
java.util.ArrayList |
| 0.1% | 4 | grow() |
java.util.ArrayList |
| 0.1% | 4 | newLength(int, int, int) |
jdk.internal.util.ArraysSupport |
| 0.1% | 3 | exec() |
java.util.concurrent.RecursiveTask |
| 0.1% | 3 | runWorker(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| 0.1% | 3 | signalWaiters() |
java.util.concurrent.ForkJoinTask |
| 0.1% | 3 | putVal(int, Object, Object, boolean, boolean) |
java.util.HashMap |
| % | Samples | Function | Location |
|---|---|---|---|
| 1.1% | 53 | zero_blocks |
<unknown> |
| <0.1% | 1 | I2C/C2I adapters(0xaabb) |
<unknown> |
| % | Samples | Function | Location |
|---|---|---|---|
| 0.1% | 4 | PhaseChaitin::build_ifg_physical |
libjvm.dylib |
| 0.1% | 3 | PhaseIdealLoop::build_loop_late_post_work |
libjvm.dylib |
| <0.1% | 2 | PhaseChaitin::gather_lrg_masks |
libjvm.dylib |
| <0.1% | 2 | IndexSetIterator::advance_and_next |
libjvm.dylib |
| <0.1% | 2 | PhaseIdealLoop::dom_lca_for_get_late_ctrl_internal |
libjvm.dylib |
| <0.1% | 1 | Type::singleton |
libjvm.dylib |
| <0.1% | 1 | IdealKit::clear |
libjvm.dylib |
| <0.1% | 1 | TypeOopPtr::is_loaded |
libjvm.dylib |
| <0.1% | 1 | Type::cmp |
libjvm.dylib |
| <0.1% | 1 | PhaseLive::compute |
libjvm.dylib |
| <0.1% | 1 | RegMask::is_bound |
libjvm.dylib |
| <0.1% | 1 | Matcher::xform |
libjvm.dylib |
| <0.1% | 1 | PhaseIdealLoop::is_dominator |
libjvm.dylib |
| <0.1% | 1 | PhaseChaitin::Split |
libjvm.dylib |
| <0.1% | 1 | PhaseIdealLoop::Dominators |
libjvm.dylib |
| <0.1% | 1 | PhaseRemoveUseless::PhaseRemoveUseless |
libjvm.dylib |
| <0.1% | 1 | CompilationPolicy::create_mdo |
libjvm.dylib |
| <0.1% | 1 | AdapterHandlerLibrary::get_adapter |
libjvm.dylib |
| <0.1% | 1 | LinearScan::resolve_data_flow |
libjvm.dylib |
| <0.1% | 1 | IntervalWalker::walk_to |
libjvm.dylib |
Lines ranked by contribution to each function's self samples.
| % | Samples | Location |
|---|---|---|
| 58.6% | 543 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:248 |
| 39.6% | 367 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:249 |
| 1.6% | 15 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:250 |
| 0.1% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:247 |
| % | Samples | Location |
|---|---|---|
| 82.5% | 743 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:412 |
| 17.5% | 158 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:411 |
| % | Samples | Location |
|---|---|---|
| 83.0% | 341 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:403 |
| 16.8% | 69 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:402 |
| 0.2% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:400 |
| % | Samples | Location |
|---|---|---|
| 47.3% | 194 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:231 |
| 34.6% | 142 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:230 |
| 9.8% | 40 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:229 |
| 6.1% | 25 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:226 |
| 2.2% | 9 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:225 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 173 | java.util.ArrayList:411 |
| % | Samples | Location |
|---|---|---|
| 24.8% | 33 | java.util.HashMap:1197 |
| 21.8% | 29 | java.util.HashMap:1213 |
| 18.8% | 25 | java.util.HashMap:1207 |
| 16.5% | 22 | java.util.HashMap:1204 |
| 7.5% | 10 | java.util.HashMap:1222 |
| % | Samples | Location |
|---|---|---|
| 30.7% | 35 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:213 |
| 28.9% | 33 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:212 |
| 19.3% | 22 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:215 |
| 12.3% | 14 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:214 |
| 8.8% | 10 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:211 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 99 | java.lang.Double:1001 |
| % | Samples | Location |
|---|---|---|
| 85.7% | 48 | java.util.ArrayList:482 |
| 12.5% | 7 | java.util.ArrayList:484 |
| 1.8% | 1 | java.util.ArrayList:483 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 29 | java.util.HashMap:338 |
| % | Samples | Location |
|---|---|---|
| 92.3% | 24 | java.util.ArrayList:239 |
| 7.7% | 2 | java.util.ArrayList:233 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 25 | java.util.Objects:385 |
| % | Samples | Location |
|---|---|---|
| 25.0% | 6 | java.util.concurrent.ForkJoinPool:2053 |
| 12.5% | 3 | java.util.concurrent.ForkJoinPool:2041 |
| 12.5% | 3 | java.util.concurrent.ForkJoinPool:2051 |
| 12.5% | 3 | java.util.concurrent.ForkJoinPool:2058 |
| 8.3% | 2 | java.util.concurrent.ForkJoinPool:2057 |
| % | Samples | Location |
|---|---|---|
| 62.5% | 5 | java.util.HashMap:1384 |
| 25.0% | 2 | java.util.HashMap:1378 |
| 12.5% | 1 | java.util.HashMap:1400 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 6 | java.util.Arrays:3482 |
| % | Samples | Location |
|---|---|---|
| 60.0% | 3 | java.util.HashMap:1428 |
| 40.0% | 2 | java.util.HashMap:1429 |
| % | Samples | Location |
|---|---|---|
| 50.0% | 2 | java.util.concurrent.ForkJoinPool$WorkQueue:1331 |
| 25.0% | 1 | java.util.concurrent.ForkJoinPool$WorkQueue:1343 |
| 25.0% | 1 | java.util.concurrent.ForkJoinPool$WorkQueue:1344 |
| % | Samples | Location |
|---|---|---|
| 50.0% | 2 | java.util.concurrent.ForkJoinPool:1829 |
| 25.0% | 1 | java.util.concurrent.ForkJoinPool:1835 |
| 25.0% | 1 | java.util.concurrent.ForkJoinPool:1846 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 4 | java.util.ArrayList:495 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 4 | java.util.ArrayList:244 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 4 | jdk.internal.util.ArraysSupport:741 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 3 | java.util.concurrent.RecursiveTask:110 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 3 | java.util.concurrent.ForkJoinPool:1808 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 3 | java.util.concurrent.ForkJoinTask:301 |
| % | Samples | Location |
|---|---|---|
| 33.3% | 1 | java.util.HashMap:636 |
| 33.3% | 1 | java.util.HashMap:634 |
| 33.3% | 1 | java.util.HashMap:647 |
| % | Samples | Location |
|---|---|---|
| 50.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:430 |
| 50.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:433 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 2 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:367 |
| % | Samples | Location |
|---|---|---|
| 50.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$RangedTask:137 |
| 50.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$RangedTask:138 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:367 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask:339 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans:86 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask:419 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:261 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask:190 |
| % | Samples | Location |
|---|---|---|
| 100.0% | 1 | org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask:276 |
Callers ranked by contribution to each function's self samples. Inlining can make caller attribution imprecise.
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 926 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 901 | vectorSum() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 97.1% | 659 | Parker::park |
libjvm.dylib |
| 2.8% | 19 | PlatformMonitor::wait |
libjvm.dylib |
| 0.1% | 1 | Profiler::timerLoop |
libasyncProfiler.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 411 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 410 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 81.2% | 199 | arrayof_jint_disjoint_arraycopy |
<unknown> |
| 18.8% | 46 | arrayof_oop_disjoint_arraycopy |
<unknown> |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 173 | get(int) |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 133 | collectClusters(int[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 114 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 89.9% | 89 | accumulate(Double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 10.1% | 10 | distance(Double[], Double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 56 | add(Object) |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 77.4% | 41 | merge(Object, Object, BiFunction) |
java.util.HashMap |
| 18.9% | 10 | grow(int) |
java.util.ArrayList |
| 1.9% | 1 | resize() |
java.util.HashMap |
| 1.9% | 1 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 49 | Unsafe_Unpark |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 29 | MemAllocator::allocate |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 93.1% | 27 | computeIfAbsent(Object, Function) |
java.util.HashMap |
| 6.9% | 2 | merge(Object, Object, BiFunction) |
java.util.HashMap |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 26 | grow() |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 25 | get(int) |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 24 | awaitDone(int, long) |
java.util.concurrent.ForkJoinTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 66.7% | 16 | WorkerThread::run |
libjvm.dylib |
| 29.2% | 7 | GenericWaitBarrier::Cell::wait |
libjvm.dylib |
| 4.2% | 1 | WorkerThreads::run_task |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 47.1% | 8 | copyOf(Object[], int) |
java.util.Arrays |
| 35.3% | 6 | grow(int) |
java.util.ArrayList |
| 17.6% | 3 | merge(Object, Object, BiFunction) |
java.util.HashMap |
| % | Samples | Caller | Location |
|---|---|---|---|
| 87.5% | 14 | MemAllocator::allocate |
libjvm.dylib |
| 6.3% | 1 | PhaseCFG::PhaseCFG |
libjvm.dylib |
| 6.3% | 1 | HeapRegionManager::expand_by |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 38.5% | 5 | Unsafe_Park |
libjvm.dylib |
| 23.1% | 3 | OptoRuntime::new_array_C |
libjvm.dylib |
| 15.4% | 2 | Unsafe_Unpark |
libjvm.dylib |
| 7.7% | 1 | Unsafe_CompareAndExchangeLong |
libjvm.dylib |
| 7.7% | 1 | Unsafe_AllocateInstance |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 12 | _pthread_mutex_firstfit_lock_slow |
libsystem_pthread.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 83.3% | 10 | G1ParScanThreadState::do_partial_array |
libjvm.dylib |
| 8.3% | 1 | G1ParScanThreadState::trim_queue_to_threshold |
libjvm.dylib |
| 8.3% | 1 | G1ParScanThreadState::start_partial_objarray |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 81.8% | 9 | G1ParScanThreadState::trim_queue_to_threshold |
libjvm.dylib |
| 9.1% | 1 | G1ParEvacuateFollowersClosure::do_void |
libjvm.dylib |
| 9.1% | 1 | G1ScanHRForRegionClosure::scan_memregion |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 55.6% | 5 | void objArrayOopDesc::oop_iterate_range<G1MarkAndPushClosure> |
libjvm.dylib |
| 22.2% | 2 | G1FullGCMarker::complete_marking |
libjvm.dylib |
| 22.2% | 2 | void OopOopIterateDispatch<G1MarkAndPushClosure>::Table::oop_oop_iterate<InstanceKlass, narrowOop> |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 8 | lambda$merge$7(Map, Object, List) |
org.renaissance.jdk.concurrent.JavaKMeans |
| % | Samples | Caller | Location |
|---|---|---|---|
| 28.6% | 2 | arrayof_oop_disjoint_arraycopy |
<unknown> |
| 14.3% | 1 | PhaseChaitin::get_spillcopy_wide |
libjvm.dylib |
| 14.3% | 1 | BlockListBuilder::BlockListBuilder |
libjvm.dylib |
| 14.3% | 1 | PhaseChaitin::gather_lrg_masks |
libjvm.dylib |
| 14.3% | 1 | Unsafe_Unpark |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 7 | Java_java_util_zip_Inflater_inflateBytesBytes |
libzip.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 6 | KlassCleaningTask::work |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 50.0% | 3 | grow(int) |
java.util.ArrayList |
| 50.0% | 3 | toArray() |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 60.0% | 3 | G1ParScanThreadState::do_partial_array |
libjvm.dylib |
| 40.0% | 2 | void G1ScanEvacuatedObjClosure::do_oop_work<narrowOop> |
libjvm.dylib |
void OopOopIterateDispatch<G1AdjustClosure>::Table::oop_oop_iterate<ObjArrayKlass, narrowOop> (libjvm.dylib)
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 5 | void HeapRegion::apply_to_marked_objects<G1AdjustLiveClosure> |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 5 | merge(Map, Map) |
org.renaissance.jdk.concurrent.JavaKMeans |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | G1AdjustRegionClosure::do_heap_region |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | arrayof_oop_disjoint_arraycopy |
<unknown> |
| % | Samples | Caller | Location |
|---|---|---|---|
| 50.0% | 2 | GenericWaitBarrier::Cell::wait |
libjvm.dylib |
| 25.0% | 1 | GenericWaitBarrier::Cell::disarm |
libjvm.dylib |
| 25.0% | 1 | WorkerThreads::run_task |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | awaitDone(int, long) |
java.util.concurrent.ForkJoinTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | runWorker(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | collectClusters(int[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | add(Object, Object[], int) |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | grow(int) |
java.util.ArrayList |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 4 | PhaseChaitin::Register_Allocate |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 3 | doExec() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 3 | run() |
java.util.concurrent.ForkJoinWorkerThread |
| % | Samples | Caller | Location |
|---|---|---|---|
| 66.7% | 2 | setDone() |
java.util.concurrent.ForkJoinTask |
| 33.3% | 1 | awaitDone(int, long) |
java.util.concurrent.ForkJoinTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 3 | putMapEntries(Map, boolean) |
java.util.HashMap |
| % | Samples | Caller | Location |
|---|---|---|---|
| 66.7% | 2 | PhaseIdealLoop::build_loop_late |
libjvm.dylib |
| 33.3% | 1 | PhaseIdealLoop::build_and_optimize |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 2 | forEach(BiConsumer) |
java.util.HashMap |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 2 | combineResults(double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 2 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 50.0% | 1 | <init>(JavaKMeans, List, int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 50.0% | 1 | <init>(JavaKMeans, List, List, int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 2 | PhaseChaitin::Register_Allocate |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 50.0% | 1 | PhaseIFG::effective_degree |
libjvm.dylib |
| 50.0% | 1 | PhaseIFG::SquareUp |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 2 | PhaseIdealLoop::compute_lca_of_uses |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | average(List) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | apply(int) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001125b10 |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | createSubtask(int, int) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | apply(int) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f0011258d8 |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | PhaseCCP::transform_once |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | ModRefBarrierSetC2::store_at_resolved |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | TypeInstPtr::is_same_java_type_as_helper |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | Dict::Insert |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | PhaseChaitin::Register_Allocate |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | PhaseChaitin::gather_lrg_masks |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | Matcher::match |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | PhaseIdealLoop::get_late_ctrl_with_anti_dep |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | PhaseChaitin::Register_Allocate |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | PhaseIdealLoop::build_and_optimize |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | C2Compiler::compile_method |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | CompilationPolicy::event |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | InstanceKlass::link_methods |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | LinearScan::do_linear_scan |
libjvm.dylib |
| % | Samples | Caller | Location |
|---|---|---|---|
| 100.0% | 1 | IntervalWalker::walk_to |
libjvm.dylib |
Functions ranked by total samples taken in the function and all its callees.
| % | Samples | Function | Location |
|---|---|---|---|
| 94.7% | 4,549 | runWorker(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| 94.7% | 4,549 | run() |
java.util.concurrent.ForkJoinWorkerThread |
| 88.8% | 4,266 | scan(ForkJoinPool$WorkQueue, int, int) |
java.util.concurrent.ForkJoinPool |
| 88.7% | 4,258 | doExec() |
java.util.concurrent.ForkJoinTask |
| 88.7% | 4,258 | topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 88.0% | 4,228 | exec() |
java.util.concurrent.RecursiveTask |
| 88.0% | 4,226 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| 84.3% | 4,049 | awaitDone(int, long) |
java.util.concurrent.ForkJoinTask |
| 84.3% | 4,049 | join() |
java.util.concurrent.ForkJoinTask |
| 79.7% | 3,829 | tryRemoveAndExec(ForkJoinTask, boolean) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 38.8% | 1,861 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 31.0% | 1,489 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 31.0% | 1,488 | vectorSum() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 29.3% | 1,408 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 22.3% | 1,070 | helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean) |
java.util.concurrent.ForkJoinPool |
| 20.6% | 990 | accumulate(Double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 20.1% | 964 | invoke() |
java.util.concurrent.ForkJoinTask |
| 19.6% | 939 | distance(Double[], Double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 14.1% | 679 | __psynch_cvwait |
libsystem_kernel.dylib |
| 14.0% | 673 | park(boolean, long) |
jdk.internal.misc.Unsafe |
| % | Samples | Function | Location |
|---|---|---|---|
| 88.0% | 4,226 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| 38.8% | 1,861 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 31.0% | 1,489 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 31.0% | 1,488 | vectorSum() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 29.3% | 1,408 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 20.6% | 990 | accumulate(Double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 19.6% | 939 | distance(Double[], Double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 14.0% | 672 | computeClusterAverages() |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 14.0% | 672 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 13.9% | 669 | average(List) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 9.4% | 453 | collectClusters(int[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 9.4% | 452 | lambda$run$0(int, List, int) |
org.renaissance.jdk.concurrent.JavaKMeans |
| 9.4% | 452 | call() |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001183d68 |
| 8.2% | 394 | merge(Map, Map) |
org.renaissance.jdk.concurrent.JavaKMeans |
| 8.2% | 394 | combineResults(Map, Map) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 8.2% | 394 | combineResults(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 7.9% | 378 | accept(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001186d88 |
| 7.8% | 376 | lambda$merge$7(Map, Object, List) |
org.renaissance.jdk.concurrent.JavaKMeans |
| 5.5% | 265 | lambda$merge$6(List, List) |
org.renaissance.jdk.concurrent.JavaKMeans |
| 5.5% | 265 | apply(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f0011876a8 |
| % | Samples | Function | Location |
|---|---|---|---|
| 14.1% | 679 | __psynch_cvwait |
libsystem_kernel.dylib |
| 14.0% | 671 | Unsafe_Park |
libjvm.dylib |
| 13.8% | 664 | Parker::park |
libjvm.dylib |
| 5.1% | 245 | forward_copy_longs |
<unknown> |
| 4.5% | 216 | arrayof_jint_disjoint_arraycopy |
<unknown> |
| 4.4% | 212 | _pthread_start |
libsystem_pthread.dylib |
| 4.4% | 212 | thread_start |
libsystem_pthread.dylib |
| 4.4% | 211 | Thread::call_run |
libjvm.dylib |
| 4.4% | 211 | thread_native_entry |
libjvm.dylib |
| 2.2% | 108 | WorkerThread::run |
libjvm.dylib |
| 1.8% | 86 | JavaThread::thread_main_inner |
libjvm.dylib |
| 1.2% | 58 | _new_array_Java |
<unknown> |
| 1.2% | 58 | Unsafe_Unpark |
libjvm.dylib |
| 1.2% | 56 | OptoRuntime::new_array_C |
libjvm.dylib |
| 1.1% | 54 | MemAllocator::allocate |
libjvm.dylib |
| 1.1% | 53 | CollectedHeap::array_allocate |
libjvm.dylib |
| 1.1% | 53 | arrayof_oop_disjoint_arraycopy |
<unknown> |
| 1.1% | 52 | InstanceKlass::allocate_objArray |
libjvm.dylib |
| 1.0% | 49 | __psynch_cvsignal |
libsystem_kernel.dylib |
| 0.8% | 37 | G1EvacuateRegionsBaseTask::work |
libjvm.dylib |
| % | Samples | Function | Location |
|---|---|---|---|
| 94.7% | 4,549 | runWorker(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| 94.7% | 4,549 | run() |
java.util.concurrent.ForkJoinWorkerThread |
| 88.8% | 4,266 | scan(ForkJoinPool$WorkQueue, int, int) |
java.util.concurrent.ForkJoinPool |
| 88.7% | 4,258 | doExec() |
java.util.concurrent.ForkJoinTask |
| 88.7% | 4,258 | topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 88.0% | 4,228 | exec() |
java.util.concurrent.RecursiveTask |
| 84.3% | 4,049 | awaitDone(int, long) |
java.util.concurrent.ForkJoinTask |
| 84.3% | 4,049 | join() |
java.util.concurrent.ForkJoinTask |
| 79.7% | 3,829 | tryRemoveAndExec(ForkJoinTask, boolean) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 22.3% | 1,070 | helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean) |
java.util.concurrent.ForkJoinPool |
| 20.1% | 964 | invoke() |
java.util.concurrent.ForkJoinTask |
| 14.0% | 673 | park(boolean, long) |
jdk.internal.misc.Unsafe |
| 13.7% | 660 | park() |
java.util.concurrent.locks.LockSupport |
| 9.4% | 452 | exec() |
java.util.concurrent.ForkJoinTask$AdaptedCallable |
| 8.0% | 383 | forEach(BiConsumer) |
java.util.HashMap |
| 7.8% | 375 | merge(Object, Object, BiFunction) |
java.util.HashMap |
| 5.8% | 280 | awaitWork(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| 4.4% | 210 | copyOf(Object[], int) |
java.util.Arrays |
| 4.2% | 200 | get(int) |
java.util.ArrayList |
| 3.9% | 188 | addAll(Collection) |
java.util.ArrayList |
| % | Samples | Function | Location |
|---|---|---|---|
| 1.1% | 53 | zero_blocks |
<unknown> |
| <0.1% | 1 | I2C/C2I adapters(0xaabb) |
<unknown> |
| % | Samples | Function | Location |
|---|---|---|---|
| 1.7% | 84 | CompileBroker::compiler_thread_loop |
libjvm.dylib |
| 1.5% | 70 | CompileBroker::invoke_compiler_on_method |
libjvm.dylib |
| 1.2% | 60 | C2Compiler::compile_method |
libjvm.dylib |
| 1.2% | 59 | Compile::Compile |
libjvm.dylib |
| 0.6% | 31 | Compile::Code_Gen |
libjvm.dylib |
| 0.5% | 23 | Compile::Optimize |
libjvm.dylib |
| 0.4% | 19 | PhaseChaitin::Register_Allocate |
libjvm.dylib |
| 0.3% | 16 | PhaseIdealLoop::optimize |
libjvm.dylib |
| 0.3% | 14 | PhaseIdealLoop::build_and_optimize |
libjvm.dylib |
| 0.3% | 14 | PhaseIdealLoop::PhaseIdealLoop |
libjvm.dylib |
| 0.3% | 13 | CompileQueue::get |
libjvm.dylib |
| 0.2% | 9 | Matcher::match |
libjvm.dylib |
| 0.2% | 8 | Compilation::compile_method |
libjvm.dylib |
| 0.2% | 8 | Compilation::Compilation |
libjvm.dylib |
| 0.1% | 7 | Matcher::xform |
libjvm.dylib |
| 0.1% | 7 | Compile::optimize_loops |
libjvm.dylib |
| 0.1% | 6 | PhaseIdealLoop::build_loop_late_post_work |
libjvm.dylib |
| 0.1% | 6 | Compilation::compile_java_method |
libjvm.dylib |
| 0.1% | 5 | PhaseChaitin::build_ifg_physical |
libjvm.dylib |
| 0.1% | 5 | PhaseIdealLoop::build_loop_late |
libjvm.dylib |
Callees ranked by contribution to each function's total samples. Inlining can make callee attribution imprecise, and percentages can sum past 100% when callees recurse.
| % | Samples | Callee | Location |
|---|---|---|---|
| 93.8% | 4,266 | scan(ForkJoinPool$WorkQueue, int, int) |
java.util.concurrent.ForkJoinPool |
| 6.2% | 280 | awaitWork(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 4,549 | runWorker(ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.8% | 4,258 | topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 0.1% | 4 | signalWork() |
java.util.concurrent.ForkJoinPool |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.3% | 4,228 | exec() |
java.util.concurrent.RecursiveTask |
| 10.6% | 452 | exec() |
java.util.concurrent.ForkJoinTask$AdaptedCallable |
| 1.1% | 47 | setDone() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 4,258 | doExec() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 4,226 | compute() |
org.renaissance.jdk.concurrent.JavaKMeans$RangedTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 95.8% | 4,049 | join() |
java.util.concurrent.ForkJoinTask |
| 44.0% | 1,861 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 35.2% | 1,489 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 15.9% | 672 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 9.3% | 394 | combineResults(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 94.6% | 3,829 | tryRemoveAndExec(ForkJoinTask, boolean) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| 26.4% | 1,070 | helpJoin(ForkJoinTask, ForkJoinPool$WorkQueue, boolean) |
java.util.concurrent.ForkJoinPool |
| 9.7% | 394 | park() |
java.util.concurrent.locks.LockSupport |
| <0.1% | 1 | InterpreterRuntime::frequency_counter_overflow |
libjvm.dylib |
| <0.1% | 1 | signalWaiters() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 4,049 | awaitDone(int, long) |
java.util.concurrent.ForkJoinTask |
| <0.1% | 1 | getRawResult() |
java.util.concurrent.RecursiveTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 3,829 | doExec() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 1,861 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 75.7% | 1,408 | findNearestCentroid() |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 24.3% | 453 | collectClusters(int[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.9% | 1,488 | vectorSum() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 99.9% | 1,488 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 66.5% | 990 | accumulate(Double[], double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask |
| 5.8% | 87 | get(int) |
java.util.ArrayList |
| % | Samples | Callee | Location |
|---|---|---|---|
| 66.7% | 939 | distance(Double[], Double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| 3.9% | 55 | get(int) |
java.util.ArrayList |
| 0.1% | 2 | InterpreterRuntime::frequency_counter_overflow |
libjvm.dylib |
| 0.1% | 1 | zero_blocks |
<unknown> |
| 0.1% | 1 | _new_array_Java |
<unknown> |
| % | Samples | Callee | Location |
|---|---|---|---|
| 97.6% | 1,044 | doExec() |
java.util.concurrent.ForkJoinTask |
| 1.1% | 12 | tryCompensate(long, boolean) |
java.util.concurrent.ForkJoinPool |
| 0.1% | 1 | InterpreterRuntime::frequency_counter_overflow |
libjvm.dylib |
| 0.1% | 1 | casSlotToNull(ForkJoinTask[], int, ForkJoinTask) |
java.util.concurrent.ForkJoinPool$WorkQueue |
| % | Samples | Callee | Location |
|---|---|---|---|
| 9.0% | 89 | doubleValue() |
java.lang.Double |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 964 | doExec() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 1.1% | 10 | doubleValue() |
java.lang.Double |
| 0.3% | 3 | SafepointBlob |
<unknown> |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.7% | 671 | Unsafe_Park |
libjvm.dylib |
| 0.1% | 1 | JavaThreadParkedState::JavaThreadParkedState |
libjvm.dylib |
| 0.1% | 1 | AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<548964ull, G1BarrierSet>, (AccessInternal::BarrierType)2, 548964ull>::oop_access_barrier |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.6% | 669 | average(List) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 0.3% | 2 | boxed(double[]) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 0.1% | 1 | put(Object, Object) |
java.util.HashMap |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 672 | computeClusterAverages() |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| 100.0% | 672 | computeDirectly() |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.0% | 664 | Parker::park |
libjvm.dylib |
| 0.7% | 5 | pthread_jit_write_protect_np |
libsystem_pthread.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.9% | 668 | invoke() |
java.util.concurrent.ForkJoinTask |
| 0.1% | 1 | div(double[], int) |
org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.2% | 659 | __psynch_cvwait |
libsystem_kernel.dylib |
| 0.5% | 3 | _pthread_cond_wait |
libsystem_pthread.dylib |
| 0.2% | 1 | SafepointMechanism::process |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 660 | park(boolean, long) |
jdk.internal.misc.Unsafe |
| % | Samples | Callee | Location |
|---|---|---|---|
| 35.8% | 162 | computeIfAbsent(Object, Function) |
java.util.HashMap |
| 26.0% | 118 | add(Object) |
java.util.ArrayList |
| 12.8% | 58 | get(int) |
java.util.ArrayList |
| 0.2% | 1 | _new_instance_Java |
<unknown> |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 452 | invoke() |
java.util.concurrent.ForkJoinTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 452 | lambda$run$0(int, List, int) |
org.renaissance.jdk.concurrent.JavaKMeans |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 452 | call() |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001183d68 |
| % | Samples | Callee | Location |
|---|---|---|---|
| 97.2% | 383 | forEach(BiConsumer) |
java.util.HashMap |
| 2.8% | 11 | <init>(Map) |
java.util.HashMap |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 394 | merge(Map, Map) |
org.renaissance.jdk.concurrent.JavaKMeans |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 394 | combineResults(Map, Map) |
org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask |
| % | Samples | Callee | Location |
|---|---|---|---|
| 98.7% | 378 | accept(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001186d88 |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.5% | 376 | lambda$merge$7(Map, Object, List) |
org.renaissance.jdk.concurrent.JavaKMeans |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.7% | 375 | merge(Object, Object, BiFunction) |
java.util.HashMap |
| 0.3% | 1 | SafepointBlob |
<unknown> |
| % | Samples | Callee | Location |
|---|---|---|---|
| 70.7% | 265 | apply(Object, Object) |
org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f0011876a8 |
| 15.7% | 59 | arrayof_jint_disjoint_arraycopy |
<unknown> |
| 10.9% | 41 | zero_blocks |
<unknown> |
| 0.5% | 2 | hash(Object) |
java.util.HashMap |
| % | Samples | Callee | Location |
|---|---|---|---|
| 95.0% | 266 | park() |
java.util.concurrent.locks.LockSupport |
| 4.6% | 13 | parkUntil(long) |
java.util.concurrent.locks.LockSupport |
| % | Samples | Callee | Location |
|---|---|---|---|
| 70.9% | 188 | addAll(Collection) |
java.util.ArrayList |
| 29.1% | 77 | <init>(Collection) |
java.util.ArrayList |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 265 | lambda$merge$6(List, List) |
org.renaissance.jdk.concurrent.JavaKMeans |
| % | Samples | Callee | Location |
|---|---|---|---|
| 92.1% | 199 | forward_copy_longs |
<unknown> |
| % | Samples | Callee | Location |
|---|---|---|---|
| 99.5% | 211 | thread_native_entry |
libjvm.dylib |
| 0.5% | 1 | ThreadJavaMain |
libjli.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 212 | _pthread_start |
libsystem_pthread.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 51.2% | 108 | WorkerThread::run |
libjvm.dylib |
| 40.8% | 86 | JavaThread::thread_main_inner |
libjvm.dylib |
| 4.3% | 9 | VMThread::run |
libjvm.dylib |
| 1.9% | 4 | ConcurrentGCThread::run |
libjvm.dylib |
| 1.4% | 3 | WatcherThread::run |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 211 | Thread::call_run |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 69.5% | 146 | arrayof_jint_disjoint_arraycopy |
<unknown> |
| 27.1% | 57 | _new_array_Java |
<unknown> |
| 0.5% | 1 | copyOf(Object[], int, Class) |
java.util.Arrays |
| % | Samples | Callee | Location |
|---|---|---|---|
| 86.5% | 173 | elementData(int) |
java.util.ArrayList |
| 12.5% | 25 | checkIndex(int, int) |
java.util.Objects |
| % | Samples | Callee | Location |
|---|---|---|---|
| 51.6% | 97 | toArray() |
java.util.ArrayList |
| 28.2% | 53 | arrayof_oop_disjoint_arraycopy |
<unknown> |
| 18.6% | 35 | grow(int) |
java.util.ArrayList |
| 0.5% | 1 | G1BarrierSet::write_ref_array_work |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 34.3% | 37 | G1EvacuateRegionsBaseTask::work |
libjvm.dylib |
| 23.1% | 25 | G1FullGCMarkTask::work |
libjvm.dylib |
| 14.8% | 16 | semaphore_wait_trap |
libsystem_kernel.dylib |
| 9.3% | 10 | G1FullGCAdjustTask::work |
libjvm.dylib |
| 7.4% | 8 | KlassCleaningTask::work |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 97.7% | 84 | CompileBroker::compiler_thread_loop |
libjvm.dylib |
| 1.2% | 1 | ServiceThread::service_thread_entry |
libjvm.dylib |
| 1.2% | 1 | JvmtiAgentThread::start_function_wrapper |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 83.3% | 70 | CompileBroker::invoke_compiler_on_method |
libjvm.dylib |
| 15.5% | 13 | CompileQueue::get |
libjvm.dylib |
| 1.2% | 1 | CompileBroker::possibly_add_compiler_threads |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 85.7% | 60 | C2Compiler::compile_method |
libjvm.dylib |
| 11.4% | 8 | Compiler::compile_method |
libjvm.dylib |
| 2.9% | 2 | ciEnv::ciEnv |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 98.3% | 59 | Compile::Compile |
libjvm.dylib |
| 1.7% | 1 | PhaseRemoveUseless::PhaseRemoveUseless |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 52.5% | 31 | Compile::Code_Gen |
libjvm.dylib |
| 39.0% | 23 | Compile::Optimize |
libjvm.dylib |
| 8.5% | 5 | ParseGenerator::generate |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 96.6% | 56 | OptoRuntime::new_array_C |
libjvm.dylib |
| 1.7% | 1 | pthread_jit_write_protect_np |
libsystem_pthread.dylib |
| 1.7% | 1 | ClassLoaderData::holder |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 84.5% | 49 | __psynch_cvsignal |
libsystem_kernel.dylib |
| 3.4% | 2 | pthread_jit_write_protect_np |
libsystem_pthread.dylib |
| 1.7% | 1 | FastThreadsListHandle::FastThreadsListHandle |
libjvm.dylib |
| 1.7% | 1 | pthread_cond_signal |
libsystem_pthread.dylib |
| 1.7% | 1 | _pthread_cond_updateval |
libsystem_pthread.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 92.9% | 52 | InstanceKlass::allocate_objArray |
libjvm.dylib |
| 5.4% | 3 | pthread_jit_write_protect_np |
libsystem_pthread.dylib |
| 1.8% | 1 | CollectedHeap::array_allocate |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 53.7% | 29 | _platform_bzero |
libsystem_platform.dylib |
| 25.9% | 14 | _platform_memset |
libsystem_platform.dylib |
| 9.3% | 5 | MemAllocator::mem_allocate_inside_tlab_slow |
libjvm.dylib |
| 5.6% | 3 | ObjArrayAllocator::initialize |
libjvm.dylib |
| 1.9% | 1 | G1CardTable::g1_mark_as_young |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 53 | MemAllocator::allocate |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 86.8% | 46 | forward_copy_longs |
<unknown> |
| 7.5% | 4 | G1BarrierSet::invalidate |
libjvm.dylib |
| 3.8% | 2 | tlv_get_addr |
libdyld.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 52 | CollectedHeap::array_allocate |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 75.7% | 28 | G1EvacuateRegionsTask::evacuate_live_objects |
libjvm.dylib |
| 21.6% | 8 | G1EvacuateRegionsTask::scan_roots |
libjvm.dylib |
| 2.7% | 1 | G1ParScanThreadStateSet::state_for_worker |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 61.3% | 19 | PhaseChaitin::Register_Allocate |
libjvm.dylib |
| 29.0% | 9 | Matcher::match |
libjvm.dylib |
| 6.5% | 2 | PhaseCFG::PhaseCFG |
libjvm.dylib |
| 3.2% | 1 | PhaseOutput::Output |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 39.1% | 9 | PhaseIdealLoop::optimize |
libjvm.dylib |
| 30.4% | 7 | Compile::optimize_loops |
libjvm.dylib |
| 8.7% | 2 | Compile::final_graph_reshaping |
libjvm.dylib |
| 8.7% | 2 | PhaseCCP::PhaseCCP |
libjvm.dylib |
| 4.3% | 1 | PhaseCCP::do_transform |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 26.3% | 5 | PhaseChaitin::build_ifg_physical |
libjvm.dylib |
| 21.1% | 4 | PhaseChaitin::gather_lrg_masks |
libjvm.dylib |
| 10.5% | 2 | PhaseLive::compute |
libjvm.dylib |
| 10.5% | 2 | PhaseChaitin::Split |
libjvm.dylib |
| 5.3% | 1 | PhaseIFG::Compute_Effective_Degree |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 87.5% | 14 | PhaseIdealLoop::PhaseIdealLoop |
libjvm.dylib |
| 12.5% | 2 | PhaseIterGVN::optimize |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 35.7% | 5 | PhaseIdealLoop::build_loop_late |
libjvm.dylib |
| 21.4% | 3 | PhaseIdealLoop::split_if_with_blocks |
libjvm.dylib |
| 14.3% | 2 | PhaseIdealLoop::Dominators |
libjvm.dylib |
| 7.1% | 1 | Node::is_CFG |
libjvm.dylib |
| 7.1% | 1 | IdealLoopTree::policy_range_check |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 14 | PhaseIdealLoop::build_and_optimize |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 92.3% | 12 | Monitor::wait |
libjvm.dylib |
| 7.7% | 1 | os::javaTimeNanos |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 77.8% | 7 | Matcher::xform |
libjvm.dylib |
| 11.1% | 1 | LoadNNode::Opcode |
libjvm.dylib |
| 11.1% | 1 | Matcher::find_shared |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 75.0% | 6 | Compilation::compile_java_method |
libjvm.dylib |
| 25.0% | 2 | ciEnv::register_method |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 8 | Compilation::compile_method |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 71.4% | 5 | Matcher::match_tree |
libjvm.dylib |
| 14.3% | 1 | Arena::grow |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 7 | PhaseIdealLoop::optimize |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 33.3% | 2 | PhaseIdealLoop::compute_lca_of_uses |
libjvm.dylib |
| 16.7% | 1 | PhaseIdealLoop::get_late_ctrl_with_anti_dep |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 50.0% | 3 | Compilation::emit_lir |
libjvm.dylib |
| 33.3% | 2 | Compilation::build_hir |
libjvm.dylib |
| 16.7% | 1 | Compilation::emit_code_body |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 20.0% | 1 | PhaseChaitin::compute_initial_block_pressure |
libjvm.dylib |
| % | Samples | Callee | Location |
|---|---|---|---|
| 100.0% | 5 | PhaseIdealLoop::build_loop_late_post_work |
libjvm.dylib |
Call stacks ranked by samples taken in their leaf frame.
Common call stack: runWorker(ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool) ← run() (java.util.concurrent.ForkJoinWorkerThread)
| % | Samples | Call stack |
|---|---|---|
| 5.3% | 256 | __psynch_cvwait (libsystem_kernel.dylib) ← Parker::park (libjvm.dylib) ← Unsafe_Park ← park(boolean, long) (jdk.internal.misc.Unsafe) ← park() (java.util.concurrent.locks.LockSupport) ← awaitWork(ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool) |
| 3.1% | 148 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 3.0% | 143 | __psynch_cvwait (libsystem_kernel.dylib) ← Parker::park (libjvm.dylib) ← Unsafe_Park ← park(boolean, long) (jdk.internal.misc.Unsafe) ← park() (java.util.concurrent.locks.LockSupport) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 2.3% | 110 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 2.2% | 108 | accumulate(Double[], double[]) (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← vectorSum() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 2.2% | 106 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.8% | 85 | accumulate(Double[], double[]) (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← vectorSum() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.7% | 82 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.6% | 79 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← invoke() ← lambda$run$0(int, List, int) (org.renaissance.jdk.concurrent.JavaKMeans) ← call() (org.renaissance.jdk.concurrent.JavaKMeans$$Lambda.0x000000f001183d68) ← exec() (java.util.concurrent.ForkJoinTask$AdaptedCallable) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.6% | 75 | accumulate(Double[], double[]) (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← vectorSum() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.4% | 69 | findNearestCentroid() (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.4% | 66 | findNearestCentroid() (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.2% | 56 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.1% | 55 | vectorSum() (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.1% | 54 | vectorSum() (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.0% | 50 | accumulate(Double[], double[]) (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← vectorSum() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← invoke() ← average(List) (org.renaissance.jdk.concurrent.JavaKMeans$UpdateTask) ← computeClusterAverages() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.0% | 50 | vectorSum() (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 1.0% | 49 | __psynch_cvwait (libsystem_kernel.dylib) ← Parker::park (libjvm.dylib) ← Unsafe_Park ← park(boolean, long) (jdk.internal.misc.Unsafe) ← park() (java.util.concurrent.locks.LockSupport) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 0.9% | 45 | distance(Double[], Double[]) (org.renaissance.jdk.concurrent.JavaKMeans$AssignmentTask) ← findNearestCentroid() ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |
| 0.9% | 44 | vectorSum() (org.renaissance.jdk.concurrent.JavaKMeans$VectorSumTask) ← computeDirectly() ← computeDirectly() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← tryRemoveAndExec(ForkJoinTask, boolean) (java.util.concurrent.ForkJoinPool$WorkQueue) ← awaitDone(int, long) (java.util.concurrent.ForkJoinTask) ← join() ← compute() (org.renaissance.jdk.concurrent.JavaKMeans$RangedTask) ← exec() (java.util.concurrent.RecursiveTask) ← doExec() (java.util.concurrent.ForkJoinTask) ← topLevelExec(ForkJoinTask, ForkJoinPool$WorkQueue) (java.util.concurrent.ForkJoinPool$WorkQueue) ← scan(ForkJoinPool$WorkQueue, int, int) (java.util.concurrent.ForkJoinPool) |