Skip to content

Instantly share code, notes, and snippets.

@fwbrasil
Created June 11, 2023 06:53
Show Gist options
  • Save fwbrasil/fa333e2d80eeedcdd8e46b5ebae7dce1 to your computer and use it in GitHub Desktop.
Save fwbrasil/fa333e2d80eeedcdd8e46b5ebae7dce1 to your computer and use it in GitHub Desktop.
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,15799,3,'all')
f(1,0,14117,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,14117,1,'cats/effect/IOFiber.run')
f(3,0,10212,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,10212,1,'cats/effect/IOFiber.runLoop')
f(5,0,2887,1,'cats/effect/IOFiber.next$2')
f(6,0,2039,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,0,2039,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,0,925,1,'cats/effect/IO.flatMap')
f(9,0,925,1,'cats/effect/IO$FlatMap$.apply')
f(10,0,925,2,'cats.effect.IO$FlatMap')
f(8,925,556,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,925,556,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,925,556,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,925,556,2,'kyo.bench.BroadFlatMapBench$$Lambda$95+0x0000000800d5e8b8')
f(8,1481,558,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,1481,558,1,'cats/effect/IO$.pure')
f(10,1481,558,1,'cats/effect/IO$Pure$.apply')
f(11,1481,558,2,'cats.effect.IO$Pure')
f(6,2039,848,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(7,2039,848,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,2039,848,1,'cats/effect/IO$.pure')
f(9,2039,848,1,'cats/effect/IO$Pure$.apply')
f(10,2039,848,2,'cats.effect.IO$Pure')
f(5,2887,7325,1,'cats/effect/IOFiber.succeeded')
f(6,2887,28,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,2887,4,1,'cats/effect/IO$.pure')
f(8,2887,4,1,'cats/effect/IO$Pure$.apply')
f(9,2887,4,2,'cats.effect.IO$Pure')
f(7,2891,19,1,'cats/effect/IOFiber.done')
f(8,2891,19,1,'cats/effect/CallbackStack.apply')
f(9,2891,19,1,'scala/runtime/function/JProcedure1.apply')
f(10,2891,19,1,'scala/runtime/function/JProcedure1.apply')
f(11,2891,19,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,2891,19,1,'cats/effect/IO.$anonfun$6')
f(13,2891,9,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,2891,9,1,'cats/effect/kernel/Outcome.fold$')
f(15,2891,9,1,'cats/effect/kernel/Outcome.fold')
f(16,2891,9,1,'scala/runtime/function/JProcedure1.apply')
f(17,2891,9,1,'scala/runtime/function/JProcedure1.apply')
f(18,2891,9,1,'cats/effect/IO$$Lambda$98.0x0000000800d5f850.applyVoid')
f(19,2891,9,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,2891,9,1,'scala/runtime/function/JProcedure1.apply')
f(21,2891,9,1,'scala/runtime/function/JProcedure1.apply')
f(22,2891,9,1,'cats/effect/IO$$Lambda$89.0x0000000800d55408.applyVoid')
f(23,2891,9,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,2891,4,1,'scala/runtime/function/JProcedure1.apply')
f(25,2891,4,1,'scala/runtime/function/JProcedure1.apply')
f(26,2891,4,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57838.applyVoid')
f(27,2891,4,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,2891,4,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,2891,4,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,2891,4,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,2891,4,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,2891,4,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,2891,4,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,2891,4,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(24,2895,5,1,'scala/util/Right$.apply')
f(25,2895,5,2,'scala.util.Right')
f(13,2900,10,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,2900,10,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,2900,10,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,2900,2,2,'cats.effect.IO$$Lambda$96+0x0000000800d5f188')
f(16,2902,2,2,'cats.effect.IO$$Lambda$97+0x0000000800d5f448')
f(16,2904,6,2,'cats.effect.IO$$Lambda$98+0x0000000800d5f850')
f(7,2910,5,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,2910,5,2,'cats.effect.kernel.Outcome$Succeeded')
f(6,2915,6708,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,2915,6708,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,2915,1429,1,'cats/effect/IO.flatMap')
f(9,2915,1429,1,'cats/effect/IO$FlatMap$.apply')
f(10,2915,1429,2,'cats.effect.IO$FlatMap')
f(8,4344,837,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,4344,837,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,4344,837,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,4344,837,2,'kyo.bench.BroadFlatMapBench$$Lambda$95+0x0000000800d5e8b8')
f(8,5181,4442,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,5181,325,1,'cats/effect/IO$.pure')
f(10,5181,325,1,'cats/effect/IO$Pure$.apply')
f(11,5181,325,2,'cats.effect.IO$Pure')
f(9,5506,858,1,'cats/effect/IO.flatMap')
f(10,5506,858,1,'cats/effect/IO$FlatMap$.apply')
f(11,5506,858,2,'cats.effect.IO$FlatMap')
f(9,6364,531,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,6364,531,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,6364,531,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,6364,531,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(9,6895,2728,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,6895,208,1,'cats/effect/IO$.pure')
f(11,6895,208,1,'cats/effect/IO$Pure$.apply')
f(12,6895,208,2,'cats.effect.IO$Pure')
f(10,7103,509,1,'cats/effect/IO.flatMap')
f(11,7103,509,1,'cats/effect/IO$FlatMap$.apply')
f(12,7103,509,2,'cats.effect.IO$FlatMap')
f(10,7612,359,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,7612,359,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,7612,359,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,7612,359,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(10,7971,1652,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,7971,120,1,'cats/effect/IO$.pure')
f(12,7971,120,1,'cats/effect/IO$Pure$.apply')
f(13,7971,120,2,'cats.effect.IO$Pure')
f(11,8091,314,1,'cats/effect/IO.flatMap')
f(12,8091,314,1,'cats/effect/IO$FlatMap$.apply')
f(13,8091,314,2,'cats.effect.IO$FlatMap')
f(11,8405,222,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(12,8405,222,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(13,8405,222,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(14,8405,222,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(11,8627,996,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,8627,103,1,'cats/effect/IO$.pure')
f(13,8627,103,1,'cats/effect/IO$Pure$.apply')
f(14,8627,103,2,'cats.effect.IO$Pure')
f(12,8730,218,1,'cats/effect/IO.flatMap')
f(13,8730,218,1,'cats/effect/IO$FlatMap$.apply')
f(14,8730,218,2,'cats.effect.IO$FlatMap')
f(12,8948,124,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,8948,124,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,8948,124,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,8948,124,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(12,9072,551,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,9072,39,1,'cats/effect/IO$.pure')
f(14,9072,39,1,'cats/effect/IO$Pure$.apply')
f(15,9072,39,2,'cats.effect.IO$Pure')
f(13,9111,108,1,'cats/effect/IO.flatMap')
f(14,9111,108,1,'cats/effect/IO$FlatMap$.apply')
f(15,9111,108,2,'cats.effect.IO$FlatMap')
f(13,9219,74,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,9219,74,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,9219,74,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,9219,74,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(13,9293,330,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,9293,22,1,'cats/effect/IO$.pure')
f(15,9293,22,1,'cats/effect/IO$Pure$.apply')
f(16,9293,22,2,'cats.effect.IO$Pure')
f(14,9315,68,1,'cats/effect/IO.flatMap')
f(15,9315,68,1,'cats/effect/IO$FlatMap$.apply')
f(16,9315,68,2,'cats.effect.IO$FlatMap')
f(14,9383,49,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,9383,49,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,9383,49,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,9383,49,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(14,9432,191,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,9432,19,1,'cats/effect/IO$.pure')
f(16,9432,19,1,'cats/effect/IO$Pure$.apply')
f(17,9432,19,2,'cats.effect.IO$Pure')
f(15,9451,31,1,'cats/effect/IO.flatMap')
f(16,9451,31,1,'cats/effect/IO$FlatMap$.apply')
f(17,9451,31,2,'cats.effect.IO$FlatMap')
f(15,9482,23,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,9482,23,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,9482,23,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,9482,23,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(15,9505,118,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,9505,4,1,'cats/effect/IO$.pure')
f(17,9505,4,1,'cats/effect/IO$Pure$.apply')
f(18,9505,4,2,'cats.effect.IO$Pure')
f(16,9509,32,1,'cats/effect/IO.flatMap')
f(17,9509,32,1,'cats/effect/IO$FlatMap$.apply')
f(18,9509,32,2,'cats.effect.IO$FlatMap')
f(16,9541,16,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,9541,16,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,9541,16,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,9541,16,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(16,9557,66,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,9557,6,1,'cats/effect/IO$.pure')
f(18,9557,6,1,'cats/effect/IO$Pure$.apply')
f(19,9557,6,2,'cats.effect.IO$Pure')
f(17,9563,17,1,'cats/effect/IO.flatMap')
f(18,9563,17,1,'cats/effect/IO$FlatMap$.apply')
f(19,9563,17,2,'cats.effect.IO$FlatMap')
f(17,9580,10,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,9580,10,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,9580,10,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,9580,10,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(17,9590,33,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,9590,3,1,'cats/effect/IO$.pure')
f(19,9590,3,1,'cats/effect/IO$Pure$.apply')
f(20,9590,3,2,'cats.effect.IO$Pure')
f(18,9593,1,1,'cats/effect/IO.flatMap')
f(19,9593,1,1,'cats/effect/IO$FlatMap$.apply')
f(20,9593,1,2,'cats.effect.IO$FlatMap')
f(18,9594,4,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,9594,4,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,9594,4,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,9594,4,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(18,9598,25,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,9598,11,1,'cats/effect/IO.flatMap')
f(20,9598,11,1,'cats/effect/IO$FlatMap$.apply')
f(21,9598,11,2,'cats.effect.IO$FlatMap')
f(19,9609,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,9609,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(21,9609,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,9609,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(19,9612,11,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(20,9612,3,1,'cats/effect/IO$.pure')
f(21,9612,3,1,'cats/effect/IO$Pure$.apply')
f(22,9612,3,2,'cats.effect.IO$Pure')
f(20,9615,5,1,'cats/effect/IO.flatMap')
f(21,9615,5,1,'cats/effect/IO$FlatMap$.apply')
f(22,9615,5,2,'cats.effect.IO$FlatMap')
f(20,9620,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,9620,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,9620,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,9620,1,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(20,9621,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(21,9621,2,1,'cats/effect/IO$.pure')
f(22,9621,2,1,'cats/effect/IO$Pure$.apply')
f(23,9621,2,2,'cats.effect.IO$Pure')
f(6,9623,589,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(7,9623,589,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,9623,589,1,'cats/effect/IO$.pure')
f(9,9623,589,1,'cats/effect/IO$Pure$.apply')
f(10,9623,589,2,'cats.effect.IO$Pure')
f(3,10212,3696,1,'cats/effect/IOFiber.cedeR')
f(4,10212,3620,1,'cats/effect/IOFiber.runLoop')
f(5,10212,1012,1,'cats/effect/IOFiber.next$2')
f(6,10212,731,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,10212,731,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,10212,327,1,'cats/effect/IO.flatMap')
f(9,10212,327,1,'cats/effect/IO$FlatMap$.apply')
f(10,10212,327,2,'cats.effect.IO$FlatMap')
f(8,10539,195,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,10539,195,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,10539,195,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,10539,195,2,'kyo.bench.BroadFlatMapBench$$Lambda$95+0x0000000800d5e8b8')
f(8,10734,209,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,10734,209,1,'cats/effect/IO$.pure')
f(10,10734,209,1,'cats/effect/IO$Pure$.apply')
f(11,10734,209,2,'cats.effect.IO$Pure')
f(6,10943,281,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(7,10943,281,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,10943,281,1,'cats/effect/IO$.pure')
f(9,10943,281,1,'cats/effect/IO$Pure$.apply')
f(10,10943,281,2,'cats.effect.IO$Pure')
f(5,11224,2608,1,'cats/effect/IOFiber.succeeded')
f(6,11224,2405,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,11224,2405,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,11224,504,1,'cats/effect/IO.flatMap')
f(9,11224,504,1,'cats/effect/IO$FlatMap$.apply')
f(10,11224,504,2,'cats.effect.IO$FlatMap')
f(8,11728,284,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,11728,284,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,11728,284,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,11728,284,2,'kyo.bench.BroadFlatMapBench$$Lambda$95+0x0000000800d5e8b8')
f(8,12012,1617,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,12012,130,1,'cats/effect/IO$.pure')
f(10,12012,130,1,'cats/effect/IO$Pure$.apply')
f(11,12012,130,2,'cats.effect.IO$Pure')
f(9,12142,334,1,'cats/effect/IO.flatMap')
f(10,12142,334,1,'cats/effect/IO$FlatMap$.apply')
f(11,12142,334,2,'cats.effect.IO$FlatMap')
f(9,12476,181,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,12476,181,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,12476,181,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,12476,181,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(9,12657,972,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,12657,71,1,'cats/effect/IO$.pure')
f(11,12657,71,1,'cats/effect/IO$Pure$.apply')
f(12,12657,71,2,'cats.effect.IO$Pure')
f(10,12728,215,1,'cats/effect/IO.flatMap')
f(11,12728,215,1,'cats/effect/IO$FlatMap$.apply')
f(12,12728,215,2,'cats.effect.IO$FlatMap')
f(10,12943,127,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,12943,127,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,12943,127,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,12943,127,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(10,13070,559,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,13070,48,1,'cats/effect/IO$.pure')
f(12,13070,48,1,'cats/effect/IO$Pure$.apply')
f(13,13070,48,2,'cats.effect.IO$Pure')
f(11,13118,127,1,'cats/effect/IO.flatMap')
f(12,13118,127,1,'cats/effect/IO$FlatMap$.apply')
f(13,13118,127,2,'cats.effect.IO$FlatMap')
f(11,13245,75,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(12,13245,75,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(13,13245,75,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(14,13245,75,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(11,13320,309,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,13320,23,1,'cats/effect/IO$.pure')
f(13,13320,23,1,'cats/effect/IO$Pure$.apply')
f(14,13320,23,2,'cats.effect.IO$Pure')
f(12,13343,58,1,'cats/effect/IO.flatMap')
f(13,13343,58,1,'cats/effect/IO$FlatMap$.apply')
f(14,13343,58,2,'cats.effect.IO$FlatMap')
f(12,13401,36,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,13401,36,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,13401,36,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,13401,36,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(12,13437,192,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,13437,19,1,'cats/effect/IO$.pure')
f(14,13437,19,1,'cats/effect/IO$Pure$.apply')
f(15,13437,19,2,'cats.effect.IO$Pure')
f(13,13456,37,1,'cats/effect/IO.flatMap')
f(14,13456,37,1,'cats/effect/IO$FlatMap$.apply')
f(15,13456,37,2,'cats.effect.IO$FlatMap')
f(13,13493,27,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,13493,27,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,13493,27,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,13493,27,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(13,13520,109,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,13520,13,1,'cats/effect/IO$.pure')
f(15,13520,13,1,'cats/effect/IO$Pure$.apply')
f(16,13520,13,2,'cats.effect.IO$Pure')
f(14,13533,24,1,'cats/effect/IO.flatMap')
f(15,13533,24,1,'cats/effect/IO$FlatMap$.apply')
f(16,13533,24,2,'cats.effect.IO$FlatMap')
f(14,13557,16,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,13557,16,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,13557,16,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,13557,16,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(14,13573,56,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,13573,5,1,'cats/effect/IO$.pure')
f(16,13573,5,1,'cats/effect/IO$Pure$.apply')
f(17,13573,5,2,'cats.effect.IO$Pure')
f(15,13578,13,1,'cats/effect/IO.flatMap')
f(16,13578,13,1,'cats/effect/IO$FlatMap$.apply')
f(17,13578,13,2,'cats.effect.IO$FlatMap')
f(15,13591,9,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,13591,9,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,13591,9,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,13591,9,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(15,13600,29,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,13600,3,1,'cats/effect/IO$.pure')
f(17,13600,3,1,'cats/effect/IO$Pure$.apply')
f(18,13600,3,2,'cats.effect.IO$Pure')
f(16,13603,3,1,'cats/effect/IO.flatMap')
f(17,13603,3,1,'cats/effect/IO$FlatMap$.apply')
f(18,13603,3,2,'cats.effect.IO$FlatMap')
f(16,13606,5,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,13606,5,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,13606,5,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,13606,5,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(16,13611,18,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,13611,3,1,'cats/effect/IO$.pure')
f(18,13611,3,1,'cats/effect/IO$Pure$.apply')
f(19,13611,3,2,'cats.effect.IO$Pure')
f(17,13614,5,1,'cats/effect/IO.flatMap')
f(18,13614,5,1,'cats/effect/IO$FlatMap$.apply')
f(19,13614,5,2,'cats.effect.IO$FlatMap')
f(17,13619,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,13619,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,13619,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,13619,2,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(17,13621,8,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,13621,1,1,'cats/effect/IO$.pure')
f(19,13621,1,1,'cats/effect/IO$Pure$.apply')
f(20,13621,1,2,'cats.effect.IO$Pure')
f(18,13622,3,1,'cats/effect/IO.flatMap')
f(19,13622,3,1,'cats/effect/IO$FlatMap$.apply')
f(20,13622,3,2,'cats.effect.IO$FlatMap')
f(18,13625,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,13625,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,13625,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,13625,2,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(18,13627,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,13627,2,1,'cats/effect/IO$.pure')
f(20,13627,2,1,'cats/effect/IO$Pure$.apply')
f(21,13627,2,2,'cats.effect.IO$Pure')
f(6,13629,203,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(7,13629,203,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,13629,203,1,'cats/effect/IO$.pure')
f(9,13629,203,1,'cats/effect/IO$Pure$.apply')
f(10,13629,203,2,'cats.effect.IO$Pure')
f(4,13832,76,1,'cats/effect/IOFiber.succeeded')
f(5,13832,76,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8cd58.apply')
f(6,13832,76,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,13832,76,1,'kyo/bench/BroadFlatMapBench.catsBench')
f(8,13832,76,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,13832,4,1,'cats/effect/IO.flatMap')
f(10,13832,4,1,'cats/effect/IO$FlatMap$.apply')
f(11,13832,4,2,'cats.effect.IO$FlatMap')
f(9,13836,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,13836,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,13836,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,13836,1,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(9,13837,71,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,13837,4,1,'cats/effect/IO.flatMap')
f(11,13837,4,1,'cats/effect/IO$FlatMap$.apply')
f(12,13837,4,2,'cats.effect.IO$FlatMap')
f(10,13841,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,13841,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,13841,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,13841,2,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(10,13843,65,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,13843,5,1,'cats/effect/IO.flatMap')
f(12,13843,5,1,'cats/effect/IO$FlatMap$.apply')
f(13,13843,5,2,'cats.effect.IO$FlatMap')
f(11,13848,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(12,13848,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(13,13848,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(14,13848,1,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(11,13849,59,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,13849,2,1,'cats/effect/IO.flatMap')
f(13,13849,2,1,'cats/effect/IO$FlatMap$.apply')
f(14,13849,2,2,'cats.effect.IO$FlatMap')
f(12,13851,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,13851,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,13851,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,13851,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(12,13854,54,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,13854,3,1,'cats/effect/IO.flatMap')
f(14,13854,3,1,'cats/effect/IO$FlatMap$.apply')
f(15,13854,3,2,'cats.effect.IO$FlatMap')
f(13,13857,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,13857,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,13857,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,13857,2,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(13,13859,49,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,13859,3,1,'cats/effect/IO.flatMap')
f(15,13859,3,1,'cats/effect/IO$FlatMap$.apply')
f(16,13859,3,2,'cats.effect.IO$FlatMap')
f(14,13862,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,13862,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,13862,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,13862,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(14,13865,43,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,13865,2,1,'cats/effect/IO.flatMap')
f(16,13865,2,1,'cats/effect/IO$FlatMap$.apply')
f(17,13865,2,2,'cats.effect.IO$FlatMap')
f(15,13867,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,13867,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,13867,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,13867,1,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(15,13868,40,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,13868,1,1,'cats/effect/IO.flatMap')
f(17,13868,1,1,'cats/effect/IO$FlatMap$.apply')
f(18,13868,1,2,'cats.effect.IO$FlatMap')
f(16,13869,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,13869,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,13869,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,13869,2,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(16,13871,37,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,13871,2,1,'cats/effect/IO.flatMap')
f(18,13871,2,1,'cats/effect/IO$FlatMap$.apply')
f(19,13871,2,2,'cats.effect.IO$FlatMap')
f(17,13873,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,13873,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,13873,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,13873,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(17,13876,32,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,13876,2,1,'cats/effect/IO.flatMap')
f(19,13876,2,1,'cats/effect/IO$FlatMap$.apply')
f(20,13876,2,2,'cats.effect.IO$FlatMap')
f(18,13878,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,13878,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,13878,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,13878,2,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(18,13880,28,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,13880,6,1,'cats/effect/IO.flatMap')
f(20,13880,6,1,'cats/effect/IO$FlatMap$.apply')
f(21,13880,6,2,'cats.effect.IO$FlatMap')
f(19,13886,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,13886,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(21,13886,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,13886,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(19,13889,19,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(20,13889,6,1,'cats/effect/IO.flatMap')
f(21,13889,6,1,'cats/effect/IO$FlatMap$.apply')
f(22,13889,6,2,'cats.effect.IO$FlatMap')
f(20,13895,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,13895,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,13895,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,13895,1,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(20,13896,12,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(21,13896,7,1,'cats/effect/IO.flatMap')
f(22,13896,7,1,'cats/effect/IO$FlatMap$.apply')
f(23,13896,7,2,'cats.effect.IO$FlatMap')
f(21,13903,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(22,13903,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(23,13903,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(24,13903,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5e4f0')
f(21,13906,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(22,13906,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(23,13906,2,1,'cats/effect/IO$.pure')
f(24,13906,2,1,'cats/effect/IO$Pure$.apply')
f(25,13906,2,2,'cats.effect.IO$Pure')
f(3,13908,209,1,'cats/effect/IOFiber.execR')
f(4,13908,17,1,'cats/effect/ArrayStack.init')
f(5,13908,17,2,'java.lang.Object[]')
f(4,13925,192,1,'cats/effect/ByteStack$.create')
f(5,13925,192,2,'int[]')
f(1,14117,1,2,'java.lang.String')
f(1,14118,1658,1,'java/lang/Thread.run')
f(2,14118,1658,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,14118,1658,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,14118,1658,1,'java/util/concurrent/FutureTask.run')
f(5,14118,1658,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,14118,1658,1,'java/util/concurrent/FutureTask.run')
f(7,14118,1658,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,14118,1658,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,14118,1658,1,'java/lang/reflect/Method.invoke')
f(10,14118,1658,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,14118,1658,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,14118,1658,1,'kyo/bench/jmh_generated/BroadFlatMapBench_forkCats_jmhTest.forkCats_Throughput')
f(13,14118,1658,1,'kyo/bench/jmh_generated/BroadFlatMapBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,14118,1658,1,'kyo/bench/Bench.forkCats')
f(15,14118,55,1,'cats/effect/IO.flatMap')
f(16,14118,55,1,'cats/effect/IO$FlatMap$.apply')
f(17,14118,55,2,'cats.effect.IO$FlatMap')
f(15,14173,1550,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,14173,1502,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,14173,850,1,'cats/effect/IO.unsafeRunAsync')
f(18,14173,712,1,'cats/effect/IO.unsafeRunFiber')
f(19,14173,182,2,'cats.effect.IOFiber')
f(19,14355,424,1,'cats/effect/IOFiber.<init>')
f(20,14355,150,1,'cats/effect/ArrayStack$.apply')
f(21,14355,150,2,'cats.effect.ArrayStack')
f(20,14505,35,1,'cats/effect/CallbackStack$.apply')
f(21,14505,35,2,'cats.effect.CallbackStack')
f(20,14540,103,1,'cats/effect/IO$.async')
f(21,14540,34,2,'cats.effect.IO$$anon$3')
f(21,14574,69,1,'cats/effect/IO$IOCont$.apply')
f(22,14574,69,2,'cats.effect.IO$IOCont')
f(20,14643,65,1,'cats/effect/IO$.uncancelable')
f(21,14643,65,1,'cats/effect/IO$Uncancelable$.apply')
f(22,14643,65,2,'cats.effect.IO$Uncancelable')
f(20,14708,71,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,14708,71,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,14708,71,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,14708,37,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5cc30')
f(23,14745,34,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d220')
f(19,14779,39,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,14779,39,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,14779,39,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,14779,39,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,14779,39,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,14818,67,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,14818,67,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58400.newInvokeSpecial')
f(21,14818,67,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,14818,67,2,'cats.effect.IO$$Lambda$90+0x0000000800d5c000')
f(18,14885,138,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,14885,138,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,14885,138,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,14885,50,2,'cats.effect.IO$$Lambda$87+0x0000000800d57c40')
f(21,14935,46,2,'cats.effect.IO$$Lambda$88+0x0000000800d55000')
f(21,14981,42,2,'cats.effect.IO$$Lambda$89+0x0000000800d55408')
f(17,15023,114,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,15137,49,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,15137,49,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,15137,49,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,15137,49,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d57838')
f(17,15186,312,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,15186,312,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,15186,66,2,'java.lang.Object[]')
f(19,15252,55,2,'java.util.concurrent.locks.ReentrantLock')
f(19,15307,77,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,15307,77,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,15384,114,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,15384,114,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,15384,114,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,15498,106,1,'scala/concurrent/package$.blocking')
f(18,15498,106,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,15498,106,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5dc00.apply')
f(20,15498,106,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,15498,106,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,15498,106,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,15498,106,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,15604,71,1,'scala/util/Either.fold')
f(18,15604,71,1,'cats/effect/IOPlatform$$Lambda$100.0x0000000800d5a6a8.apply')
f(19,15604,71,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,15604,71,1,'scala/Some$.apply')
f(21,15604,71,2,'scala.Some')
f(16,15675,48,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,15675,48,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,15675,48,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,15675,48,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,15675,48,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,15675,48,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,15675,48,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,15675,48,2,'scala.concurrent.duration.FiniteDuration')
f(15,15723,53,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,15723,53,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,15723,53,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,15723,53,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8cd58')
f(1,15776,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,15776,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,15776,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,15776,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,15776,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,15776,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,15776,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,15776,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,15776,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,15776,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,15776,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,15776,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,15776,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,15776,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,15776,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,15776,1,2,'java.lang.Object[]')
f(7,15777,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,15777,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,15777,2,2,'java.util.concurrent.LinkedBlockingQueue')
f(9,15779,1,1,'java/util/concurrent/LinkedBlockingQueue.<init>')
f(10,15779,1,1,'java/util/concurrent/LinkedBlockingQueue.<init>')
f(11,15779,1,2,'java.util.concurrent.locks.ReentrantLock')
f(8,15780,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,15780,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,15780,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,15780,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,15780,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,15780,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,15785,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,15785,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,15785,3,1,'java/lang/ClassLoader.loadClass')
f(10,15785,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,15785,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,15785,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,15785,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,15785,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,15785,1,1,'java/security/CodeSource.<init>')
f(16,15785,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,15785,1,1,'java/lang/StringBuilder.append')
f(18,15785,1,1,'java/lang/AbstractStringBuilder.append')
f(19,15785,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,15785,1,1,'java/util/Arrays.copyOf')
f(21,15785,1,2,'byte[]')
f(15,15786,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,15786,1,1,'java/util/Arrays.copyOf')
f(17,15786,1,5,'byte[]')
f(14,15787,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,15787,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,15787,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,15787,1,1,'java/net/URL.<init>')
f(18,15787,1,1,'java/net/URL.<init>')
f(19,15787,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,15787,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,15787,1,1,'java/lang/StringBuilder.toString')
f(22,15787,1,1,'java/lang/StringLatin1.newString')
f(23,15787,1,2,'java.lang.String')
f(9,15788,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,15788,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,15788,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,15788,11,1,'java/io/ObjectStreamClass.lookup')
f(13,15788,11,1,'java/io/ObjectStreamClass.<init>')
f(14,15788,11,1,'java/security/AccessController.doPrivileged')
f(15,15788,11,1,'java/security/AccessController.executePrivileged')
f(16,15788,11,1,'java/io/ObjectStreamClass$2.run')
f(17,15788,11,1,'java/io/ObjectStreamClass$2.run')
f(18,15788,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,15788,2,1,'java/lang/Class.getDeclaredMethod')
f(20,15788,1,1,'java/lang/Class.methodToString')
f(21,15788,1,1,'java/lang/StringBuilder.append')
f(22,15788,1,1,'java/lang/AbstractStringBuilder.append')
f(23,15788,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,15788,1,1,'java/util/Arrays.copyOf')
f(25,15788,1,2,'byte[]')
f(20,15789,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,15789,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,15789,1,1,'java/lang/Exception.<init>')
f(23,15789,1,1,'java/lang/Throwable.<init>')
f(24,15789,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,15789,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,15789,1,2,'short[]')
f(18,15790,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,15790,3,1,'java/lang/Class.getDeclaredMethod')
f(20,15790,2,1,'java/lang/Class.methodToString')
f(21,15790,1,1,'java/lang/StringBuilder.append')
f(22,15790,1,1,'java/lang/AbstractStringBuilder.append')
f(23,15790,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,15790,1,1,'java/util/Arrays.copyOf')
f(25,15790,1,2,'byte[]')
f(21,15791,1,1,'java/lang/StringBuilder.toString')
f(22,15791,1,1,'java/lang/StringLatin1.newString')
f(23,15791,1,1,'java/util/Arrays.copyOfRange')
f(24,15791,1,2,'byte[]')
f(20,15792,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,15792,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,15792,1,1,'java/lang/Exception.<init>')
f(23,15792,1,1,'java/lang/Throwable.<init>')
f(24,15792,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,15792,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,15792,1,5,'long[]')
f(18,15793,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,15793,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,15793,1,1,'java/lang/Class.getDeclaredField')
f(21,15793,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,15793,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,15793,1,1,'java/lang/Exception.<init>')
f(24,15793,1,1,'java/lang/Throwable.<init>')
f(25,15793,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,15793,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,15793,1,2,'long[]')
f(18,15794,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,15794,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,15794,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,15794,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,15794,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,15794,1,1,'java/security/AccessController.doPrivileged')
f(24,15794,1,1,'java/security/AccessController.executePrivileged')
f(25,15794,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,15794,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,15794,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,15794,1,1,'java/security/AccessController.doPrivileged')
f(29,15794,1,1,'java/security/AccessController.executePrivileged')
f(30,15794,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,15794,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,15794,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,15794,1,1,'java/lang/ClassLoader.<init>')
f(34,15794,1,1,'java/lang/ClassLoader.<init>')
f(35,15794,1,1,'java/lang/ClassLoader.nameAndId')
f(36,15794,1,1,'java/lang/StringBuilder.<init>')
f(37,15794,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,15794,1,2,'byte[]')
f(23,15795,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,15795,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,15795,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,15795,1,2,'byte[]')
f(23,15796,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,15796,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,15796,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,15796,1,2,'byte[]')
f(23,15797,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,15797,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,15797,1,1,'java/lang/String.replace')
f(26,15797,1,1,'java/lang/StringLatin1.replace')
f(27,15797,1,2,'java.lang.String')
f(23,15798,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,15798,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 688px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(43);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,449,3,'all')
f(1,0,8,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,8,3,'thread_native_entry(Thread*)')
f(3,0,8,4,'Thread::call_run()')
f(4,0,8,4,'JavaThread::thread_main_inner()')
f(5,0,8,4,'CompileBroker::compiler_thread_loop()')
f(6,0,8,4,'CompileBroker::invoke_compiler_on_method(CompileTask*)')
f(7,0,7,4,'C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)')
f(8,0,7,4,'Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, bool, DirectiveSet*)')
f(9,0,4,4,'Compile::Code_Gen()')
f(10,0,1,4,'PhaseCFG::do_global_code_motion()')
f(11,0,1,4,'PhaseCFG::global_code_motion()')
f(12,0,1,4,'PhaseCFG::schedule_early(VectorSet&, Node_Stack&)')
f(10,1,2,4,'PhaseChaitin::Register_Allocate()')
f(11,1,1,4,'PhaseChaitin::Split(unsigned int, ResourceArea*)')
f(11,2,1,4,'PhaseIFG::Compute_Effective_Degree()')
f(12,2,1,4,'PhaseIFG::effective_degree(unsigned int) const')
f(10,3,1,4,'PhaseOutput::Output()')
f(11,3,1,4,'jmpDirNode::short_branch_version()')
f(9,4,2,4,'Compile::Optimize()')
f(10,4,1,4,'PhaseIdealLoop::build_and_optimize(LoopOptsMode)')
f(11,4,1,4,'PhaseIdealLoop::split_if_with_blocks(VectorSet&, Node_Stack&)')
f(12,4,1,4,'PhaseIdealLoop::split_if_with_blocks_post(Node*)')
f(13,4,1,4,'PhaseIdealLoop::try_sink_out_of_loop(Node*)')
f(14,4,1,4,'PhaseIdealLoop::compute_early_ctrl(Node*, Node*)')
f(10,5,1,4,'PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)')
f(11,5,1,4,'PhaseIdealLoop::build_and_optimize(LoopOptsMode)')
f(12,5,1,4,'PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&)')
f(13,5,1,4,'PhaseIdealLoop::build_loop_late_post_work(Node*, bool)')
f(14,5,1,4,'PhaseIdealLoop::compute_lca_of_uses(Node*, Node*, bool)')
f(9,6,1,4,'ParseGenerator::generate(JVMState*)')
f(10,6,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(11,6,1,4,'Parse::do_all_blocks()')
f(12,6,1,4,'Parse::do_one_block()')
f(13,6,1,4,'Parse::do_call()')
f(14,6,1,4,'PredictedCallGenerator::generate(JVMState*)')
f(15,6,1,4,'ParseGenerator::generate(JVMState*)')
f(16,6,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(17,6,1,4,'Parse::do_all_blocks()')
f(18,6,1,4,'Parse::do_one_block()')
f(19,6,1,4,'Parse::do_call()')
f(20,6,1,4,'PredictedCallGenerator::generate(JVMState*)')
f(21,6,1,4,'ParseGenerator::generate(JVMState*)')
f(22,6,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(23,6,1,4,'Parse::do_all_blocks()')
f(24,6,1,4,'Parse::do_one_block()')
f(25,6,1,4,'Parse::do_call()')
f(26,6,1,4,'PredictedCallGenerator::generate(JVMState*)')
f(27,6,1,4,'ParseGenerator::generate(JVMState*)')
f(28,6,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(29,6,1,4,'Parse::do_all_blocks()')
f(30,6,1,4,'Parse::do_one_block()')
f(31,6,1,4,'Parse::do_call()')
f(32,6,1,4,'ParseGenerator::generate(JVMState*)')
f(33,6,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(34,6,1,4,'Parse::do_all_blocks()')
f(35,6,1,4,'Parse::do_one_block()')
f(36,6,1,4,'Parse::do_call()')
f(37,6,1,4,'Compile::call_generator(ciMethod*, int, bool, JVMState*, bool, float, ciKlass*, bool)')
f(38,6,1,4,'CallGenerator::for_method_handle_call(JVMState*, ciMethod*, ciMethod*, bool)')
f(39,6,1,4,'CallGenerator::for_method_handle_inline(JVMState*, ciMethod*, ciMethod*, bool, bool&)')
f(40,6,1,4,'TypePtr::xmeet(Type const*) const')
f(41,6,1,4,'TypeInstPtr::xmeet_helper(Type const*) const')
f(42,6,1,4,'ciKlass::is_subtype_of(ciKlass*)')
f(7,7,1,4,'Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)')
f(8,7,1,4,'Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*, bool, DirectiveSet*)')
f(9,7,1,4,'Compilation::compile_method()')
f(10,7,1,4,'Compilation::compile_java_method()')
f(11,7,1,4,'ciMethod::ensure_method_data()')
f(12,7,1,4,'ciMethod::ensure_method_data(methodHandle const&)')
f(13,7,1,4,'ciObjectFactory::get_metadata(Metadata*)')
f(14,7,1,4,'GrowableArrayWithAllocator<ciMetadata*, GrowableArray<ciMetadata*> >::grow(int)')
f(1,8,9,3,'[unknown_Java]')
f(2,8,4,6,'cats/effect/IO$FlatMap.tag',0,4,0)
f(2,12,3,6,'cats/effect/IO$Pure.tag',0,3,0)
f(2,15,1,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(2,16,1,3,'nmethod')
f(1,17,393,1,'cats/effect/unsafe/WorkerThread.run')
f(2,17,375,1,'cats/effect/IOFiber.run',1,0,0)
f(3,17,267,1,'cats/effect/IOFiber.autoCedeR')
f(4,17,267,1,'cats/effect/IOFiber.runLoop')
f(5,44,13,2,'cats/effect/ArrayStack.push',13,0,0)
f(6,53,4,2,'cats/effect/ArrayStack.checkAndGrow',4,0,0)
f(5,57,14,2,'cats/effect/ByteStack$.push',14,0,0)
f(5,71,2,2,'cats/effect/IO$FlatMap.f',2,0,0)
f(5,73,4,2,'cats/effect/IO$FlatMap.ioe',4,0,0)
f(5,77,10,6,'cats/effect/IO$FlatMap.tag',0,10,0)
f(5,87,9,6,'cats/effect/IO$Pure.tag',0,9,0)
f(5,96,1,2,'cats/effect/IO$Pure.value',1,0,0)
f(5,97,19,1,'cats/effect/IOFiber.next$2')
f(6,98,18,2,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply',18,0,0)
f(7,100,16,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',16,0,0)
f(8,100,16,2,'kyo/bench/BroadFlatMapBench.catsFib$1',16,0,0)
f(9,102,1,2,'cats/effect/IO$.pure',1,0,0)
f(10,102,1,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(11,102,1,2,'cats/effect/IO$Pure.<init>',1,0,0)
f(12,102,1,2,'cats/effect/IO.<init>',1,0,0)
f(13,102,1,2,'cats/effect/IOPlatform.<init>',1,0,0)
f(9,103,5,2,'kyo/bench/BroadFlatMapBench.catsFib$1',5,0,0)
f(10,103,5,2,'scala/math/BigInt$.apply',5,0,0)
f(9,108,8,2,'scala/math/BigInt$.apply',8,0,0)
f(10,111,5,2,'scala/math/BigInt$.getCached',5,0,0)
f(11,114,2,2,'scala/math/BigInt.<init>',2,0,0)
f(5,116,4,2,'cats/effect/IOFiber.shouldFinalize',4,0,0)
f(5,120,145,1,'cats/effect/IOFiber.succeeded')
f(6,135,10,2,'cats/effect/ArrayStack.pop',10,0,0)
f(6,145,12,2,'cats/effect/ByteStack$.pop',12,0,0)
f(7,152,5,2,'cats/effect/ByteStack$.peek',5,0,0)
f(6,157,16,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,157,16,1,'cats/effect/IOFiber.done',1,0,0)
f(8,158,15,1,'cats/effect/CallbackStack.apply')
f(9,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(10,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(11,158,15,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,158,15,1,'cats/effect/IO.$anonfun$6')
f(13,158,15,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,158,15,1,'cats/effect/kernel/Outcome.fold$')
f(15,158,15,1,'cats/effect/kernel/Outcome.fold')
f(16,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(17,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(18,158,15,1,'cats/effect/IO$$Lambda$98.0x0000000800d5f850.applyVoid')
f(19,158,15,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(21,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(22,158,15,1,'cats/effect/IO$$Lambda$89.0x0000000800d55408.applyVoid')
f(23,158,15,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(25,158,15,1,'scala/runtime/function/JProcedure1.apply')
f(26,158,15,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57838.applyVoid')
f(27,158,15,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,158,15,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,158,15,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,158,15,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,158,15,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,158,15,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,158,15,1,'jdk/internal/misc/Unsafe.unpark')
f(34,158,15,3,'pthread_cond_signal')
f(35,160,13,5,'entry_SYSCALL_64_after_hwframe')
f(36,160,13,5,'do_syscall_64')
f(37,160,12,5,'__x64_sys_futex')
f(38,160,12,5,'do_futex')
f(39,161,11,5,'futex_wake')
f(40,161,1,5,'mark_wake_futex')
f(40,162,10,5,'wake_up_q')
f(41,162,10,5,'_raw_spin_unlock_irqrestore')
f(37,172,1,5,'syscall_enter_from_user_mode')
f(6,173,15,3,'itable stub')
f(6,188,56,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,200,44,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',28,0,0)
f(8,203,5,2,'cats/effect/IO.flatMap',4,0,0)
f(9,203,5,2,'cats/effect/IO$FlatMap$.apply',4,0,0)
f(10,207,1,4,'SharedRuntime::on_slowpath_allocation_exit(JavaThread*)')
f(8,208,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(9,208,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(10,208,3,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',3,0,0)
f(8,211,33,2,'kyo/bench/BroadFlatMapBench.catsFib$1',18,0,0)
f(9,211,2,2,'cats/effect/IO.flatMap',2,0,0)
f(10,211,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(9,213,22,1,'kyo/bench/BroadFlatMapBench.catsFib$1',7,0,0)
f(10,213,1,2,'cats/effect/IO$.pure',1,0,0)
f(11,213,1,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(10,214,4,2,'cats/effect/IO.flatMap',4,0,0)
f(11,214,4,2,'cats/effect/IO$FlatMap$.apply',4,0,0)
f(10,218,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(11,218,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(12,218,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(10,219,15,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,219,1,2,'cats/effect/IO.flatMap',1,0,0)
f(12,219,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(11,220,10,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,220,3,2,'cats/effect/IO.flatMap',3,0,0)
f(13,220,3,2,'cats/effect/IO$FlatMap$.apply',3,0,0)
f(12,223,5,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,223,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(14,223,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(15,223,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(13,224,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,224,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,225,1,2,'cats/effect/IO.flatMap',1,0,0)
f(16,225,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(13,226,2,2,'scala/math/BigInt$.apply',2,0,0)
f(14,226,2,2,'scala/math/BigInt$.getCached',2,0,0)
f(12,228,2,2,'scala/math/BigInt$.apply',2,0,0)
f(13,228,2,2,'scala/math/BigInt$.getCached',2,0,0)
f(11,230,4,2,'scala/math/BigInt$.apply',4,0,0)
f(12,230,4,2,'scala/math/BigInt$.getCached',4,0,0)
f(10,234,1,2,'scala/math/BigInt$.apply',1,0,0)
f(11,234,1,2,'scala/math/BigInt$.getCached',1,0,0)
f(9,235,9,2,'scala/math/BigInt$.apply',9,0,0)
f(10,235,9,2,'scala/math/BigInt$.getCached',9,0,0)
f(6,244,21,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(7,255,10,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1',10,0,0)
f(8,255,1,2,'cats/effect/IO$.pure',1,0,0)
f(9,255,1,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(8,256,9,2,'scala/math/BigInt.$plus',9,0,0)
f(9,257,5,2,'scala/math/BigInt$.apply',5,0,0)
f(10,257,5,2,'scala/math/BigInt$.getCached',5,0,0)
f(9,262,3,2,'scala/math/BigInt.longEncoding',3,0,0)
f(5,265,19,3,'vtable stub')
f(3,284,102,1,'cats/effect/IOFiber.cedeR')
f(4,284,101,1,'cats/effect/IOFiber.runLoop')
f(5,301,6,2,'cats/effect/ArrayStack.push',6,0,0)
f(6,305,2,2,'cats/effect/ArrayStack.checkAndGrow',2,0,0)
f(5,307,4,2,'cats/effect/ByteStack$.push',4,0,0)
f(5,311,1,2,'cats/effect/IO$FlatMap.f',1,0,0)
f(5,312,1,2,'cats/effect/IO$FlatMap.ioe',1,0,0)
f(5,313,8,6,'cats/effect/IO$FlatMap.tag',0,8,0)
f(5,321,4,6,'cats/effect/IO$Pure.tag',0,4,0)
f(5,325,11,1,'cats/effect/IOFiber.next$2')
f(6,328,8,2,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply',8,0,0)
f(7,330,6,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',6,0,0)
f(8,330,6,2,'kyo/bench/BroadFlatMapBench.catsFib$1',6,0,0)
f(9,330,2,2,'kyo/bench/BroadFlatMapBench.catsFib$1',2,0,0)
f(10,330,2,2,'scala/math/BigInt$.apply',2,0,0)
f(9,332,4,2,'scala/math/BigInt$.apply',4,0,0)
f(10,333,3,2,'scala/math/BigInt$.getCached',3,0,0)
f(5,336,1,2,'cats/effect/IOFiber.shouldFinalize',1,0,0)
f(5,337,43,1,'cats/effect/IOFiber.succeeded')
f(6,343,6,2,'cats/effect/ArrayStack.pop',6,0,0)
f(6,349,5,2,'cats/effect/ByteStack$.pop',5,0,0)
f(6,354,5,3,'itable stub')
f(6,359,15,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,361,13,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',6,0,0)
f(8,362,12,2,'kyo/bench/BroadFlatMapBench.catsFib$1',5,0,0)
f(9,362,1,2,'cats/effect/IO.flatMap',1,0,0)
f(10,362,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(9,363,8,1,'kyo/bench/BroadFlatMapBench.catsFib$1',1,0,0)
f(10,363,1,2,'cats/effect/IO.flatMap',1,0,0)
f(11,363,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(10,364,7,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,365,3,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,366,1,2,'cats/effect/IO.flatMap',1,0,0)
f(13,366,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(12,367,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,367,1,2,'scala/math/BigInt$.apply',1,0,0)
f(14,367,1,2,'scala/math/BigInt$.getCached',1,0,0)
f(11,368,3,2,'scala/math/BigInt$.apply',3,0,0)
f(12,368,3,2,'scala/math/BigInt$.getCached',3,0,0)
f(9,371,3,2,'scala/math/BigInt$.apply',3,0,0)
f(10,371,3,2,'scala/math/BigInt$.getCached',3,0,0)
f(6,374,6,1,'kyo/bench/BroadFlatMapBench$$Lambda$95.0x0000000800d5e8b8.apply')
f(5,380,5,3,'vtable stub')
f(4,385,1,1,'cats/effect/IOFiber.succeeded')
f(5,385,1,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8cd58.apply')
f(6,385,1,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,385,1,1,'kyo/bench/BroadFlatMapBench.catsBench')
f(8,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(20,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(21,385,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(22,385,1,2,'cats/effect/IO.flatMap',1,0,0)
f(23,385,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(3,386,6,1,'cats/effect/IOFiber.execR',1,0,0)
f(4,391,1,1,'cats/effect/IOFiber.runLoop')
f(5,391,1,2,'cats/effect/ArrayStack.push',1,0,0)
f(6,391,1,2,'cats/effect/ArrayStack.checkAndGrow',1,0,0)
f(2,392,2,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,392,2,1,'cats/effect/unsafe/LocalQueue.stealInto')
f(4,392,2,2,'cats/effect/unsafe/LocalQueue.msb',2,0,0)
f(2,394,16,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,394,16,1,'java/util/concurrent/locks/LockSupport.park')
f(4,394,16,1,'jdk/internal/misc/Unsafe.park')
f(5,394,3,3,'Unsafe_Park')
f(6,394,2,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,394,2,5,'entry_SYSCALL_64_after_hwframe')
f(8,394,2,5,'do_syscall_64')
f(9,394,1,5,'__x64_sys_futex')
f(10,394,1,5,'do_futex')
f(11,394,1,5,'get_futex_key')
f(9,395,1,5,'syscall_enter_from_user_mode')
f(6,396,1,3,'__tls_get_addr')
f(5,397,12,3,'[unknown]')
f(6,397,11,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,400,8,5,'entry_SYSCALL_64_after_hwframe')
f(8,400,8,5,'do_syscall_64')
f(9,400,6,5,'__x64_sys_futex')
f(10,400,6,5,'do_futex')
f(11,400,6,5,'futex_wait')
f(12,400,5,5,'futex_wait_queue_me')
f(13,400,5,5,'schedule')
f(14,400,5,5,'__schedule')
f(15,400,5,5,'finish_task_switch.isra.0')
f(12,405,1,5,'futex_wait_setup')
f(9,406,2,5,'syscall_exit_to_user_mode')
f(10,406,2,5,'exit_to_user_mode_prepare')
f(11,406,2,5,'exit_to_user_mode_loop')
f(12,407,1,5,'__rseq_handle_notify_resume')
f(13,407,1,5,'__put_user_nocheck_8')
f(6,408,1,3,'pthread_cond_wait')
f(5,409,1,4,'java_lang_Thread::get_thread_status(oopDesc*)')
f(1,410,39,1,'java/lang/Thread.run')
f(2,410,39,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,410,39,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,410,39,1,'java/util/concurrent/FutureTask.run')
f(5,410,39,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,410,39,1,'java/util/concurrent/FutureTask.run')
f(7,410,39,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,410,39,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,410,39,1,'java/lang/reflect/Method.invoke')
f(10,410,39,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,410,39,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,410,39,1,'kyo/bench/jmh_generated/BroadFlatMapBench_forkCats_jmhTest.forkCats_Throughput')
f(13,410,39,1,'kyo/bench/jmh_generated/BroadFlatMapBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,410,39,1,'kyo/bench/Bench.forkCats')
f(15,410,39,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,410,39,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,410,27,1,'cats/effect/IO.unsafeRunAsync',2,0,0)
f(18,410,27,1,'cats/effect/IO.unsafeRunFiber',2,0,0)
f(19,410,3,2,'cats/effect/unsafe/StripedHashtable.put',1,0,0)
f(20,410,1,2,'cats/effect/unsafe/ThreadSafeHashtable.put',1,0,0)
f(20,411,2,1,'java/lang/System.identityHashCode')
f(21,411,2,3,'JVM_IHashCode')
f(19,413,23,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,413,23,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,413,23,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,413,23,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,413,23,1,'jdk/internal/misc/Unsafe.unpark')
f(24,413,1,3,'Unsafe_Unpark')
f(24,414,22,3,'pthread_cond_signal')
f(25,416,20,5,'entry_SYSCALL_64_after_hwframe')
f(26,416,20,5,'do_syscall_64')
f(27,416,20,5,'__x64_sys_futex')
f(28,416,20,5,'do_futex')
f(29,416,20,5,'futex_wake')
f(30,417,19,5,'wake_up_q')
f(31,418,17,5,'_raw_spin_unlock_irqrestore')
f(31,435,1,5,'try_to_wake_up')
f(19,436,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(20,436,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58400.newInvokeSpecial',1,0,0)
f(21,436,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(17,437,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(18,437,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(19,437,1,2,'java/util/concurrent/locks/ReentrantLock.<init>',1,0,0)
f(20,437,1,2,'java/util/concurrent/locks/ReentrantLock$NonfairSync.<init>',1,0,0)
f(21,437,1,2,'java/util/concurrent/locks/ReentrantLock$Sync.<init>',1,0,0)
f(17,438,11,1,'scala/concurrent/package$.blocking')
f(18,438,11,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,438,11,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5dc00.apply')
f(20,438,11,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,438,11,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,438,11,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,438,11,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,438,11,1,'jdk/internal/misc/Unsafe.park')
f(25,440,1,3,'Unsafe_Park')
f(26,440,1,3,'pthread_mutex_unlock')
f(25,441,8,3,'[unknown]')
f(26,441,8,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,442,7,5,'entry_SYSCALL_64_after_hwframe')
f(28,442,7,5,'do_syscall_64')
f(29,442,4,5,'__x64_sys_futex')
f(30,442,4,5,'do_futex')
f(31,442,3,5,'futex_wait')
f(32,442,3,5,'futex_wait_queue_me')
f(33,442,3,5,'schedule')
f(34,442,3,5,'__schedule')
f(35,442,3,5,'finish_task_switch.isra.0')
f(31,445,1,5,'futex_wait_queue_me')
f(29,446,3,5,'syscall_exit_to_user_mode')
f(30,446,3,5,'exit_to_user_mode_prepare')
f(31,446,3,5,'exit_to_user_mode_loop')
f(32,446,2,5,'__rseq_handle_notify_resume')
f(33,446,2,5,'rseq_ip_fixup')
f(34,446,2,5,'__get_user_8')
f(32,448,1,5,'blkcg_maybe_throttle_current')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,20846,3,'all')
f(1,0,18598,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,18598,1,'cats/effect/IOFiber.run')
f(3,0,13601,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,13601,1,'cats/effect/IOFiber.runLoop')
f(5,0,3711,1,'cats/effect/IOFiber.next$2')
f(6,0,2569,1,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply')
f(7,0,2569,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,0,1176,1,'cats/effect/IO.flatMap')
f(9,0,1176,1,'cats/effect/IO$FlatMap$.apply')
f(10,0,1176,2,'cats.effect.IO$FlatMap')
f(8,1176,675,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,1176,675,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,1176,675,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,1176,675,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5b2b0')
f(8,1851,718,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,1851,718,1,'cats/effect/IO$.pure')
f(10,1851,718,1,'cats/effect/IO$Pure$.apply')
f(11,1851,718,2,'cats.effect.IO$Pure')
f(6,2569,1142,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5b2b0.apply')
f(7,2569,1142,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,2569,1142,1,'cats/effect/IO$.pure')
f(9,2569,1142,1,'cats/effect/IO$Pure$.apply')
f(10,2569,1142,2,'cats.effect.IO$Pure')
f(5,3711,9890,1,'cats/effect/IOFiber.succeeded')
f(6,3711,33,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,3711,3,1,'cats/effect/IO$.pure')
f(8,3711,3,1,'cats/effect/IO$Pure$.apply')
f(9,3711,3,2,'cats.effect.IO$Pure')
f(7,3714,23,1,'cats/effect/IOFiber.done')
f(8,3714,21,1,'cats/effect/CallbackStack.apply')
f(9,3714,21,1,'scala/runtime/function/JProcedure1.apply')
f(10,3714,21,1,'scala/runtime/function/JProcedure1.apply')
f(11,3714,21,1,'cats/effect/IO$$Lambda$90.0x0000000800d58dc0.applyVoid')
f(12,3714,21,1,'cats/effect/IO.$anonfun$6')
f(13,3714,11,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,3714,11,1,'cats/effect/kernel/Outcome.fold$')
f(15,3714,11,1,'cats/effect/kernel/Outcome.fold')
f(16,3714,11,1,'scala/runtime/function/JProcedure1.apply')
f(17,3714,11,1,'scala/runtime/function/JProcedure1.apply')
f(18,3714,11,1,'cats/effect/IO$$Lambda$97.0x0000000800d5e6c8.applyVoid')
f(19,3714,11,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,3714,11,1,'scala/runtime/function/JProcedure1.apply')
f(21,3714,11,1,'scala/runtime/function/JProcedure1.apply')
f(22,3714,11,1,'cats/effect/IO$$Lambda$89.0x0000000800d58000.applyVoid')
f(23,3714,11,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,3714,8,1,'scala/runtime/function/JProcedure1.apply')
f(25,3714,8,1,'scala/runtime/function/JProcedure1.apply')
f(26,3714,8,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d55760.applyVoid')
f(27,3714,8,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,3714,8,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,3714,8,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,3714,8,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,3714,8,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,3714,8,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,3714,8,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,3714,8,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(24,3722,3,1,'scala/util/Right$.apply')
f(25,3722,3,2,'scala.util.Right')
f(13,3725,10,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,3725,10,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,3725,10,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,3725,4,2,'cats.effect.IO$$Lambda$95+0x0000000800d5e000')
f(16,3729,4,2,'cats.effect.IO$$Lambda$96+0x0000000800d5e2c0')
f(16,3733,2,2,'cats.effect.IO$$Lambda$97+0x0000000800d5e6c8')
f(8,3735,2,1,'cats/effect/IO$.pure')
f(9,3735,2,1,'cats/effect/IO$Pure$.apply')
f(10,3735,2,2,'cats.effect.IO$Pure')
f(7,3737,7,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,3737,7,2,'cats.effect.kernel.Outcome$Succeeded')
f(6,3744,9081,1,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply')
f(7,3744,9081,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,3744,1884,1,'cats/effect/IO.flatMap')
f(9,3744,1884,1,'cats/effect/IO$FlatMap$.apply')
f(10,3744,1884,2,'cats.effect.IO$FlatMap')
f(8,5628,1165,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,5628,1165,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,5628,1165,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,5628,1165,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5b2b0')
f(8,6793,6032,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,6793,484,1,'cats/effect/IO$.pure')
f(10,6793,484,1,'cats/effect/IO$Pure$.apply')
f(11,6793,484,2,'cats.effect.IO$Pure')
f(9,7277,1163,1,'cats/effect/IO.flatMap')
f(10,7277,1163,1,'cats/effect/IO$FlatMap$.apply')
f(11,7277,1163,2,'cats.effect.IO$FlatMap')
f(9,8440,703,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,8440,703,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,8440,703,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,8440,703,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(9,9143,3682,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,9143,258,1,'cats/effect/IO$.pure')
f(11,9143,258,1,'cats/effect/IO$Pure$.apply')
f(12,9143,258,2,'cats.effect.IO$Pure')
f(10,9401,705,1,'cats/effect/IO.flatMap')
f(11,9401,705,1,'cats/effect/IO$FlatMap$.apply')
f(12,9401,705,2,'cats.effect.IO$FlatMap')
f(10,10106,462,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,10106,462,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,10106,462,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,10106,462,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(10,10568,2257,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,10568,196,1,'cats/effect/IO$.pure')
f(12,10568,196,1,'cats/effect/IO$Pure$.apply')
f(13,10568,196,2,'cats.effect.IO$Pure')
f(11,10764,384,1,'cats/effect/IO.flatMap')
f(12,10764,384,1,'cats/effect/IO$FlatMap$.apply')
f(13,10764,384,2,'cats.effect.IO$FlatMap')
f(11,11148,273,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(12,11148,273,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(13,11148,273,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(14,11148,273,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(11,11421,1404,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,11421,122,1,'cats/effect/IO$.pure')
f(13,11421,122,1,'cats/effect/IO$Pure$.apply')
f(14,11421,122,2,'cats.effect.IO$Pure')
f(12,11543,257,1,'cats/effect/IO.flatMap')
f(13,11543,257,1,'cats/effect/IO$FlatMap$.apply')
f(14,11543,257,2,'cats.effect.IO$FlatMap')
f(12,11800,189,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,11800,189,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,11800,189,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,11800,189,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(12,11989,836,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,11989,73,1,'cats/effect/IO$.pure')
f(14,11989,73,1,'cats/effect/IO$Pure$.apply')
f(15,11989,73,2,'cats.effect.IO$Pure')
f(13,12062,158,1,'cats/effect/IO.flatMap')
f(14,12062,158,1,'cats/effect/IO$FlatMap$.apply')
f(15,12062,158,2,'cats.effect.IO$FlatMap')
f(13,12220,127,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,12220,127,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,12220,127,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,12220,127,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(13,12347,478,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,12347,39,1,'cats/effect/IO$.pure')
f(15,12347,39,1,'cats/effect/IO$Pure$.apply')
f(16,12347,39,2,'cats.effect.IO$Pure')
f(14,12386,88,1,'cats/effect/IO.flatMap')
f(15,12386,88,1,'cats/effect/IO$FlatMap$.apply')
f(16,12386,88,2,'cats.effect.IO$FlatMap')
f(14,12474,76,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,12474,76,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,12474,76,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,12474,76,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(14,12550,275,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,12550,29,1,'cats/effect/IO$.pure')
f(16,12550,29,1,'cats/effect/IO$Pure$.apply')
f(17,12550,29,2,'cats.effect.IO$Pure')
f(15,12579,51,1,'cats/effect/IO.flatMap')
f(16,12579,51,1,'cats/effect/IO$FlatMap$.apply')
f(17,12579,51,2,'cats.effect.IO$FlatMap')
f(15,12630,43,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,12630,43,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,12630,43,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,12630,43,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(15,12673,152,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,12673,5,1,'cats/effect/IO$.pure')
f(17,12673,5,1,'cats/effect/IO$Pure$.apply')
f(18,12673,5,2,'cats.effect.IO$Pure')
f(16,12678,34,1,'cats/effect/IO.flatMap')
f(17,12678,34,1,'cats/effect/IO$FlatMap$.apply')
f(18,12678,34,2,'cats.effect.IO$FlatMap')
f(16,12712,27,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,12712,27,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,12712,27,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,12712,27,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(16,12739,86,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,12739,12,1,'cats/effect/IO$.pure')
f(18,12739,12,1,'cats/effect/IO$Pure$.apply')
f(19,12739,12,2,'cats.effect.IO$Pure')
f(17,12751,24,1,'cats/effect/IO.flatMap')
f(18,12751,24,1,'cats/effect/IO$FlatMap$.apply')
f(19,12751,24,2,'cats.effect.IO$FlatMap')
f(17,12775,9,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,12775,9,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,12775,9,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,12775,9,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(17,12784,41,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,12784,4,1,'cats/effect/IO$.pure')
f(19,12784,4,1,'cats/effect/IO$Pure$.apply')
f(20,12784,4,2,'cats.effect.IO$Pure')
f(18,12788,12,1,'cats/effect/IO.flatMap')
f(19,12788,12,1,'cats/effect/IO$FlatMap$.apply')
f(20,12788,12,2,'cats.effect.IO$FlatMap')
f(18,12800,9,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,12800,9,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,12800,9,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,12800,9,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(18,12809,16,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,12809,1,1,'cats/effect/IO$.pure')
f(20,12809,1,1,'cats/effect/IO$Pure$.apply')
f(21,12809,1,2,'cats.effect.IO$Pure')
f(19,12810,6,1,'cats/effect/IO.flatMap')
f(20,12810,6,1,'cats/effect/IO$FlatMap$.apply')
f(21,12810,6,2,'cats.effect.IO$FlatMap')
f(19,12816,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,12816,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(21,12816,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,12816,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(19,12819,6,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(20,12819,2,1,'cats/effect/IO.flatMap')
f(21,12819,2,1,'cats/effect/IO$FlatMap$.apply')
f(22,12819,2,2,'cats.effect.IO$FlatMap')
f(20,12821,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,12821,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,12821,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,12821,1,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(20,12822,3,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(21,12822,3,1,'cats/effect/IO$.pure')
f(22,12822,3,1,'cats/effect/IO$Pure$.apply')
f(23,12822,3,2,'cats.effect.IO$Pure')
f(6,12825,776,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5b2b0.apply')
f(7,12825,776,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,12825,776,1,'cats/effect/IO$.pure')
f(9,12825,776,1,'cats/effect/IO$Pure$.apply')
f(10,12825,776,2,'cats.effect.IO$Pure')
f(3,13601,4997,1,'cats/effect/IOFiber.execR')
f(4,13601,32,1,'cats/effect/ArrayStack.init')
f(5,13601,32,2,'java.lang.Object[]')
f(4,13633,270,1,'cats/effect/ByteStack$.create')
f(5,13633,270,2,'int[]')
f(4,13903,4695,1,'cats/effect/IOFiber.runLoop')
f(5,13903,1299,1,'cats/effect/IOFiber.next$2')
f(6,13903,870,1,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply')
f(7,13903,870,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,13903,399,1,'cats/effect/IO.flatMap')
f(9,13903,399,1,'cats/effect/IO$FlatMap$.apply')
f(10,13903,399,2,'cats.effect.IO$FlatMap')
f(8,14302,229,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,14302,229,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,14302,229,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,14302,229,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5b2b0')
f(8,14531,242,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,14531,242,1,'cats/effect/IO$.pure')
f(10,14531,242,1,'cats/effect/IO$Pure$.apply')
f(11,14531,242,2,'cats.effect.IO$Pure')
f(6,14773,429,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5b2b0.apply')
f(7,14773,429,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,14773,429,1,'cats/effect/IO$.pure')
f(9,14773,429,1,'cats/effect/IO$Pure$.apply')
f(10,14773,429,2,'cats.effect.IO$Pure')
f(5,15202,3396,1,'cats/effect/IOFiber.succeeded')
f(6,15202,3189,1,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply')
f(7,15202,3189,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1')
f(8,15202,674,1,'cats/effect/IO.flatMap')
f(9,15202,674,1,'cats/effect/IO$FlatMap$.apply')
f(10,15202,674,2,'cats.effect.IO$FlatMap')
f(8,15876,426,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,15876,426,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,15876,426,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,15876,426,2,'kyo.bench.BroadFlatMapBench$$Lambda$94+0x0000000800d5b2b0')
f(8,16302,2089,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(9,16302,142,1,'cats/effect/IO$.pure')
f(10,16302,142,1,'cats/effect/IO$Pure$.apply')
f(11,16302,142,2,'cats.effect.IO$Pure')
f(9,16444,437,1,'cats/effect/IO.flatMap')
f(10,16444,437,1,'cats/effect/IO$FlatMap$.apply')
f(11,16444,437,2,'cats.effect.IO$FlatMap')
f(9,16881,285,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,16881,285,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,16881,285,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,16881,285,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(9,17166,1225,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,17166,76,1,'cats/effect/IO$.pure')
f(11,17166,76,1,'cats/effect/IO$Pure$.apply')
f(12,17166,76,2,'cats.effect.IO$Pure')
f(10,17242,237,1,'cats/effect/IO.flatMap')
f(11,17242,237,1,'cats/effect/IO$FlatMap$.apply')
f(12,17242,237,2,'cats.effect.IO$FlatMap')
f(10,17479,143,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,17479,143,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,17479,143,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,17479,143,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(10,17622,769,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,17622,65,1,'cats/effect/IO$.pure')
f(12,17622,65,1,'cats/effect/IO$Pure$.apply')
f(13,17622,65,2,'cats.effect.IO$Pure')
f(11,17687,153,1,'cats/effect/IO.flatMap')
f(12,17687,153,1,'cats/effect/IO$FlatMap$.apply')
f(13,17687,153,2,'cats.effect.IO$FlatMap')
f(11,17840,93,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(12,17840,93,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(13,17840,93,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(14,17840,93,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(11,17933,458,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,17933,36,1,'cats/effect/IO$.pure')
f(13,17933,36,1,'cats/effect/IO$Pure$.apply')
f(14,17933,36,2,'cats.effect.IO$Pure')
f(12,17969,78,1,'cats/effect/IO.flatMap')
f(13,17969,78,1,'cats/effect/IO$FlatMap$.apply')
f(14,17969,78,2,'cats.effect.IO$FlatMap')
f(12,18047,59,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,18047,59,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,18047,59,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,18047,59,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(12,18106,285,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,18106,27,1,'cats/effect/IO$.pure')
f(14,18106,27,1,'cats/effect/IO$Pure$.apply')
f(15,18106,27,2,'cats.effect.IO$Pure')
f(13,18133,64,1,'cats/effect/IO.flatMap')
f(14,18133,64,1,'cats/effect/IO$FlatMap$.apply')
f(15,18133,64,2,'cats.effect.IO$FlatMap')
f(13,18197,41,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,18197,41,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,18197,41,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,18197,41,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(13,18238,153,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,18238,17,1,'cats/effect/IO$.pure')
f(15,18238,17,1,'cats/effect/IO$Pure$.apply')
f(16,18238,17,2,'cats.effect.IO$Pure')
f(14,18255,35,1,'cats/effect/IO.flatMap')
f(15,18255,35,1,'cats/effect/IO$FlatMap$.apply')
f(16,18255,35,2,'cats.effect.IO$FlatMap')
f(14,18290,21,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,18290,21,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,18290,21,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,18290,21,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(14,18311,80,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,18311,6,1,'cats/effect/IO$.pure')
f(16,18311,6,1,'cats/effect/IO$Pure$.apply')
f(17,18311,6,2,'cats.effect.IO$Pure')
f(15,18317,11,1,'cats/effect/IO.flatMap')
f(16,18317,11,1,'cats/effect/IO$FlatMap$.apply')
f(17,18317,11,2,'cats.effect.IO$FlatMap')
f(15,18328,20,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,18328,20,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,18328,20,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,18328,20,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(15,18348,43,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,18348,3,1,'cats/effect/IO$.pure')
f(17,18348,3,1,'cats/effect/IO$Pure$.apply')
f(18,18348,3,2,'cats.effect.IO$Pure')
f(16,18351,9,1,'cats/effect/IO.flatMap')
f(17,18351,9,1,'cats/effect/IO$FlatMap$.apply')
f(18,18351,9,2,'cats.effect.IO$FlatMap')
f(16,18360,7,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,18360,7,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,18360,7,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,18360,7,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(16,18367,24,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,18367,2,1,'cats/effect/IO$.pure')
f(18,18367,2,1,'cats/effect/IO$Pure$.apply')
f(19,18367,2,2,'cats.effect.IO$Pure')
f(17,18369,6,1,'cats/effect/IO.flatMap')
f(18,18369,6,1,'cats/effect/IO$FlatMap$.apply')
f(19,18369,6,2,'cats.effect.IO$FlatMap')
f(17,18375,7,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,18375,7,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,18375,7,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,18375,7,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(17,18382,9,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,18382,1,1,'cats/effect/IO$.pure')
f(19,18382,1,1,'cats/effect/IO$Pure$.apply')
f(20,18382,1,2,'cats.effect.IO$Pure')
f(18,18383,2,1,'cats/effect/IO.flatMap')
f(19,18383,2,1,'cats/effect/IO$FlatMap$.apply')
f(20,18383,2,2,'cats.effect.IO$FlatMap')
f(18,18385,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,18385,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,18385,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,18385,3,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(18,18388,3,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,18388,3,1,'cats/effect/IO$.pure')
f(20,18388,3,1,'cats/effect/IO$Pure$.apply')
f(21,18388,3,2,'cats.effect.IO$Pure')
f(6,18391,207,1,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5b2b0.apply')
f(7,18391,207,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1')
f(8,18391,207,1,'cats/effect/IO$.pure')
f(9,18391,207,1,'cats/effect/IO$Pure$.apply')
f(10,18391,207,2,'cats.effect.IO$Pure')
f(1,18598,1,2,'java.lang.String')
f(1,18599,2224,1,'java/lang/Thread.run')
f(2,18599,2224,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,18599,2224,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,18599,2224,1,'java/util/concurrent/FutureTask.run')
f(5,18599,2224,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,18599,2224,1,'java/util/concurrent/FutureTask.run')
f(7,18599,2224,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,18599,2224,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,18599,2224,1,'java/lang/reflect/Method.invoke')
f(10,18599,2224,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,18599,2224,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,18599,2224,1,'kyo/bench/jmh_generated/BroadFlatMapBench_syncCats_jmhTest.syncCats_Throughput')
f(13,18599,2224,1,'kyo/bench/jmh_generated/BroadFlatMapBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,18599,2224,1,'kyo/bench/Bench.syncCats')
f(15,18599,1193,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,18599,1152,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,18599,651,1,'cats/effect/IO.unsafeRunAsync')
f(18,18599,562,1,'cats/effect/IO.unsafeRunFiber')
f(19,18599,175,2,'cats.effect.IOFiber')
f(19,18774,288,1,'cats/effect/IOFiber.<init>')
f(20,18774,82,1,'cats/effect/ArrayStack$.apply')
f(21,18774,82,2,'cats.effect.ArrayStack')
f(20,18856,28,1,'cats/effect/CallbackStack$.apply')
f(21,18856,28,2,'cats.effect.CallbackStack')
f(20,18884,71,1,'cats/effect/IO$.async')
f(21,18884,13,2,'cats.effect.IO$$anon$3')
f(21,18897,58,1,'cats/effect/IO$IOCont$.apply')
f(22,18897,58,2,'cats.effect.IO$IOCont')
f(20,18955,46,1,'cats/effect/IO$.uncancelable')
f(21,18955,46,1,'cats/effect/IO$Uncancelable$.apply')
f(22,18955,46,2,'cats.effect.IO$Uncancelable')
f(20,19001,61,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,19001,61,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,19001,61,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,19001,37,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d59bf8')
f(23,19038,24,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5a1e8')
f(19,19062,29,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,19062,29,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,19062,29,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,19062,29,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,19062,29,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,19091,70,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,19091,70,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial')
f(21,19091,70,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,19091,70,2,'cats.effect.IO$$Lambda$90+0x0000000800d58dc0')
f(18,19161,89,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,19161,89,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,19161,89,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,19161,28,2,'cats.effect.IO$$Lambda$87+0x0000000800d55b68')
f(21,19189,44,2,'cats.effect.IO$$Lambda$88+0x0000000800d54800')
f(21,19233,17,2,'cats.effect.IO$$Lambda$89+0x0000000800d58000')
f(17,19250,120,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,19370,35,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,19370,35,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,19370,35,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,19370,35,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d55760')
f(17,19405,213,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,19405,213,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,19405,34,2,'java.lang.Object[]')
f(19,19439,38,2,'java.util.concurrent.locks.ReentrantLock')
f(19,19477,50,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,19477,50,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,19527,91,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,19527,91,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,19527,91,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,19618,71,1,'scala/concurrent/package$.blocking')
f(18,19618,71,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,19618,71,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5abc8.apply')
f(20,19618,71,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,19618,71,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,19618,71,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,19618,71,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,19689,62,1,'scala/util/Either.fold')
f(18,19689,62,1,'cats/effect/IOPlatform$$Lambda$99.0x0000000800d5f450.apply')
f(19,19689,62,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,19689,62,1,'scala/Some$.apply')
f(21,19689,62,2,'scala.Some')
f(16,19751,41,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,19751,41,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,19751,41,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,19751,41,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,19751,41,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,19751,41,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,19751,41,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,19751,41,2,'scala.concurrent.duration.FiniteDuration')
f(15,19792,1031,1,'kyo/bench/BroadFlatMapBench.catsBench')
f(16,19792,1031,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,19792,47,1,'cats/effect/IO.flatMap')
f(18,19792,47,1,'cats/effect/IO$FlatMap$.apply')
f(19,19792,47,2,'cats.effect.IO$FlatMap')
f(17,19839,27,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,19839,27,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,19839,27,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,19839,27,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(17,19866,957,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,19866,53,1,'cats/effect/IO.flatMap')
f(19,19866,53,1,'cats/effect/IO$FlatMap$.apply')
f(20,19866,53,2,'cats.effect.IO$FlatMap')
f(18,19919,22,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,19919,22,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,19919,22,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,19919,22,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(18,19941,882,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,19941,50,1,'cats/effect/IO.flatMap')
f(20,19941,50,1,'cats/effect/IO$FlatMap$.apply')
f(21,19941,50,2,'cats.effect.IO$FlatMap')
f(19,19991,24,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,19991,24,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(21,19991,24,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,19991,24,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(19,20015,808,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(20,20015,42,1,'cats/effect/IO.flatMap')
f(21,20015,42,1,'cats/effect/IO$FlatMap$.apply')
f(22,20015,42,2,'cats.effect.IO$FlatMap')
f(20,20057,19,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,20057,19,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,20057,19,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,20057,19,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(20,20076,747,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(21,20076,35,1,'cats/effect/IO.flatMap')
f(22,20076,35,1,'cats/effect/IO$FlatMap$.apply')
f(23,20076,35,2,'cats.effect.IO$FlatMap')
f(21,20111,22,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(22,20111,22,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(23,20111,22,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(24,20111,22,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(21,20133,690,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(22,20133,62,1,'cats/effect/IO.flatMap')
f(23,20133,62,1,'cats/effect/IO$FlatMap$.apply')
f(24,20133,62,2,'cats.effect.IO$FlatMap')
f(22,20195,50,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(23,20195,50,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(24,20195,50,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(25,20195,50,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(22,20245,578,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(23,20245,47,1,'cats/effect/IO.flatMap')
f(24,20245,47,1,'cats/effect/IO$FlatMap$.apply')
f(25,20245,47,2,'cats.effect.IO$FlatMap')
f(23,20292,13,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(24,20292,13,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(25,20292,13,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(26,20292,13,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(23,20305,518,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(24,20305,37,1,'cats/effect/IO.flatMap')
f(25,20305,37,1,'cats/effect/IO$FlatMap$.apply')
f(26,20305,37,2,'cats.effect.IO$FlatMap')
f(24,20342,27,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(25,20342,27,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(26,20342,27,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(27,20342,27,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(24,20369,454,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(25,20369,55,1,'cats/effect/IO.flatMap')
f(26,20369,55,1,'cats/effect/IO$FlatMap$.apply')
f(27,20369,55,2,'cats.effect.IO$FlatMap')
f(25,20424,17,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(26,20424,17,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(27,20424,17,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(28,20424,17,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(25,20441,382,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(26,20441,38,1,'cats/effect/IO.flatMap')
f(27,20441,38,1,'cats/effect/IO$FlatMap$.apply')
f(28,20441,38,2,'cats.effect.IO$FlatMap')
f(26,20479,20,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(27,20479,20,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(28,20479,20,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(29,20479,20,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(26,20499,324,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(27,20499,33,1,'cats/effect/IO.flatMap')
f(28,20499,33,1,'cats/effect/IO$FlatMap$.apply')
f(29,20499,33,2,'cats.effect.IO$FlatMap')
f(27,20532,36,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(28,20532,36,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(29,20532,36,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(30,20532,36,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(27,20568,255,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(28,20568,47,1,'cats/effect/IO.flatMap')
f(29,20568,47,1,'cats/effect/IO$FlatMap$.apply')
f(30,20568,47,2,'cats.effect.IO$FlatMap')
f(28,20615,36,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(29,20615,36,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(30,20615,36,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(31,20615,36,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(28,20651,172,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(29,20651,40,1,'cats/effect/IO.flatMap')
f(30,20651,40,1,'cats/effect/IO$FlatMap$.apply')
f(31,20651,40,2,'cats.effect.IO$FlatMap')
f(29,20691,22,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(30,20691,22,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(31,20691,22,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(32,20691,22,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(29,20713,110,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(30,20713,61,1,'cats/effect/IO.flatMap')
f(31,20713,61,1,'cats/effect/IO$FlatMap$.apply')
f(32,20713,61,2,'cats.effect.IO$FlatMap')
f(30,20774,32,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(31,20774,32,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(32,20774,32,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(33,20774,32,2,'kyo.bench.BroadFlatMapBench$$Lambda$41+0x0000000800cbec80')
f(30,20806,17,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(31,20806,17,1,'cats/effect/IO$.pure')
f(32,20806,17,1,'cats/effect/IO$Pure$.apply')
f(33,20806,17,2,'cats.effect.IO$Pure')
f(1,20823,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,20823,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,20823,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,20823,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,20823,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,20823,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,20823,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,20823,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,20823,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,20823,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,20823,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,20823,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,20823,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,20823,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,20823,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,20823,1,2,'java.lang.Object[]')
f(7,20824,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,20824,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,20824,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,20827,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,20827,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,20827,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,20827,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,20827,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,20827,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,20832,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,20832,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,20832,3,1,'java/lang/ClassLoader.loadClass')
f(10,20832,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,20832,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,20832,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,20832,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,20832,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,20832,1,1,'java/security/CodeSource.<init>')
f(16,20832,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,20832,1,1,'java/lang/StringBuilder.append')
f(18,20832,1,1,'java/lang/AbstractStringBuilder.append')
f(19,20832,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,20832,1,1,'java/util/Arrays.copyOf')
f(21,20832,1,2,'byte[]')
f(15,20833,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,20833,1,1,'java/util/Arrays.copyOf')
f(17,20833,1,5,'byte[]')
f(14,20834,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,20834,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,20834,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,20834,1,1,'java/net/URL.<init>')
f(18,20834,1,1,'java/net/URL.<init>')
f(19,20834,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,20834,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,20834,1,1,'java/lang/StringBuilder.toString')
f(22,20834,1,1,'java/lang/StringLatin1.newString')
f(23,20834,1,2,'java.lang.String')
f(9,20835,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,20835,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,20835,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,20835,11,1,'java/io/ObjectStreamClass.lookup')
f(13,20835,11,1,'java/io/ObjectStreamClass.<init>')
f(14,20835,11,1,'java/security/AccessController.doPrivileged')
f(15,20835,11,1,'java/security/AccessController.executePrivileged')
f(16,20835,11,1,'java/io/ObjectStreamClass$2.run')
f(17,20835,11,1,'java/io/ObjectStreamClass$2.run')
f(18,20835,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,20835,2,1,'java/lang/Class.getDeclaredMethod')
f(20,20835,1,1,'java/lang/Class.methodToString')
f(21,20835,1,1,'java/lang/StringBuilder.append')
f(22,20835,1,1,'java/lang/AbstractStringBuilder.append')
f(23,20835,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,20835,1,1,'java/util/Arrays.copyOf')
f(25,20835,1,2,'byte[]')
f(20,20836,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,20836,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,20836,1,1,'java/lang/Exception.<init>')
f(23,20836,1,1,'java/lang/Throwable.<init>')
f(24,20836,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,20836,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,20836,1,2,'short[]')
f(18,20837,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,20837,3,1,'java/lang/Class.getDeclaredMethod')
f(20,20837,2,1,'java/lang/Class.methodToString')
f(21,20837,1,1,'java/lang/StringBuilder.append')
f(22,20837,1,1,'java/lang/AbstractStringBuilder.append')
f(23,20837,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,20837,1,1,'java/util/Arrays.copyOf')
f(25,20837,1,2,'byte[]')
f(21,20838,1,1,'java/lang/StringBuilder.toString')
f(22,20838,1,1,'java/lang/StringLatin1.newString')
f(23,20838,1,1,'java/util/Arrays.copyOfRange')
f(24,20838,1,2,'byte[]')
f(20,20839,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,20839,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,20839,1,1,'java/lang/Exception.<init>')
f(23,20839,1,1,'java/lang/Throwable.<init>')
f(24,20839,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,20839,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,20839,1,5,'long[]')
f(18,20840,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,20840,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,20840,1,1,'java/lang/Class.getDeclaredField')
f(21,20840,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,20840,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,20840,1,1,'java/lang/Exception.<init>')
f(24,20840,1,1,'java/lang/Throwable.<init>')
f(25,20840,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,20840,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,20840,1,2,'long[]')
f(18,20841,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,20841,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,20841,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,20841,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,20841,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,20841,1,1,'java/security/AccessController.doPrivileged')
f(24,20841,1,1,'java/security/AccessController.executePrivileged')
f(25,20841,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,20841,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,20841,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,20841,1,1,'java/security/AccessController.doPrivileged')
f(29,20841,1,1,'java/security/AccessController.executePrivileged')
f(30,20841,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,20841,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,20841,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,20841,1,1,'java/lang/ClassLoader.<init>')
f(34,20841,1,1,'java/lang/ClassLoader.<init>')
f(35,20841,1,1,'java/lang/ClassLoader.nameAndId')
f(36,20841,1,1,'java/lang/StringBuilder.<init>')
f(37,20841,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,20841,1,2,'byte[]')
f(23,20842,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,20842,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,20842,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,20842,1,2,'byte[]')
f(23,20843,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,20843,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,20843,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,20843,1,2,'byte[]')
f(23,20844,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,20844,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,20844,1,1,'java/lang/String.replace')
f(26,20844,1,1,'java/lang/StringLatin1.replace')
f(27,20844,1,2,'java.lang.String')
f(23,20845,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,20845,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,421,3,'all')
f(1,0,1,3,'[unknown_Java]')
f(2,0,1,1,'cats/effect/IOFiber.next$2')
f(1,1,367,1,'cats/effect/unsafe/WorkerThread.run')
f(2,2,340,1,'cats/effect/IOFiber.run',2,0,0)
f(3,2,247,1,'cats/effect/IOFiber.autoCedeR')
f(4,2,247,1,'cats/effect/IOFiber.runLoop')
f(5,29,12,2,'cats/effect/ArrayStack.push',12,0,0)
f(6,34,7,2,'cats/effect/ArrayStack.checkAndGrow',7,0,0)
f(5,41,6,2,'cats/effect/ByteStack$.push',6,0,0)
f(6,46,1,2,'cats/effect/ByteStack$.growIfNeeded',1,0,0)
f(5,47,5,2,'cats/effect/IO$FlatMap.f',5,0,0)
f(5,52,13,2,'cats/effect/IO$FlatMap.ioe',13,0,0)
f(5,65,8,2,'cats/effect/IO$Pure.value',8,0,0)
f(5,73,56,1,'cats/effect/IOFiber.next$2')
f(6,75,54,2,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply',54,0,0)
f(7,91,38,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',38,0,0)
f(8,91,38,2,'kyo/bench/BroadFlatMapBench.catsFib$1',38,0,0)
f(9,94,16,2,'kyo/bench/BroadFlatMapBench.catsFib$1',16,0,0)
f(10,95,15,2,'scala/math/BigInt$.apply',15,0,0)
f(11,106,4,2,'scala/math/BigInt$.getCached',4,0,0)
f(9,110,19,2,'scala/math/BigInt$.apply',19,0,0)
f(10,113,16,2,'scala/math/BigInt$.getCached',16,0,0)
f(11,127,2,2,'scala/math/BigInt.<init>',2,0,0)
f(5,129,1,1,'cats/effect/IOFiber.rescheduleFiber')
f(6,129,1,1,'cats/effect/unsafe/WorkStealingThreadPool.reschedule')
f(5,130,5,2,'cats/effect/IOFiber.shouldFinalize',5,0,0)
f(5,135,114,1,'cats/effect/IOFiber.succeeded')
f(6,149,9,2,'cats/effect/ByteStack$.pop',9,0,0)
f(7,152,6,2,'cats/effect/ByteStack$.peek',6,0,0)
f(6,158,23,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,158,23,1,'cats/effect/IOFiber.done')
f(8,158,23,1,'cats/effect/CallbackStack.apply')
f(9,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(10,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(11,158,23,1,'cats/effect/IO$$Lambda$90.0x0000000800d58dc0.applyVoid')
f(12,158,23,1,'cats/effect/IO.$anonfun$6')
f(13,158,23,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,158,23,1,'cats/effect/kernel/Outcome.fold$')
f(15,158,23,1,'cats/effect/kernel/Outcome.fold')
f(16,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(17,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(18,158,23,1,'cats/effect/IO$$Lambda$97.0x0000000800d5e6c8.applyVoid')
f(19,158,23,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(21,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(22,158,23,1,'cats/effect/IO$$Lambda$89.0x0000000800d58000.applyVoid')
f(23,158,23,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(25,158,23,1,'scala/runtime/function/JProcedure1.apply')
f(26,158,23,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d55760.applyVoid')
f(27,158,23,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,158,23,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,158,1,2,'java/util/concurrent/locks/ReentrantLock.lock',1,0,0)
f(29,159,22,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,159,22,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,159,22,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,159,22,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,159,22,1,'jdk/internal/misc/Unsafe.unpark')
f(34,159,1,4,'SafeThreadsListPtr::release_stable_list()')
f(34,160,1,3,'Unsafe_Unpark')
f(35,160,1,3,'pthread_mutex_lock')
f(34,161,20,3,'pthread_cond_signal')
f(35,161,20,5,'entry_SYSCALL_64_after_hwframe')
f(36,161,20,5,'do_syscall_64')
f(37,161,20,5,'__x64_sys_futex')
f(38,161,20,5,'do_futex')
f(39,161,20,5,'futex_wake')
f(40,162,1,5,'wake_q_add_safe')
f(40,163,18,5,'wake_up_q')
f(41,163,18,5,'_raw_spin_unlock_irqrestore')
f(6,181,27,2,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply',13,0,0)
f(7,181,27,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',13,0,0)
f(8,181,27,2,'kyo/bench/BroadFlatMapBench.catsFib$1',13,0,0)
f(9,184,13,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,184,13,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,184,1,2,'cats/effect/IO.flatMap',1,0,0)
f(12,184,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(11,185,8,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,185,8,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,185,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(14,185,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(15,185,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(13,186,7,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,186,1,2,'cats/effect/IO$.pure',1,0,0)
f(15,186,1,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(14,187,1,2,'cats/effect/IO.flatMap',1,0,0)
f(15,187,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(14,188,5,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,188,2,2,'cats/effect/IO.flatMap',2,0,0)
f(16,188,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(15,190,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,190,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,190,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,190,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,190,2,2,'scala/math/BigInt$.apply',2,0,0)
f(20,190,2,2,'scala/math/BigInt$.getCached',2,0,0)
f(15,192,1,2,'scala/math/BigInt$.apply',1,0,0)
f(16,192,1,2,'scala/math/BigInt$.getCached',1,0,0)
f(11,193,4,2,'scala/math/BigInt$.apply',4,0,0)
f(12,193,4,2,'scala/math/BigInt$.getCached',4,0,0)
f(9,197,11,2,'scala/math/BigInt$.apply',10,0,0)
f(10,198,10,2,'scala/math/BigInt$.getCached',9,0,0)
f(11,201,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(12,201,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(13,201,1,4,'MemAllocator::allocate() const')
f(14,201,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(15,201,1,4,'ThreadLocalAllocBuffer::retire_before_allocation()')
f(16,201,1,4,'ThreadLocalAllocBuffer::insert_filler()')
f(11,202,6,2,'scala/math/BigInt.<init>',6,0,0)
f(12,202,6,2,'scala/math/ScalaNumber.<init>',6,0,0)
f(13,207,1,2,'java/lang/Number.<init>',1,0,0)
f(6,208,41,2,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5b2b0.apply',41,0,0)
f(7,208,41,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1',41,0,0)
f(8,225,2,2,'cats/effect/IO$.pure',2,0,0)
f(9,225,2,2,'cats/effect/IO$Pure$.apply',2,0,0)
f(8,227,22,2,'scala/math/BigInt.$plus',22,0,0)
f(9,231,11,2,'scala/math/BigInt$.apply',11,0,0)
f(10,241,1,2,'scala/math/BigInt$.getCached',1,0,0)
f(11,241,1,2,'scala/math/BigInt.<init>',1,0,0)
f(12,241,1,2,'scala/math/ScalaNumber.<init>',1,0,0)
f(13,241,1,2,'java/lang/Number.<init>',1,0,0)
f(9,242,7,2,'scala/math/BigInt.longEncoding',7,0,0)
f(3,249,93,1,'cats/effect/IOFiber.execR',2,0,0)
f(4,251,91,1,'cats/effect/IOFiber.runLoop')
f(5,269,6,2,'cats/effect/ArrayStack.push',6,0,0)
f(5,275,3,2,'cats/effect/ByteStack$.push',3,0,0)
f(5,278,8,2,'cats/effect/IO$FlatMap.ioe',8,0,0)
f(5,286,4,2,'cats/effect/IO$Pure.value',4,0,0)
f(5,290,14,1,'cats/effect/IOFiber.next$2')
f(6,290,14,2,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply',14,0,0)
f(7,292,12,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',12,0,0)
f(8,292,12,2,'kyo/bench/BroadFlatMapBench.catsFib$1',12,0,0)
f(9,294,3,2,'kyo/bench/BroadFlatMapBench.catsFib$1',3,0,0)
f(10,294,3,2,'scala/math/BigInt$.apply',3,0,0)
f(9,297,7,2,'scala/math/BigInt$.apply',7,0,0)
f(10,298,6,2,'scala/math/BigInt$.getCached',6,0,0)
f(11,302,2,2,'scala/math/BigInt.<init>',2,0,0)
f(5,304,1,1,'cats/effect/IOFiber.rescheduleFiber')
f(6,304,1,1,'cats/effect/unsafe/WorkStealingThreadPool.reschedule')
f(5,305,1,2,'cats/effect/IOFiber.shouldFinalize',1,0,0)
f(5,306,36,1,'cats/effect/IOFiber.succeeded')
f(6,311,8,2,'cats/effect/ByteStack$.pop',8,0,0)
f(7,316,3,2,'cats/effect/ByteStack$.peek',3,0,0)
f(6,319,11,1,'kyo/bench/BroadFlatMapBench$$Lambda$41.0x0000000800cbec80.apply',3,0,0)
f(7,319,11,1,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1',3,0,0)
f(8,319,11,1,'kyo/bench/BroadFlatMapBench.catsFib$1',3,0,0)
f(9,319,8,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(10,319,8,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(11,319,1,2,'cats/effect/IO.flatMap',1,0,0)
f(12,319,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(11,320,5,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(12,320,1,2,'cats/effect/IO.flatMap',1,0,0)
f(13,320,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(12,321,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(13,321,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(14,321,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(12,322,3,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(13,322,1,2,'cats/effect/IO.flatMap',1,0,0)
f(14,322,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(13,323,2,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(14,323,1,2,'cats/effect/IO.flatMap',1,0,0)
f(15,323,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(14,324,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(15,324,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(16,324,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,324,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,324,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(19,324,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(20,324,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(11,325,2,2,'scala/math/BigInt$.apply',2,0,0)
f(12,325,2,2,'scala/math/BigInt$.getCached',2,0,0)
f(9,327,3,2,'scala/math/BigInt$.apply',3,0,0)
f(10,327,3,2,'scala/math/BigInt$.getCached',3,0,0)
f(11,328,2,2,'scala/math/BigInt.<init>',2,0,0)
f(12,328,2,2,'scala/math/ScalaNumber.<init>',2,0,0)
f(13,329,1,2,'java/lang/Number.<init>',1,0,0)
f(6,330,12,2,'kyo/bench/BroadFlatMapBench$$Lambda$94.0x0000000800d5b2b0.apply',11,0,0)
f(7,331,11,2,'kyo/bench/BroadFlatMapBench.catsFib$1$$anonfun$1$$anonfun$1',10,0,0)
f(8,333,2,2,'cats/effect/IO$.pure',2,0,0)
f(9,333,2,2,'cats/effect/IO$Pure$.apply',2,0,0)
f(10,334,1,2,'cats/effect/IO$Pure.<init>',1,0,0)
f(8,335,7,2,'scala/math/BigInt.$plus',6,0,0)
f(9,337,5,2,'scala/math/BigInt$.apply',4,0,0)
f(10,340,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(11,340,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(12,340,1,4,'MemAllocator::Allocation::notify_allocation_jfr_sampler()')
f(10,341,1,2,'scala/math/BigInt$.getCached',1,0,0)
f(11,341,1,2,'scala/math/BigInt.<init>',1,0,0)
f(12,341,1,2,'scala/math/ScalaNumber.<init>',1,0,0)
f(13,341,1,2,'java/lang/Number.<init>',1,0,0)
f(2,342,2,2,'cats/effect/unsafe/ScalQueue.poll',2,0,0)
f(3,343,1,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',1,0,0)
f(2,344,24,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,344,24,1,'java/util/concurrent/locks/LockSupport.park')
f(4,344,24,1,'jdk/internal/misc/Unsafe.park')
f(5,344,1,4,'AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<548964ul, G1BarrierSet>, (AccessInternal::BarrierType)2, 548964ul>::oop_access_barrier(void*)')
f(5,345,2,3,'Unsafe_Park')
f(6,345,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,345,1,5,'entry_SYSCALL_64_after_hwframe')
f(8,345,1,5,'do_syscall_64')
f(9,345,1,5,'syscall_enter_from_user_mode')
f(6,346,1,3,'pthread_mutex_trylock')
f(5,347,21,3,'[unknown]')
f(6,347,21,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,349,19,5,'entry_SYSCALL_64_after_hwframe')
f(8,349,19,5,'do_syscall_64')
f(9,349,18,5,'__x64_sys_futex')
f(10,349,18,5,'do_futex')
f(11,349,18,5,'futex_wait')
f(12,351,15,5,'futex_wait_queue_me')
f(13,351,15,5,'schedule')
f(14,351,15,5,'__schedule')
f(15,351,15,5,'finish_task_switch.isra.0')
f(12,366,1,5,'futex_wait_setup')
f(9,367,1,5,'syscall_exit_to_user_mode')
f(10,367,1,5,'exit_to_user_mode_prepare')
f(11,367,1,5,'exit_to_user_mode_loop')
f(12,367,1,5,'__rseq_handle_notify_resume')
f(13,367,1,5,'rseq_ip_fixup')
f(14,367,1,5,'__get_user_8')
f(1,368,53,1,'java/lang/Thread.run')
f(2,368,53,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,368,53,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,368,53,1,'java/util/concurrent/FutureTask.run')
f(5,368,53,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,368,53,1,'java/util/concurrent/FutureTask.run')
f(7,368,53,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,368,53,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,368,53,1,'java/lang/reflect/Method.invoke')
f(10,368,53,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,368,53,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,368,53,1,'kyo/bench/jmh_generated/BroadFlatMapBench_syncCats_jmhTest.syncCats_Throughput')
f(13,368,53,1,'kyo/bench/jmh_generated/BroadFlatMapBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,368,53,1,'kyo/bench/Bench.syncCats')
f(15,368,52,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,368,52,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,368,38,1,'cats/effect/IO.unsafeRunAsync')
f(18,368,38,1,'cats/effect/IO.unsafeRunFiber')
f(19,368,38,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,368,38,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,368,38,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,368,38,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,368,38,1,'jdk/internal/misc/Unsafe.unpark')
f(24,368,38,3,'pthread_cond_signal')
f(25,368,38,5,'entry_SYSCALL_64_after_hwframe')
f(26,368,38,5,'do_syscall_64')
f(27,369,35,5,'__x64_sys_futex')
f(28,369,35,5,'do_futex')
f(29,369,35,5,'futex_wake')
f(30,370,1,5,'mark_wake_futex')
f(30,371,33,5,'wake_up_q')
f(31,371,33,5,'_raw_spin_unlock_irqrestore')
f(27,404,2,5,'syscall_enter_from_user_mode')
f(17,406,14,1,'scala/concurrent/package$.blocking')
f(18,406,14,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,406,14,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5abc8.apply')
f(20,406,14,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,406,14,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,406,14,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,406,14,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,406,14,1,'jdk/internal/misc/Unsafe.park')
f(25,406,2,3,'Unsafe_Park')
f(26,406,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,406,1,5,'entry_SYSCALL_64_after_hwframe')
f(28,406,1,5,'__x64_sys_futex')
f(26,407,1,3,'clock_gettime')
f(27,407,1,3,'[vdso]')
f(25,408,12,3,'[unknown]')
f(26,408,11,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,408,11,5,'entry_SYSCALL_64_after_hwframe')
f(28,408,11,5,'do_syscall_64')
f(29,408,11,5,'__x64_sys_futex')
f(30,408,10,5,'do_futex')
f(31,408,10,5,'futex_wait')
f(32,408,9,5,'futex_wait_queue_me')
f(33,408,9,5,'schedule')
f(34,408,9,5,'__schedule')
f(35,408,9,5,'finish_task_switch.isra.0')
f(32,417,1,5,'hrtimer_active')
f(30,418,1,5,'get_timespec64')
f(31,418,1,5,'copy_user_enhanced_fast_string')
f(26,419,1,3,'pthread_cond_timedwait')
f(15,420,1,1,'kyo/bench/BroadFlatMapBench.catsBench')
f(16,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(17,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(18,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(19,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(20,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(21,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(22,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(23,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(24,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
f(25,420,1,1,'kyo/bench/BroadFlatMapBench.catsFib$1')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,32458,3,'all')
f(1,0,31122,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,31122,1,'cats/effect/IOFiber.run')
f(3,0,2,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,0,2,1,'cats/effect/IOFiber.succeeded')
f(5,0,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,0,2,1,'cats/effect/IO$.pure')
f(7,0,2,1,'cats/effect/IO$Pure$.apply')
f(8,0,2,2,'cats.effect.IO$Pure')
f(3,2,10,1,'cats/effect/IOFiber.cedeR')
f(4,2,9,1,'cats/effect/IOFiber.runLoop')
f(5,2,3,1,'cats/effect/IODeferred$$anon$1$$Lambda$102.0x0000000800d60920.apply')
f(6,2,3,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1')
f(7,2,2,1,'cats/effect/IO$$anon$2.uncancelable')
f(8,2,2,1,'cats/effect/IO$$anon$2.uncancelable')
f(9,2,2,1,'cats/effect/IO$.uncancelable')
f(10,2,2,1,'cats/effect/IO$Uncancelable$.apply')
f(11,2,2,2,'cats.effect.IO$Uncancelable')
f(7,4,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,4,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d64000.newInvokeSpecial')
f(9,4,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,4,1,2,'cats.effect.IODeferred$$anon$1$$Lambda$103+0x0000000800d615f0')
f(5,5,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$103.0x0000000800d615f0.apply')
f(6,5,1,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1$$anonfun$1')
f(7,5,1,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,5,1,1,'cats/effect/IO$$anon$2.flatten')
f(9,5,1,1,'cats/FlatMap.flatten$')
f(10,5,1,1,'cats/FlatMap.flatten')
f(11,5,1,1,'cats/effect/IO$$anon$2.flatMap')
f(12,5,1,1,'cats/effect/IO$$anon$2.flatMap')
f(13,5,1,1,'cats/effect/IO.flatMap')
f(14,5,1,1,'cats/effect/IO$FlatMap$.apply')
f(15,5,1,2,'cats.effect.IO$FlatMap')
f(5,6,3,1,'cats/effect/IODeferred$$anon$1.apply')
f(6,6,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,6,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,6,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,6,3,2,'cats.effect.IODeferred$$anon$1$$Lambda$102+0x0000000800d60920')
f(5,9,1,1,'cats/effect/IOFiber.<init>')
f(6,9,1,1,'cats/effect/ArrayStack$.apply')
f(7,9,1,2,'cats.effect.ArrayStack')
f(5,10,1,1,'kyo/bench/ChainedForkBench$$Lambda$96.0x0000000800d5e220.apply')
f(6,10,1,1,'kyo/bench/ChainedForkBench.catsBench$$anonfun$1')
f(7,10,1,1,'kyo/bench/ChainedForkBench.iterate$1')
f(8,10,1,1,'cats/effect/IO.flatMap')
f(9,10,1,1,'cats/effect/IO$FlatMap$.apply')
f(10,10,1,2,'cats.effect.IO$FlatMap')
f(4,11,1,1,'cats/effect/IOFiber.succeeded')
f(5,11,1,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8d588.apply')
f(6,11,1,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,11,1,1,'kyo/bench/ChainedForkBench.catsBench')
f(8,11,1,1,'cats/effect/IO$.deferred')
f(9,11,1,1,'cats/effect/IO$.apply')
f(10,11,1,1,'cats/effect/IO$.delay')
f(11,11,1,1,'cats/effect/IO$Delay$.apply')
f(12,11,1,2,'cats.effect.IO$Delay')
f(3,12,31110,1,'cats/effect/IOFiber.execR')
f(4,12,8966,1,'cats/effect/ArrayStack.init')
f(5,12,8966,2,'java.lang.Object[]')
f(4,8978,2062,1,'cats/effect/ByteStack$.create')
f(5,8978,2062,2,'int[]')
f(4,11040,20082,1,'cats/effect/IOFiber.runLoop')
f(5,11040,4107,2,'cats.effect.IOFiber')
f(5,15147,9401,1,'cats/effect/IOFiber.<init>')
f(6,15147,2679,1,'cats/effect/ArrayStack$.apply')
f(7,15147,2679,2,'cats.effect.ArrayStack')
f(6,17826,1567,1,'cats/effect/CallbackStack$.apply')
f(7,17826,1567,2,'cats.effect.CallbackStack')
f(6,19393,1955,1,'cats/effect/IO$.async')
f(7,19393,740,2,'cats.effect.IO$$anon$3')
f(7,20133,1215,1,'cats/effect/IO$IOCont$.apply')
f(8,20133,1215,2,'cats.effect.IO$IOCont')
f(6,21348,1825,1,'cats/effect/IO$.uncancelable')
f(7,21348,1825,1,'cats/effect/IO$Uncancelable$.apply')
f(8,21348,1825,2,'cats.effect.IO$Uncancelable')
f(6,23173,1375,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,23173,1375,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,23173,1375,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,23173,773,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d59bf8')
f(9,23946,602,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5a1e8')
f(5,24548,3593,1,'cats/effect/IOFiber.next$2')
f(6,24548,3593,1,'kyo/bench/ChainedForkBench$$Lambda$97.0x0000000800d5ea60.apply')
f(7,24548,3593,1,'kyo/bench/ChainedForkBench.iterate$1$$anonfun$1')
f(8,24548,873,1,'cats/effect/IO.start')
f(9,24548,873,1,'cats/effect/IO$Start$.apply')
f(10,24548,873,2,'cats.effect.IO$Start')
f(8,25421,2720,1,'kyo/bench/ChainedForkBench.iterate$1')
f(9,25421,1364,1,'cats/effect/IO.flatMap')
f(10,25421,1364,1,'cats/effect/IO$FlatMap$.apply')
f(11,25421,1364,2,'cats.effect.IO$FlatMap')
f(9,26785,1356,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,26785,1356,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5cc00.newInvokeSpecial')
f(11,26785,1356,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,26785,1356,2,'kyo.bench.ChainedForkBench$$Lambda$97+0x0000000800d5ea60')
f(5,28141,2981,1,'cats/effect/IOFiber.succeeded')
f(6,28141,2981,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,28141,1501,1,'cats/effect/IO$.pure')
f(8,28141,1501,1,'cats/effect/IO$Pure$.apply')
f(9,28141,1501,2,'cats.effect.IO$Pure')
f(7,29642,767,1,'cats/effect/IOFiber.done')
f(8,29642,767,1,'cats/effect/IO$.pure')
f(9,29642,767,1,'cats/effect/IO$Pure$.apply')
f(10,29642,767,2,'cats.effect.IO$Pure')
f(7,30409,713,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,30409,713,2,'cats.effect.kernel.Outcome$Succeeded')
f(1,31122,1,2,'java.lang.String')
f(1,31123,1312,1,'java/lang/Thread.run')
f(2,31123,1312,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,31123,1312,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,31123,1312,1,'java/util/concurrent/FutureTask.run')
f(5,31123,1312,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,31123,1312,1,'java/util/concurrent/FutureTask.run')
f(7,31123,1312,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,31123,1312,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,31123,1312,1,'java/lang/reflect/Method.invoke')
f(10,31123,1312,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,31123,1312,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,31123,1312,1,'kyo/bench/jmh_generated/ChainedForkBench_forkCats_jmhTest.forkCats_Throughput')
f(13,31123,1311,1,'kyo/bench/jmh_generated/ChainedForkBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,31123,1311,1,'kyo/bench/Bench.forkCats')
f(15,31123,40,1,'cats/effect/IO.flatMap')
f(16,31123,40,1,'cats/effect/IO$FlatMap$.apply')
f(17,31123,40,2,'cats.effect.IO$FlatMap')
f(15,31163,1189,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,31163,1128,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,31163,684,1,'cats/effect/IO.unsafeRunAsync')
f(18,31163,570,1,'cats/effect/IO.unsafeRunFiber')
f(19,31163,96,2,'cats.effect.IOFiber')
f(19,31259,13,5,'cats.effect.IOFiber')
f(19,31272,333,1,'cats/effect/IOFiber.<init>')
f(20,31272,121,1,'cats/effect/ArrayStack$.apply')
f(21,31272,121,2,'cats.effect.ArrayStack')
f(20,31393,5,1,'cats/effect/CallbackStack$.apply')
f(21,31393,5,2,'cats.effect.CallbackStack')
f(20,31398,109,1,'cats/effect/IO$.async')
f(21,31398,57,2,'cats.effect.IO$$anon$3')
f(21,31455,52,1,'cats/effect/IO$IOCont$.apply')
f(22,31455,52,2,'cats.effect.IO$IOCont')
f(20,31507,95,1,'cats/effect/IO$.uncancelable')
f(21,31507,95,1,'cats/effect/IO$Uncancelable$.apply')
f(22,31507,95,2,'cats.effect.IO$Uncancelable')
f(20,31602,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,31602,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,31602,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,31602,3,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d59bf8')
f(19,31605,65,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,31605,65,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,31605,65,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,31605,65,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,31605,65,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,31670,63,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,31670,63,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial')
f(21,31670,63,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,31670,63,2,'cats.effect.IO$$Lambda$90+0x0000000800d58dc0')
f(18,31733,114,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,31733,114,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,31733,114,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,31733,2,2,'cats.effect.IO$$Lambda$87+0x0000000800d55b68')
f(21,31735,50,2,'cats.effect.IO$$Lambda$88+0x0000000800d54800')
f(21,31785,62,2,'cats.effect.IO$$Lambda$89+0x0000000800d58000')
f(17,31847,57,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,31904,70,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,31904,70,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,31904,70,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,31904,70,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d55760')
f(17,31974,243,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,31974,243,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,31974,67,2,'java.lang.Object[]')
f(19,32041,74,2,'java.util.concurrent.locks.ReentrantLock')
f(19,32115,46,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,32115,46,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,32161,56,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,32161,56,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,32161,56,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,32217,17,1,'scala/concurrent/package$.blocking')
f(18,32217,17,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,32217,17,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5abc8.apply')
f(20,32217,17,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,32217,17,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,32217,17,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,32217,17,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,32234,57,1,'scala/util/Either.fold')
f(18,32234,57,1,'cats/effect/IOPlatform$$Lambda$113.0x0000000800d7f170.apply')
f(19,32234,57,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,32234,57,1,'scala/Some$.apply')
f(21,32234,57,2,'scala.Some')
f(16,32291,61,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,32291,61,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,32291,61,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,32291,61,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,32291,61,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,32291,61,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,32291,61,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,32291,61,2,'scala.concurrent.duration.FiniteDuration')
f(15,32352,82,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,32352,82,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,32352,82,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,32352,82,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8d588')
f(13,32434,1,1,'org/openjdk/jmh/results/ThroughputResult.<init>')
f(14,32434,1,2,'java.lang.StringBuilder')
f(1,32435,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,32435,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,32435,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,32435,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,32435,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,32435,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,32435,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,32435,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,32435,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,32435,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,32435,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,32435,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,32435,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,32435,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,32435,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,32435,1,2,'java.lang.Object[]')
f(7,32436,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,32436,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,32436,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,32439,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,32439,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,32439,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,32439,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,32439,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,32439,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,32444,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,32444,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,32444,3,1,'java/lang/ClassLoader.loadClass')
f(10,32444,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,32444,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,32444,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,32444,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,32444,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,32444,1,1,'java/security/CodeSource.<init>')
f(16,32444,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,32444,1,1,'java/lang/StringBuilder.append')
f(18,32444,1,1,'java/lang/AbstractStringBuilder.append')
f(19,32444,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,32444,1,1,'java/util/Arrays.copyOf')
f(21,32444,1,2,'byte[]')
f(15,32445,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,32445,1,1,'java/util/Arrays.copyOf')
f(17,32445,1,5,'byte[]')
f(14,32446,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,32446,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,32446,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,32446,1,1,'java/net/URL.<init>')
f(18,32446,1,1,'java/net/URL.<init>')
f(19,32446,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,32446,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,32446,1,1,'java/lang/StringBuilder.toString')
f(22,32446,1,1,'java/lang/StringLatin1.newString')
f(23,32446,1,2,'java.lang.String')
f(9,32447,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,32447,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,32447,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,32447,11,1,'java/io/ObjectStreamClass.lookup')
f(13,32447,11,1,'java/io/ObjectStreamClass.<init>')
f(14,32447,11,1,'java/security/AccessController.doPrivileged')
f(15,32447,11,1,'java/security/AccessController.executePrivileged')
f(16,32447,11,1,'java/io/ObjectStreamClass$2.run')
f(17,32447,11,1,'java/io/ObjectStreamClass$2.run')
f(18,32447,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,32447,2,1,'java/lang/Class.getDeclaredMethod')
f(20,32447,1,1,'java/lang/Class.methodToString')
f(21,32447,1,1,'java/lang/StringBuilder.append')
f(22,32447,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32447,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32447,1,1,'java/util/Arrays.copyOf')
f(25,32447,1,2,'byte[]')
f(20,32448,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32448,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32448,1,1,'java/lang/Exception.<init>')
f(23,32448,1,1,'java/lang/Throwable.<init>')
f(24,32448,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32448,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32448,1,2,'short[]')
f(18,32449,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,32449,3,1,'java/lang/Class.getDeclaredMethod')
f(20,32449,2,1,'java/lang/Class.methodToString')
f(21,32449,1,1,'java/lang/StringBuilder.append')
f(22,32449,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32449,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32449,1,1,'java/util/Arrays.copyOf')
f(25,32449,1,2,'byte[]')
f(21,32450,1,1,'java/lang/StringBuilder.toString')
f(22,32450,1,1,'java/lang/StringLatin1.newString')
f(23,32450,1,1,'java/util/Arrays.copyOfRange')
f(24,32450,1,2,'byte[]')
f(20,32451,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32451,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32451,1,1,'java/lang/Exception.<init>')
f(23,32451,1,1,'java/lang/Throwable.<init>')
f(24,32451,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32451,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32451,1,5,'long[]')
f(18,32452,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,32452,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,32452,1,1,'java/lang/Class.getDeclaredField')
f(21,32452,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,32452,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,32452,1,1,'java/lang/Exception.<init>')
f(24,32452,1,1,'java/lang/Throwable.<init>')
f(25,32452,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32452,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,32452,1,2,'long[]')
f(18,32453,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,32453,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,32453,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,32453,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,32453,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,32453,1,1,'java/security/AccessController.doPrivileged')
f(24,32453,1,1,'java/security/AccessController.executePrivileged')
f(25,32453,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,32453,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,32453,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,32453,1,1,'java/security/AccessController.doPrivileged')
f(29,32453,1,1,'java/security/AccessController.executePrivileged')
f(30,32453,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,32453,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,32453,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,32453,1,1,'java/lang/ClassLoader.<init>')
f(34,32453,1,1,'java/lang/ClassLoader.<init>')
f(35,32453,1,1,'java/lang/ClassLoader.nameAndId')
f(36,32453,1,1,'java/lang/StringBuilder.<init>')
f(37,32453,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,32453,1,2,'byte[]')
f(23,32454,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,32454,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32454,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32454,1,2,'byte[]')
f(23,32455,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,32455,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32455,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32455,1,2,'byte[]')
f(23,32456,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,32456,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,32456,1,1,'java/lang/String.replace')
f(26,32456,1,1,'java/lang/StringLatin1.replace')
f(27,32456,1,2,'java.lang.String')
f(23,32457,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,32457,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 544px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(34);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,690,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1CollectedHeap::pre_evacuate_collection_set(G1EvacuationInfo&, G1ParScanThreadStateSet*)')
f(12,0,1,4,'WorkGang::run_task(AbstractGangTask*, unsigned int, bool)')
f(13,0,1,3,'sem_post')
f(14,0,1,5,'entry_SYSCALL_64_after_hwframe')
f(15,0,1,5,'do_syscall_64')
f(16,0,1,5,'__x64_sys_futex')
f(17,0,1,5,'do_futex')
f(18,0,1,5,'futex_wake')
f(19,0,1,5,'wake_up_q')
f(20,0,1,5,'_raw_spin_unlock_irqrestore')
f(1,1,4,3,'[unknown_Java]')
f(2,1,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(2,3,1,6,'cats/effect/IO$Start.tag',0,1,0)
f(2,4,1,1,'cats/effect/IOFiber.<init>')
f(1,5,682,1,'cats/effect/unsafe/WorkerThread.run')
f(2,14,424,1,'cats/effect/IOFiber.run',38,0,0)
f(3,16,2,2,'cats/effect/IOFiber.asyncContinueSuccessfulR',2,0,0)
f(4,16,2,2,'cats/effect/ArrayStack.pop',2,0,0)
f(3,18,14,2,'cats/effect/IOFiber.cedeR',8,0,0)
f(4,27,4,1,'cats/effect/IOFiber.runLoop')
f(5,27,4,1,'cats/effect/IOFiber.scheduleFiber')
f(6,27,4,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(7,27,4,1,'cats/effect/unsafe/WorkerThread.schedule')
f(8,27,4,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(9,27,4,1,'java/util/concurrent/locks/LockSupport.unpark')
f(10,27,4,1,'jdk/internal/misc/Unsafe.unpark')
f(11,27,4,3,'pthread_cond_signal')
f(12,27,4,5,'entry_SYSCALL_64_after_hwframe')
f(13,27,4,5,'do_syscall_64')
f(14,27,4,5,'__x64_sys_futex')
f(15,27,4,5,'do_futex')
f(16,27,4,5,'futex_wake')
f(17,27,4,5,'wake_up_q')
f(18,27,4,5,'_raw_spin_unlock_irqrestore')
f(4,31,1,2,'cats/effect/unsafe/IORuntime.cancelationCheckThreshold',1,0,0)
f(3,32,406,1,'cats/effect/IOFiber.execR',26,0,0)
f(4,56,5,2,'cats/effect/ArrayStack.init',2,0,0)
f(4,61,11,2,'cats/effect/ByteStack$.push',6,0,0)
f(5,71,1,4,'OptoRuntime::new_array_C(Klass*, int, JavaThread*)')
f(6,71,1,4,'InstanceKlass::allocate_objArray(int, int, JavaThread*)')
f(7,71,1,4,'MemAllocator::allocate() const')
f(8,71,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(9,71,1,4,'G1Allocator::unsafe_max_tlab_alloc()')
f(4,72,366,1,'cats/effect/IOFiber.runLoop')
f(5,109,3,2,'cats/effect/ContState.<init>',3,0,0)
f(6,110,2,2,'java/util/concurrent/atomic/AtomicReference.<init>',2,0,0)
f(7,110,2,2,'java/lang/Object.<init>',2,0,0)
f(5,112,6,6,'cats/effect/IO$FlatMap.tag',0,6,0)
f(5,118,7,6,'cats/effect/IO$Start.tag',0,7,0)
f(5,125,92,1,'cats/effect/IOFiber.<init>')
f(6,187,1,2,'cats/effect/ArrayStack$.apply',1,0,0)
f(6,188,8,2,'cats/effect/CallbackStack$.apply',7,0,0)
f(6,196,14,2,'cats/effect/IO$.async',14,0,0)
f(7,203,7,2,'cats/effect/IO$IOCont$.apply',7,0,0)
f(6,210,2,2,'cats/effect/IO$.uncancelable',2,0,0)
f(7,210,2,2,'cats/effect/IO$Uncancelable$.apply',2,0,0)
f(6,212,5,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',5,0,0)
f(7,212,5,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',5,0,0)
f(8,212,5,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',5,0,0)
f(5,217,163,2,'cats/effect/IOFiber.scheduleFiber',55,0,0)
f(6,217,163,2,'cats/effect/unsafe/WorkStealingThreadPool.execute',55,0,0)
f(7,217,1,2,'cats/effect/unsafe/WorkerThread.isOwnedBy',1,0,0)
f(7,218,162,2,'cats/effect/unsafe/WorkerThread.schedule',54,0,0)
f(8,220,29,2,'cats/effect/unsafe/LocalQueue.enqueue',29,0,0)
f(9,240,2,2,'cats/effect/unsafe/LocalQueue.unsignedShortSubtraction',2,0,0)
f(9,242,7,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',7,0,0)
f(8,249,131,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked',23,0,0)
f(9,269,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(10,269,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(11,269,1,4,'MemAllocator::allocate() const')
f(12,269,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(13,269,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(14,269,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(15,269,1,4,'G1AllocRegion::new_alloc_region_and_allocate(unsigned long, bool)')
f(16,269,1,4,'HeapRegion::set_eden()')
f(9,270,1,2,'java/util/concurrent/atomic/AtomicBoolean.getAndSet',1,0,0)
f(10,270,1,2,'java/lang/invoke/VarHandleGuards.guard_LI_I',1,0,0)
f(11,270,1,2,'java/lang/invoke/VarHandle.checkExactAccessMode',1,0,0)
f(9,271,109,1,'java/util/concurrent/locks/LockSupport.unpark',2,0,0)
f(10,273,107,1,'jdk/internal/misc/Unsafe.unpark')
f(11,275,1,4,'ThreadsListHandle::~ThreadsListHandle()')
f(11,276,4,3,'Unsafe_Unpark')
f(12,277,1,4,'ThreadsListHandle::ThreadsListHandle(Thread*)')
f(12,278,1,4,'oopDesc::address_field(int) const')
f(12,279,1,3,'pthread_mutex_lock')
f(11,280,100,3,'pthread_cond_signal')
f(12,284,96,5,'entry_SYSCALL_64_after_hwframe')
f(13,284,96,5,'do_syscall_64')
f(14,284,91,5,'__x64_sys_futex')
f(15,284,91,5,'do_futex')
f(16,284,91,5,'futex_wake')
f(17,287,2,5,'mark_wake_futex')
f(18,288,1,5,'plist_del')
f(17,289,86,5,'wake_up_q')
f(18,289,1,5,'_raw_spin_lock_irqsave')
f(18,290,85,5,'_raw_spin_unlock_irqrestore')
f(14,375,5,5,'syscall_enter_from_user_mode')
f(5,380,54,1,'cats/effect/IOFiber.succeeded')
f(6,405,29,2,'cats/effect/IOFiber.runTerminusSuccessK',29,0,0)
f(7,420,1,2,'cats/effect/IO$.pure',1,0,0)
f(8,420,1,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(7,421,11,2,'cats/effect/IOFiber.done',11,0,0)
f(8,431,1,2,'cats/effect/CallbackStack.apply',1,0,0)
f(7,432,2,2,'cats/effect/kernel/Outcome$Succeeded$.apply',2,0,0)
f(8,432,2,2,'cats/effect/kernel/Outcome$Succeeded.<init>',2,0,0)
f(5,434,4,3,'vtable stub')
f(2,438,9,2,'cats/effect/unsafe/LocalQueue.dequeue',7,0,0)
f(2,447,47,2,'cats/effect/unsafe/ScalQueue.poll',41,0,0)
f(3,451,26,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',21,0,0)
f(4,474,3,2,'java/util/concurrent/ConcurrentLinkedQueue.updateHead',1,0,0)
f(5,474,3,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',1,0,0)
f(6,475,2,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',1,0,0)
f(7,476,1,4,'OptoRuntime::new_array_C(Klass*, int, JavaThread*)')
f(8,476,1,4,'InstanceKlass::allocate_objArray(int, int, JavaThread*)')
f(9,476,1,4,'MemAllocator::allocate() const')
f(10,476,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(11,476,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(12,476,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(13,476,1,4,'G1AllocRegion::new_alloc_region_and_allocate(unsigned long, bool)')
f(14,476,1,4,'G1CollectedHeap::new_mutator_alloc_region(unsigned long, bool, unsigned int)')
f(15,476,1,4,'G1RemSetTrackingPolicy::update_at_allocate(HeapRegion*)')
f(16,476,1,4,'G1FromCardCache::clear(unsigned int)')
f(3,477,17,2,'java/util/concurrent/ThreadLocalRandom.nextInt',16,0,0)
f(4,477,17,2,'java/util/Random.nextInt',16,0,0)
f(5,479,15,2,'java/util/concurrent/ThreadLocalRandom.next',15,0,0)
f(6,479,15,2,'java/util/concurrent/ThreadLocalRandom.nextInt',15,0,0)
f(7,480,14,2,'java/util/concurrent/ThreadLocalRandom.nextSeed',14,0,0)
f(2,494,42,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyIfWorkPending',4,0,0)
f(3,498,2,2,'cats/effect/unsafe/LocalQueue.nonEmpty',1,0,0)
f(4,498,2,2,'cats/effect/unsafe/LocalQueue.isEmpty',1,0,0)
f(3,500,36,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(4,500,36,1,'java/util/concurrent/locks/LockSupport.unpark')
f(5,500,36,1,'jdk/internal/misc/Unsafe.unpark')
f(6,500,2,3,'Unsafe_Unpark')
f(7,501,1,3,'pthread_mutex_lock')
f(6,502,34,3,'pthread_cond_signal')
f(7,503,33,5,'entry_SYSCALL_64_after_hwframe')
f(8,503,1,5,'__x64_sys_futex')
f(8,504,32,5,'do_syscall_64')
f(9,504,32,5,'__x64_sys_futex')
f(10,504,32,5,'do_futex')
f(11,504,32,5,'futex_wake')
f(12,507,1,5,'get_futex_key')
f(12,508,2,5,'mark_wake_futex')
f(12,510,26,5,'wake_up_q')
f(13,511,25,5,'_raw_spin_unlock_irqrestore')
f(2,536,14,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,538,6,1,'cats/effect/unsafe/LocalQueue.stealInto')
f(4,539,3,2,'cats/effect/unsafe/LocalQueue.msb',3,0,0)
f(4,542,1,2,'cats/effect/unsafe/LocalQueue.unsignedShortSubtraction',1,0,0)
f(4,543,1,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.compareAndSet',1,0,0)
f(3,544,5,2,'cats/effect/unsafe/ScalQueue.poll',5,0,0)
f(4,545,4,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',4,0,0)
f(3,549,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(4,549,1,2,'java/util/Random.nextInt',1,0,0)
f(5,549,1,2,'java/util/concurrent/ThreadLocalRandom.next',1,0,0)
f(6,549,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(7,549,1,2,'java/util/concurrent/ThreadLocalRandom.nextSeed',1,0,0)
f(2,550,1,1,'cats/effect/unsafe/WorkStealingThreadPool.transitionWorkerFromSearching')
f(2,551,1,1,'cats/effect/unsafe/WorkStealingThreadPool.transitionWorkerToParkedWhenSearching')
f(2,552,129,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,552,129,1,'java/util/concurrent/locks/LockSupport.park')
f(4,552,129,1,'jdk/internal/misc/Unsafe.park')
f(5,557,2,4,'AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<548964ul, G1BarrierSet>, (AccessInternal::BarrierType)2, 548964ul>::oop_access_barrier(void*)')
f(5,559,13,3,'Unsafe_Park')
f(6,562,6,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,562,6,5,'entry_SYSCALL_64_after_hwframe')
f(8,562,2,5,'__x64_sys_futex')
f(8,564,4,5,'do_syscall_64')
f(9,564,1,5,'__x64_sys_futex')
f(10,564,1,5,'do_futex')
f(11,564,1,5,'futex_wake')
f(9,565,3,5,'syscall_enter_from_user_mode')
f(6,568,1,4,'JavaThread::is_interrupted(bool)')
f(6,569,1,4,'Parker::park(bool, long)')
f(6,570,1,3,'pthread_cond_wait')
f(6,571,1,3,'pthread_mutex_unlock')
f(5,572,109,3,'[unknown]')
f(6,572,106,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,579,99,5,'entry_SYSCALL_64_after_hwframe')
f(8,579,1,5,'__x64_sys_futex')
f(8,580,98,5,'do_syscall_64')
f(9,581,91,5,'__x64_sys_futex')
f(10,581,91,5,'do_futex')
f(11,581,91,5,'futex_wait')
f(12,584,1,5,'__get_user_nocheck_4')
f(12,585,82,5,'futex_wait_queue_me')
f(13,586,81,5,'schedule')
f(14,587,80,5,'__schedule')
f(15,587,80,5,'finish_task_switch.isra.0')
f(12,667,5,5,'futex_wait_setup')
f(9,672,5,5,'syscall_exit_to_user_mode')
f(10,672,5,5,'exit_to_user_mode_prepare')
f(11,672,5,5,'exit_to_user_mode_loop')
f(12,673,4,5,'__rseq_handle_notify_resume')
f(13,674,3,5,'rseq_ip_fixup')
f(14,674,2,5,'__get_user_8')
f(14,676,1,5,'rseq_get_rseq_cs.isra.0')
f(9,677,1,5,'syscall_exit_to_user_mode_prepare')
f(6,678,3,3,'pthread_cond_wait')
f(2,681,6,2,'java/util/concurrent/atomic/AtomicBoolean.lazySet',3,0,0)
f(3,681,6,2,'java/lang/invoke/VarHandleGuards.guard_LI_V',3,0,0)
f(4,682,4,2,'java/lang/invoke/VarForm.getMemberName',3,0,0)
f(5,683,3,2,'java/lang/invoke/VarForm.getMemberNameOrNull',2,0,0)
f(4,686,1,1,'java/lang/invoke/VarHandleInts$FieldInstanceReadWrite.setRelease')
f(1,687,3,1,'java/lang/Thread.run')
f(2,687,3,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,687,3,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,687,3,1,'java/util/concurrent/FutureTask.run')
f(5,687,3,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,687,3,1,'java/util/concurrent/FutureTask.run')
f(7,687,3,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,687,3,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,687,3,1,'java/lang/reflect/Method.invoke')
f(10,687,3,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,687,3,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,687,3,1,'kyo/bench/jmh_generated/ChainedForkBench_forkCats_jmhTest.forkCats_Throughput')
f(13,687,3,1,'kyo/bench/jmh_generated/ChainedForkBench_forkCats_jmhTest.forkCats_thrpt_jmhStub',0,0,1)
f(14,688,2,1,'kyo/bench/Bench.forkCats')
f(15,688,2,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,688,2,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,688,2,1,'scala/concurrent/package$.blocking')
f(18,688,2,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,688,2,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5abc8.apply')
f(20,688,2,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,688,2,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,689,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,689,1,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,689,1,1,'jdk/internal/misc/Unsafe.park')
f(25,689,1,3,'[unknown]')
f(26,689,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,689,1,5,'entry_SYSCALL_64_after_hwframe')
f(28,689,1,5,'do_syscall_64')
f(29,689,1,5,'__x64_sys_futex')
f(30,689,1,5,'do_futex')
f(31,689,1,5,'futex_wait')
f(32,689,1,5,'hrtimer_cancel')
f(33,689,1,5,'_raw_spin_unlock_irqrestore')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,32824,3,'all')
f(1,0,31213,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,31213,1,'cats/effect/IOFiber.run')
f(3,0,2,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,0,2,1,'cats/effect/IOFiber.succeeded')
f(5,0,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,0,1,1,'cats/effect/IO$.pure')
f(7,0,1,1,'cats/effect/IO$Pure$.apply')
f(8,0,1,2,'cats.effect.IO$Pure')
f(6,1,1,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(7,1,1,2,'cats.effect.kernel.Outcome$Succeeded')
f(3,2,31211,1,'cats/effect/IOFiber.execR')
f(4,2,9187,1,'cats/effect/ArrayStack.init')
f(5,2,9187,2,'java.lang.Object[]')
f(4,9189,1872,1,'cats/effect/ByteStack$.create')
f(5,9189,1872,2,'int[]')
f(4,11061,20152,1,'cats/effect/IOFiber.runLoop')
f(5,11061,3992,2,'cats.effect.IOFiber')
f(5,15053,2,1,'cats/effect/IODeferred$$anon$1$$Lambda$101.0x0000000800d60200.apply')
f(6,15053,2,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1')
f(7,15053,2,1,'cats/effect/IO$$anon$2.uncancelable')
f(8,15053,2,1,'cats/effect/IO$$anon$2.uncancelable')
f(9,15053,2,1,'cats/effect/IO$.uncancelable')
f(10,15053,2,1,'cats/effect/IO$Uncancelable$.apply')
f(11,15053,2,2,'cats.effect.IO$Uncancelable')
f(5,15055,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$102.0x0000000800d60ed0.apply')
f(6,15055,1,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1$$anonfun$1')
f(7,15055,1,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d64800.linkToTargetMethod')
f(8,15055,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d64400.newInvokeSpecial')
f(9,15055,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,15055,1,2,'cats.effect.IODeferred$$anon$1$$Lambda$103+0x0000000800d61a10')
f(5,15056,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$103.0x0000000800d61a10.apply')
f(6,15056,1,1,'cats/effect/IODeferred$$anon$1.$anonfun$1')
f(7,15056,1,1,'cats/effect/kernel/syntax/MonadCancelOps_$.onCancel$extension')
f(8,15056,1,1,'cats/effect/IO$$anon$2.onCancel')
f(9,15056,1,1,'cats/effect/IO$$anon$2.onCancel')
f(10,15056,1,1,'cats/effect/IO.onCancel')
f(11,15056,1,1,'cats/effect/IO$OnCancel$.apply')
f(12,15056,1,2,'cats.effect.IO$OnCancel')
f(5,15057,1,1,'cats/effect/IODeferred$$anon$1.apply')
f(6,15057,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,15057,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,15057,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,15057,1,2,'cats.effect.IODeferred$$anon$1$$Lambda$101+0x0000000800d60200')
f(5,15058,9355,1,'cats/effect/IOFiber.<init>')
f(6,15058,2747,1,'cats/effect/ArrayStack$.apply')
f(7,15058,2747,2,'cats.effect.ArrayStack')
f(6,17805,1505,1,'cats/effect/CallbackStack$.apply')
f(7,17805,1505,2,'cats.effect.CallbackStack')
f(6,19310,1816,1,'cats/effect/IO$.async')
f(7,19310,722,2,'cats.effect.IO$$anon$3')
f(7,20032,1094,1,'cats/effect/IO$IOCont$.apply')
f(8,20032,1094,2,'cats.effect.IO$IOCont')
f(6,21126,1823,1,'cats/effect/IO$.uncancelable')
f(7,21126,1823,1,'cats/effect/IO$Uncancelable$.apply')
f(8,21126,1823,2,'cats.effect.IO$Uncancelable')
f(6,22949,1464,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,22949,1464,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,22949,1464,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,22949,751,2,'cats.effect.IOFiber$$Lambda$93+0x0000000800d5dbf8')
f(9,23700,713,2,'cats.effect.IOFiber$$Lambda$94+0x0000000800d5e1e8')
f(5,24413,3601,1,'cats/effect/IOFiber.next$2')
f(6,24413,3601,1,'kyo/bench/ChainedForkBench$$Lambda$96.0x0000000800d5f928.apply')
f(7,24413,3601,1,'kyo/bench/ChainedForkBench.iterate$1$$anonfun$1')
f(8,24413,895,1,'cats/effect/IO.start')
f(9,24413,895,1,'cats/effect/IO$Start$.apply')
f(10,24413,895,2,'cats.effect.IO$Start')
f(8,25308,2706,1,'kyo/bench/ChainedForkBench.iterate$1')
f(9,25308,1328,1,'cats/effect/IO.flatMap')
f(10,25308,1328,1,'cats/effect/IO$FlatMap$.apply')
f(11,25308,1328,2,'cats.effect.IO$FlatMap')
f(9,26636,1378,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,26636,1378,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d59400.newInvokeSpecial')
f(11,26636,1378,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,26636,1378,2,'kyo.bench.ChainedForkBench$$Lambda$96+0x0000000800d5f928')
f(5,28014,3198,1,'cats/effect/IOFiber.succeeded')
f(6,28014,3196,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,28014,1496,1,'cats/effect/IO$.pure')
f(8,28014,1496,1,'cats/effect/IO$Pure$.apply')
f(9,28014,1496,2,'cats.effect.IO$Pure')
f(7,29510,911,1,'cats/effect/IOFiber.done')
f(8,29510,911,1,'cats/effect/IO$.pure')
f(9,29510,911,1,'cats/effect/IO$Pure$.apply')
f(10,29510,911,2,'cats.effect.IO$Pure')
f(7,30421,789,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,30421,789,2,'cats.effect.kernel.Outcome$Succeeded')
f(6,31210,2,1,'kyo/bench/ChainedForkBench$$Lambda$97.0x0000000800d5a000.apply')
f(7,31210,2,1,'kyo/bench/ChainedForkBench.catsBench$$anonfun$1$$anonfun$1')
f(8,31210,1,1,'cats/effect/IO.map')
f(9,31210,1,1,'cats/effect/IO$Map$.apply')
f(10,31210,1,2,'cats.effect.IO$Map')
f(8,31211,1,1,'cats/effect/IODeferred.get')
f(9,31211,1,1,'cats/effect/IODeferred.get')
f(10,31211,1,1,'cats/effect/IO$.defer')
f(11,31211,1,1,'cats/effect/IO.flatten')
f(12,31211,1,1,'cats/effect/IO.flatMap')
f(13,31211,1,1,'cats/effect/IO$FlatMap$.apply')
f(14,31211,1,2,'cats.effect.IO$FlatMap')
f(5,31212,1,1,'kyo/bench/ChainedForkBench$$Lambda$41.0x0000000800c8e4a8.apply')
f(6,31212,1,1,'kyo/bench/ChainedForkBench.catsBench$$anonfun$1')
f(7,31212,1,1,'cats/effect/IO.flatMap')
f(8,31212,1,1,'cats/effect/IO$FlatMap$.apply')
f(9,31212,1,2,'cats.effect.IO$FlatMap')
f(1,31213,1,2,'java.lang.String')
f(1,31214,1586,1,'java/lang/Thread.run')
f(2,31214,1586,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,31214,1586,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,31214,1586,1,'java/util/concurrent/FutureTask.run')
f(5,31214,1586,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,31214,1586,1,'java/util/concurrent/FutureTask.run')
f(7,31214,1586,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,31214,1586,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,31214,1,2,'java.lang.Object[]')
f(9,31215,1585,1,'java/lang/reflect/Method.invoke')
f(10,31215,1585,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,31215,1585,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,31215,1585,1,'kyo/bench/jmh_generated/ChainedForkBench_syncCats_jmhTest.syncCats_Throughput')
f(13,31215,1585,1,'kyo/bench/jmh_generated/ChainedForkBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,31215,1585,1,'kyo/bench/Bench.syncCats')
f(15,31215,1573,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,31215,1569,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,31215,1399,1,'cats/effect/IO.unsafeRunAsync')
f(18,31215,1399,1,'cats/effect/IO.unsafeRunFiber')
f(19,31215,622,2,'cats.effect.IOFiber')
f(19,31837,151,5,'cats.effect.IOFiber')
f(19,31988,455,1,'cats/effect/IOFiber.<init>')
f(20,31988,235,1,'cats/effect/ArrayStack$.apply')
f(21,31988,235,2,'cats.effect.ArrayStack')
f(20,32223,69,1,'cats/effect/CallbackStack$.apply')
f(21,32223,69,2,'cats.effect.CallbackStack')
f(20,32292,75,1,'cats/effect/IO$.async')
f(21,32292,6,2,'cats.effect.IO$$anon$3')
f(21,32298,69,1,'cats/effect/IO$IOCont$.apply')
f(22,32298,69,2,'cats.effect.IO$IOCont')
f(20,32367,62,1,'cats/effect/IO$.uncancelable')
f(21,32367,62,1,'cats/effect/IO$Uncancelable$.apply')
f(22,32367,62,2,'cats.effect.IO$Uncancelable')
f(20,32429,14,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,32429,14,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,32429,14,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,32429,6,2,'cats.effect.IOFiber$$Lambda$93+0x0000000800d5dbf8')
f(23,32435,8,2,'cats.effect.IOFiber$$Lambda$94+0x0000000800d5e1e8')
f(19,32443,5,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,32443,5,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,32443,5,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,32443,5,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,32443,5,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,32448,166,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,32448,166,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58c00.newInvokeSpecial')
f(21,32448,166,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,32448,166,2,'cats.effect.IO$$Lambda$92+0x0000000800d5cdc0')
f(17,32614,4,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,32618,82,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,32618,82,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,32618,82,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,32618,82,2,'cats.effect.IOPlatform$$Lambda$95+0x0000000800d5ebc8')
f(17,32700,2,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,32700,2,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,32700,1,2,'java.lang.Object[]')
f(19,32701,1,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,32701,1,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(17,32702,82,1,'scala/util/Either.fold')
f(18,32702,82,1,'cats/effect/IOPlatform$$Lambda$112.0x0000000800d7eaa8.apply')
f(19,32702,82,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,32702,82,1,'scala/Some$.apply')
f(21,32702,82,2,'scala.Some')
f(16,32784,4,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,32784,4,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,32784,4,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,32784,4,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,32784,4,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,32784,4,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,32784,4,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,32784,4,2,'scala.concurrent.duration.FiniteDuration')
f(15,32788,12,1,'kyo/bench/ChainedForkBench.catsBench')
f(16,32788,12,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,32788,12,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,32788,12,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,32788,12,2,'kyo.bench.ChainedForkBench$$Lambda$41+0x0000000800c8e4a8')
f(1,32800,24,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,32800,24,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,32800,24,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,32800,24,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,32800,24,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,32800,24,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,32800,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,32800,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,32800,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,32800,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,32800,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,32800,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,32800,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,32800,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,32800,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,32800,1,2,'java.lang.Object[]')
f(7,32801,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,32801,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,32801,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,32804,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,32804,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,32804,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,32804,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,32804,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,32804,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,32809,15,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,32809,15,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,32809,4,1,'java/lang/ClassLoader.loadClass')
f(10,32809,4,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,32809,4,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,32809,4,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,32809,4,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,32809,3,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,32809,1,1,'java/security/CodeSource.<init>')
f(16,32809,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,32809,1,1,'java/lang/StringBuilder.append')
f(18,32809,1,1,'java/lang/AbstractStringBuilder.append')
f(19,32809,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,32809,1,1,'java/util/Arrays.copyOf')
f(21,32809,1,2,'byte[]')
f(15,32810,1,1,'jdk/internal/loader/Resource.getByteBuffer')
f(16,32810,1,1,'jdk/internal/loader/Resource.cachedInputStream')
f(17,32810,1,1,'jdk/internal/loader/URLClassPath$JarLoader$2.getInputStream')
f(18,32810,1,1,'java/util/jar/JarFile.getInputStream')
f(19,32810,1,1,'java/util/zip/ZipFile.getInputStream')
f(20,32810,1,1,'java/util/zip/ZipFile$ZipFileInflaterInputStream.<init>')
f(21,32810,1,1,'java/util/zip/ZipFile$ZipFileInflaterInputStream.<init>')
f(22,32810,1,1,'java/util/zip/InflaterInputStream.<init>')
f(23,32810,1,5,'byte[]')
f(15,32811,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,32811,1,1,'java/util/Arrays.copyOf')
f(17,32811,1,5,'byte[]')
f(14,32812,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,32812,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,32812,1,1,'java/util/jar/JarFile.getJarEntry')
f(17,32812,1,1,'java/util/jar/JarFile.getEntry')
f(18,32812,1,1,'java/util/zip/ZipFile.getEntry')
f(19,32812,1,1,'java/util/zip/ZipFile$Source.getEntryPos')
f(20,32812,1,1,'java/util/zip/ZipCoder$UTF8ZipCoder.toString')
f(21,32812,1,1,'java/lang/System$2.newStringUTF8NoRepl')
f(22,32812,1,1,'java/lang/String.newStringUTF8NoRepl')
f(23,32812,1,1,'java/util/Arrays.copyOfRange')
f(24,32812,1,2,'byte[]')
f(9,32813,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,32813,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,32813,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,32813,11,1,'java/io/ObjectStreamClass.lookup')
f(13,32813,11,1,'java/io/ObjectStreamClass.<init>')
f(14,32813,11,1,'java/security/AccessController.doPrivileged')
f(15,32813,11,1,'java/security/AccessController.executePrivileged')
f(16,32813,11,1,'java/io/ObjectStreamClass$2.run')
f(17,32813,11,1,'java/io/ObjectStreamClass$2.run')
f(18,32813,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,32813,2,1,'java/lang/Class.getDeclaredMethod')
f(20,32813,1,1,'java/lang/Class.methodToString')
f(21,32813,1,1,'java/lang/StringBuilder.append')
f(22,32813,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32813,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32813,1,1,'java/util/Arrays.copyOf')
f(25,32813,1,2,'byte[]')
f(20,32814,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32814,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32814,1,1,'java/lang/Exception.<init>')
f(23,32814,1,1,'java/lang/Throwable.<init>')
f(24,32814,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32814,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32814,1,2,'short[]')
f(18,32815,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,32815,3,1,'java/lang/Class.getDeclaredMethod')
f(20,32815,2,1,'java/lang/Class.methodToString')
f(21,32815,1,1,'java/lang/StringBuilder.append')
f(22,32815,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32815,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32815,1,1,'java/util/Arrays.copyOf')
f(25,32815,1,2,'byte[]')
f(21,32816,1,1,'java/lang/StringBuilder.toString')
f(22,32816,1,1,'java/lang/StringLatin1.newString')
f(23,32816,1,1,'java/util/Arrays.copyOfRange')
f(24,32816,1,2,'byte[]')
f(20,32817,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32817,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32817,1,1,'java/lang/Exception.<init>')
f(23,32817,1,1,'java/lang/Throwable.<init>')
f(24,32817,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32817,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32817,1,5,'long[]')
f(18,32818,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,32818,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,32818,1,1,'java/lang/Class.getDeclaredField')
f(21,32818,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,32818,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,32818,1,1,'java/lang/Exception.<init>')
f(24,32818,1,1,'java/lang/Throwable.<init>')
f(25,32818,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32818,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,32818,1,2,'long[]')
f(18,32819,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,32819,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,32819,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,32819,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,32819,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,32819,1,1,'java/security/AccessController.doPrivileged')
f(24,32819,1,1,'java/security/AccessController.executePrivileged')
f(25,32819,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,32819,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,32819,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,32819,1,1,'java/security/AccessController.doPrivileged')
f(29,32819,1,1,'java/security/AccessController.executePrivileged')
f(30,32819,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,32819,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,32819,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,32819,1,1,'java/lang/ClassLoader.<init>')
f(34,32819,1,1,'java/lang/ClassLoader.<init>')
f(35,32819,1,1,'java/lang/ClassLoader.nameAndId')
f(36,32819,1,1,'java/lang/StringBuilder.<init>')
f(37,32819,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,32819,1,2,'byte[]')
f(23,32820,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,32820,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32820,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32820,1,2,'byte[]')
f(23,32821,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,32821,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32821,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32821,1,2,'byte[]')
f(23,32822,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,32822,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,32822,1,1,'java/lang/String.replace')
f(26,32822,1,1,'java/lang/StringLatin1.replace')
f(27,32822,1,2,'java.lang.String')
f(23,32823,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,32823,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 576px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(36);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,696,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1CollectedHeap::evacuate_initial_collection_set(G1ParScanThreadStateSet*, bool)')
f(12,0,1,4,'WorkGang::run_task(AbstractGangTask*, unsigned int, bool)')
f(13,0,1,3,'sem_post')
f(14,0,1,5,'entry_SYSCALL_64_after_hwframe')
f(15,0,1,5,'do_syscall_64')
f(16,0,1,5,'__x64_sys_futex')
f(17,0,1,5,'do_futex')
f(18,0,1,5,'futex_wake')
f(19,0,1,5,'wake_up_q')
f(20,0,1,5,'_raw_spin_lock_irqsave')
f(1,1,6,3,'[unknown_Java]')
f(2,1,1,3,'_new_instance_Java')
f(3,1,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(4,1,1,4,'CardTableBarrierSet::on_slowpath_allocation_exit(JavaThread*, oopDesc*)')
f(2,2,1,6,'cats/effect/IO$FlatMap.tag',0,1,0)
f(2,3,3,6,'cats/effect/IO$Start.tag',0,3,0)
f(2,6,1,1,'cats/effect/IOFiber.succeeded')
f(1,7,686,1,'cats/effect/unsafe/WorkerThread.run')
f(2,13,426,1,'cats/effect/IOFiber.run',15,0,0)
f(3,14,5,1,'cats/effect/IOFiber.asyncContinueSuccessfulR',1,0,0)
f(4,17,1,1,'cats/effect/ArrayStack.pop')
f(4,18,1,1,'cats/effect/IOFiber.succeeded')
f(5,18,1,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,18,1,1,'cats/effect/IOFiber.done')
f(7,18,1,1,'cats/effect/CallbackStack.apply')
f(8,18,1,1,'scala/runtime/function/JProcedure1.apply')
f(9,18,1,1,'scala/runtime/function/JProcedure1.apply')
f(10,18,1,1,'cats/effect/IO$$Lambda$92.0x0000000800d5cdc0.applyVoid')
f(3,19,420,1,'cats/effect/IOFiber.execR',13,0,0)
f(4,33,14,2,'cats/effect/ArrayStack.init',7,0,0)
f(5,46,1,4,'OptoRuntime::new_array_C(Klass*, int, JavaThread*)')
f(6,46,1,4,'InstanceKlass::allocate_objArray(int, int, JavaThread*)')
f(7,46,1,4,'MemAllocator::allocate() const')
f(8,46,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(9,46,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(4,47,1,2,'cats/effect/ByteStack$.create',1,0,0)
f(4,48,1,2,'cats/effect/ByteStack$.push',1,0,0)
f(5,48,1,2,'cats/effect/ByteStack$.growIfNeeded',1,0,0)
f(4,49,390,1,'cats/effect/IOFiber.runLoop')
f(5,92,3,6,'cats/effect/IO$FlatMap.tag',0,3,0)
f(5,95,12,6,'cats/effect/IO$Start.tag',0,12,0)
f(5,107,97,1,'cats/effect/IOFiber.<init>')
f(6,175,5,2,'cats/effect/CallbackStack$.apply',5,0,0)
f(6,180,12,2,'cats/effect/IO$.async',12,0,0)
f(7,185,7,2,'cats/effect/IO$IOCont$.apply',7,0,0)
f(6,192,2,2,'cats/effect/IO$.uncancelable',2,0,0)
f(7,192,2,2,'cats/effect/IO$Uncancelable$.apply',2,0,0)
f(6,194,10,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',10,0,0)
f(7,194,10,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',10,0,0)
f(8,194,10,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',10,0,0)
f(5,204,177,2,'cats/effect/IOFiber.scheduleFiber',61,0,0)
f(6,204,177,2,'cats/effect/unsafe/WorkStealingThreadPool.execute',61,0,0)
f(7,204,1,2,'cats/effect/unsafe/WorkerThread.isOwnedBy',1,0,0)
f(7,205,176,2,'cats/effect/unsafe/WorkerThread.schedule',60,0,0)
f(8,218,18,2,'cats/effect/unsafe/LocalQueue.enqueue',18,0,0)
f(8,236,145,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked',29,0,0)
f(9,248,10,2,'java/util/concurrent/ThreadLocalRandom.nextInt',10,0,0)
f(10,248,10,2,'java/util/Random.nextInt',10,0,0)
f(11,252,6,2,'java/util/concurrent/ThreadLocalRandom.next',6,0,0)
f(12,252,6,2,'java/util/concurrent/ThreadLocalRandom.nextInt',6,0,0)
f(13,253,5,2,'java/util/concurrent/ThreadLocalRandom.mix32',5,0,0)
f(9,258,5,2,'java/util/concurrent/atomic/AtomicBoolean.getAndSet',5,0,0)
f(10,258,5,2,'java/lang/invoke/VarHandleGuards.guard_LI_I',5,0,0)
f(9,263,2,2,'java/util/concurrent/atomic/AtomicInteger.getAndAdd',2,0,0)
f(9,265,116,1,'java/util/concurrent/locks/LockSupport.unpark')
f(10,265,116,1,'jdk/internal/misc/Unsafe.unpark')
f(11,266,4,3,'Unsafe_Unpark')
f(12,266,1,4,'SafeThreadsListPtr::release_stable_list()')
f(12,267,2,4,'ThreadsListHandle::cv_internal_thread_to_JavaThread(_jobject*, JavaThread**, oopDesc**)')
f(12,269,1,3,'pthread_mutex_lock')
f(11,270,111,3,'pthread_cond_signal')
f(12,274,107,5,'entry_SYSCALL_64_after_hwframe')
f(13,274,107,5,'do_syscall_64')
f(14,274,103,5,'__x64_sys_futex')
f(15,275,102,5,'do_futex')
f(16,276,101,5,'futex_wake')
f(17,276,101,5,'wake_up_q')
f(18,277,100,5,'_raw_spin_unlock_irqrestore')
f(14,377,4,5,'syscall_enter_from_user_mode')
f(5,381,51,1,'cats/effect/IOFiber.succeeded')
f(6,386,7,2,'cats/effect/ByteStack$.pop',7,0,0)
f(7,391,2,2,'cats/effect/ByteStack$.peek',2,0,0)
f(6,393,39,2,'cats/effect/IOFiber.runTerminusSuccessK',37,0,0)
f(7,405,6,2,'cats/effect/IO$.pure',6,0,0)
f(8,405,6,2,'cats/effect/IO$Pure$.apply',6,0,0)
f(9,408,3,2,'cats/effect/IO$Pure.<init>',3,0,0)
f(10,408,3,2,'cats/effect/IO.<init>',3,0,0)
f(11,408,3,2,'cats/effect/IOPlatform.<init>',3,0,0)
f(12,408,3,2,'java/lang/Object.<init>',3,0,0)
f(7,411,19,2,'cats/effect/IOFiber.done',19,0,0)
f(8,420,2,2,'cats/effect/CallbackStack.apply',2,0,0)
f(8,422,8,2,'cats/effect/IO$.pure',8,0,0)
f(9,422,8,2,'cats/effect/IO$Pure$.apply',8,0,0)
f(10,428,2,2,'cats/effect/IO$Pure.<init>',2,0,0)
f(11,429,1,2,'cats/effect/IO.<init>',1,0,0)
f(12,429,1,2,'cats/effect/IOPlatform.<init>',1,0,0)
f(7,430,2,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,430,2,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(9,430,2,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(10,430,1,4,'MemAllocator::allocate() const')
f(11,430,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(12,430,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(13,430,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(14,430,1,4,'G1AllocRegion::new_alloc_region_and_allocate(unsigned long, bool)')
f(15,430,1,4,'G1CollectedHeap::new_mutator_alloc_region(unsigned long, bool, unsigned int)')
f(16,430,1,4,'HeapRegionManager::allocate_free_region(HeapRegionType, unsigned int)')
f(10,431,1,4,'ObjAllocator::initialize(HeapWordImpl**) const')
f(5,432,7,3,'vtable stub')
f(2,439,18,1,'cats/effect/unsafe/LocalQueue.dequeue',3,0,0)
f(3,451,6,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.compareAndSet',3,0,0)
f(4,454,3,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.accessCheck',2,0,0)
f(2,457,43,1,'cats/effect/unsafe/ScalQueue.poll',10,0,0)
f(3,464,31,1,'java/util/concurrent/ConcurrentLinkedQueue.poll',7,0,0)
f(4,474,15,2,'java/util/concurrent/ConcurrentLinkedQueue$Node.casItem',6,0,0)
f(5,474,15,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',6,0,0)
f(6,475,3,1,'java/lang/invoke/VarForm.getMemberName')
f(7,475,3,1,'java/lang/invoke/VarForm.getMemberNameOrNull')
f(6,478,11,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',6,0,0)
f(4,489,6,1,'java/util/concurrent/ConcurrentLinkedQueue.updateHead')
f(5,489,3,1,'java/lang/invoke/VarHandleGuards.guard_LLL_Z')
f(6,489,3,1,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet')
f(5,492,3,1,'java/lang/invoke/VarHandleGuards.guard_LL_V')
f(6,493,1,1,'java/lang/invoke/VarForm.getMemberName')
f(6,494,1,1,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.setRelease')
f(7,494,1,1,'java/util/Objects.requireNonNull')
f(3,495,5,2,'java/util/concurrent/ThreadLocalRandom.nextInt',3,0,0)
f(4,495,5,2,'java/util/Random.nextInt',3,0,0)
f(5,495,5,2,'java/util/concurrent/ThreadLocalRandom.next',3,0,0)
f(6,495,5,2,'java/util/concurrent/ThreadLocalRandom.nextInt',3,0,0)
f(7,497,3,2,'java/util/concurrent/ThreadLocalRandom.nextSeed',3,0,0)
f(2,500,29,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyIfWorkPending')
f(3,500,29,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(4,500,29,1,'java/util/concurrent/locks/LockSupport.unpark')
f(5,500,29,1,'jdk/internal/misc/Unsafe.unpark')
f(6,501,28,3,'pthread_cond_signal')
f(7,501,28,5,'entry_SYSCALL_64_after_hwframe')
f(8,501,28,5,'do_syscall_64')
f(9,501,28,5,'__x64_sys_futex')
f(10,501,28,5,'do_futex')
f(11,501,28,5,'futex_wake')
f(12,501,28,5,'wake_up_q')
f(13,501,27,5,'_raw_spin_unlock_irqrestore')
f(13,528,1,5,'try_to_wake_up')
f(2,529,24,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,531,8,1,'cats/effect/unsafe/LocalQueue.stealInto')
f(4,531,4,2,'cats/effect/unsafe/LocalQueue.msb',4,0,0)
f(4,535,1,2,'cats/effect/unsafe/LocalQueue.unsignedShortSubtraction',1,0,0)
f(5,535,1,2,'cats/effect/unsafe/LocalQueue.lsb',1,0,0)
f(4,536,3,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.compareAndSet',3,0,0)
f(3,539,12,2,'cats/effect/unsafe/ScalQueue.poll',12,0,0)
f(4,542,9,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',9,0,0)
f(3,551,1,2,'cats/effect/unsafe/WorkStealingThreadPool.localQueues',1,0,0)
f(3,552,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(4,552,1,2,'java/util/Random.nextInt',1,0,0)
f(5,552,1,2,'java/util/concurrent/ThreadLocalRandom.next',1,0,0)
f(6,552,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(7,552,1,2,'java/util/concurrent/ThreadLocalRandom.nextSeed',1,0,0)
f(2,553,140,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,553,140,1,'java/util/concurrent/locks/LockSupport.park')
f(4,553,140,1,'jdk/internal/misc/Unsafe.park')
f(5,560,1,4,'AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<548964ul, G1BarrierSet>, (AccessInternal::BarrierType)2, 548964ul>::oop_access_barrier(void*)')
f(5,561,10,3,'Unsafe_Park')
f(6,563,5,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,564,4,5,'entry_SYSCALL_64_after_hwframe')
f(8,564,4,5,'do_syscall_64')
f(9,565,3,5,'__x64_sys_futex')
f(10,565,3,5,'do_futex')
f(11,565,1,5,'futex_wake')
f(11,566,2,5,'hash_futex')
f(6,568,1,3,'__tls_get_addr')
f(6,569,2,3,'pthread_mutex_unlock')
f(5,571,122,3,'[unknown]')
f(6,571,117,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,572,116,5,'entry_SYSCALL_64_after_hwframe')
f(8,572,116,5,'do_syscall_64')
f(9,572,112,5,'__x64_sys_futex')
f(10,574,110,5,'do_futex')
f(11,574,110,5,'futex_wait')
f(12,578,1,5,'__raw_callee_save___pv_queued_spin_unlock')
f(12,579,98,5,'futex_wait_queue_me')
f(13,579,1,5,'__raw_callee_save___pv_queued_spin_unlock')
f(13,580,97,5,'schedule')
f(14,583,94,5,'__schedule')
f(15,584,93,5,'finish_task_switch.isra.0')
f(12,677,5,5,'futex_wait_setup')
f(12,682,2,5,'hash_futex')
f(9,684,2,5,'syscall_enter_from_user_mode')
f(9,686,2,5,'syscall_exit_to_user_mode')
f(10,686,2,5,'exit_to_user_mode_prepare')
f(11,686,2,5,'exit_to_user_mode_loop')
f(12,686,2,5,'__rseq_handle_notify_resume')
f(13,687,1,5,'rseq_ip_fixup')
f(14,687,1,5,'rseq_get_rseq_cs.isra.0')
f(6,688,5,3,'pthread_cond_wait')
f(1,693,3,1,'java/lang/Thread.run')
f(2,693,3,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,693,3,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,693,3,1,'java/util/concurrent/FutureTask.run')
f(5,693,3,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,693,3,1,'java/util/concurrent/FutureTask.run')
f(7,693,3,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,693,3,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,693,3,1,'java/lang/reflect/Method.invoke')
f(10,693,3,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,693,3,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,693,3,1,'kyo/bench/jmh_generated/ChainedForkBench_syncCats_jmhTest.syncCats_Throughput')
f(13,693,3,1,'kyo/bench/jmh_generated/ChainedForkBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,693,3,1,'kyo/bench/Bench.syncCats')
f(15,693,3,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,693,3,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,693,1,1,'cats/effect/IO.unsafeRunAsync')
f(18,693,1,1,'cats/effect/IO.unsafeRunFiber')
f(19,693,1,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,693,1,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,693,1,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,693,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,693,1,1,'jdk/internal/misc/Unsafe.unpark')
f(24,693,1,3,'pthread_cond_signal')
f(25,693,1,5,'entry_SYSCALL_64_after_hwframe')
f(26,693,1,5,'do_syscall_64')
f(27,693,1,5,'__x64_sys_futex')
f(28,693,1,5,'do_futex')
f(29,693,1,5,'futex_wake')
f(30,693,1,5,'wake_up_q')
f(31,693,1,5,'_raw_spin_unlock_irqrestore')
f(17,694,2,1,'scala/concurrent/package$.blocking')
f(18,694,2,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,694,2,1,'cats/effect/IOPlatform$$Lambda$95.0x0000000800d5ebc8.apply')
f(20,694,2,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,694,2,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,694,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,694,2,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,694,2,1,'jdk/internal/misc/Unsafe.park')
f(25,694,2,3,'[unknown]')
f(26,694,2,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,694,2,5,'entry_SYSCALL_64_after_hwframe')
f(28,694,2,5,'do_syscall_64')
f(29,694,2,5,'__x64_sys_futex')
f(30,694,1,5,'do_futex')
f(31,694,1,5,'futex_wait')
f(32,694,1,5,'futex_wait_queue_me')
f(33,694,1,5,'schedule')
f(34,694,1,5,'__schedule')
f(35,694,1,5,'finish_task_switch.isra.0')
f(30,695,1,5,'get_timespec64')
f(31,695,1,5,'copy_user_enhanced_fast_string')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,29079,3,'all')
f(1,0,26042,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,26042,1,'cats/effect/IOFiber.run')
f(3,0,11695,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,11695,1,'cats/effect/IOFiber.runLoop')
f(5,0,150,1,'cats/data/Chain$$$Lambda$114.0x0000000800dc2120.apply')
f(6,0,150,1,'cats/data/Chain$.$anonfun$1$$anonfun$1')
f(7,0,150,1,'scala/collection/immutable/List.$colon$colon')
f(8,0,150,2,'scala.collection.immutable.$colon$colon')
f(5,150,5616,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply')
f(6,150,5616,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(7,150,3404,1,'cats/Eval$Defer.value')
f(8,150,3404,1,'cats/Eval$.cats$Eval$$$evaluate')
f(9,150,2815,1,'cats/Eval$.loop$1')
f(10,150,2815,1,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply')
f(11,150,2815,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(12,150,2247,1,'cats/effect/IO$$anon$2.map2Eval')
f(13,150,2247,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,150,587,1,'cats/Eval$.now')
f(15,150,587,1,'cats/Now$.apply')
f(16,150,587,2,'cats.Now')
f(14,737,834,1,'cats/effect/IO.flatMap')
f(15,737,834,1,'cats/effect/IO$FlatMap$.apply')
f(16,737,834,2,'cats.effect.IO$FlatMap')
f(14,1571,826,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,1571,826,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,1571,826,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,1571,826,2,'cats.effect.IO$$anon$2$$Lambda$107+0x0000000800dc05b0')
f(12,2397,568,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,2397,568,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,2397,568,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,2397,568,2,'cats.data.Chain$$$Lambda$106+0x0000000800dc0000')
f(9,2965,589,1,'cats/Eval$Ident$.apply')
f(10,2965,589,2,'cats.Eval$Ident')
f(7,3554,262,1,'cats/Later.value')
f(8,3554,262,1,'cats/data/Chain$$$Lambda$100.0x0000000800dbb840.apply')
f(9,3554,262,1,'cats/data/Chain$.$anonfun$1')
f(10,3554,149,1,'cats/effect/IO$$anon$2.map')
f(11,3554,149,1,'cats/effect/IO$$anon$2.map')
f(12,3554,149,1,'cats/effect/IO.map')
f(13,3554,149,1,'cats/effect/IO$Map$.apply')
f(14,3554,149,2,'cats.effect.IO$Map')
f(10,3703,113,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,3703,113,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,3703,113,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,3703,113,2,'cats.data.Chain$$$Lambda$114+0x0000000800dc2120')
f(7,3816,959,1,'cats/effect/IO.map')
f(8,3816,959,1,'cats/effect/IO$Map$.apply')
f(9,3816,959,2,'cats.effect.IO$Map')
f(7,4775,991,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,4775,991,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,4775,991,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,4775,991,2,'cats.effect.IO$$$Lambda$113+0x0000000800dc1d50')
f(5,5766,5929,1,'cats/effect/IOFiber.succeeded')
f(6,5766,111,1,'cats/data/Chain$$$Lambda$108.0x0000000800dc0980.apply')
f(7,5766,111,1,'cats/data/Chain$.loop$4$$anonfun$2$$anonfun$1')
f(8,5766,111,1,'cats/data/Chain$.fromSeq')
f(9,5766,111,1,'cats/data/ChainCompanionCompat.fromSeq$')
f(10,5766,111,1,'cats/data/ChainCompanionCompat.fromSeq')
f(11,5766,111,1,'cats/data/Chain$Wrap$.apply')
f(12,5766,111,2,'cats.data.Chain$Wrap')
f(6,5877,1163,1,'cats/effect/IO$$$Lambda$113.0x0000000800dc1d50.apply')
f(7,5877,1163,1,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1')
f(8,5877,1002,1,'cats/data/Chain$$$Lambda$106.0x0000000800dc0000.apply')
f(9,5877,1002,1,'cats/data/Chain$.loop$4$$anonfun$1$$anonfun$1')
f(10,5877,1002,1,'scala/collection/immutable/List.$colon$colon')
f(11,5877,1002,2,'scala.collection.immutable.$colon$colon')
f(8,6879,161,1,'cats/data/Chain$$$Lambda$110.0x0000000800dc1010.apply')
f(9,6879,161,1,'cats/data/Chain$.loop$4$$anonfun$3$$anonfun$1')
f(10,6879,161,1,'cats/data/Chain.concat')
f(11,6879,161,1,'cats/data/Chain$.concat')
f(12,6879,161,1,'cats/data/Chain$Append$.apply')
f(13,6879,161,2,'cats.data.Chain$Append')
f(6,7040,1357,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply')
f(7,7040,1357,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,7040,1024,1,'cats/Eval$FlatMap.value')
f(9,7040,1024,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,7040,899,1,'cats/Eval$.loop$1')
f(11,7040,395,1,'cats/Eval$$Lambda$103.0x0000000800dbf3d0.apply')
f(12,7040,395,1,'cats/Eval.map$$anonfun$1')
f(13,7040,101,1,'cats/Now$.apply')
f(14,7040,101,2,'cats.Now')
f(13,7141,294,1,'cats/data/Chain$$$Lambda$102.0x0000000800dbf000.apply')
f(14,7141,294,1,'cats/data/Chain$.loop$4$$anonfun$2')
f(15,7141,161,1,'cats/effect/IO$$anon$2.map')
f(16,7141,161,1,'cats/effect/IO$$anon$2.map')
f(17,7141,161,1,'cats/effect/IO.map')
f(18,7141,161,1,'cats/effect/IO$Map$.apply')
f(19,7141,161,2,'cats.effect.IO$Map')
f(15,7302,133,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,7302,133,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,7302,133,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,7302,133,2,'cats.data.Chain$$$Lambda$108+0x0000000800dc0980')
f(11,7435,504,1,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply')
f(12,7435,504,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(13,7435,393,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,7435,393,1,'cats/effect/IO$$anon$2.map2Eval')
f(15,7435,90,1,'cats/Eval$.now')
f(16,7435,90,1,'cats/Now$.apply')
f(17,7435,90,2,'cats.Now')
f(15,7525,162,1,'cats/effect/IO.flatMap')
f(16,7525,162,1,'cats/effect/IO$FlatMap$.apply')
f(17,7525,162,2,'cats.effect.IO$FlatMap')
f(15,7687,141,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,7687,141,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,7687,141,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,7687,141,2,'cats.effect.IO$$anon$2$$Lambda$107+0x0000000800dc05b0')
f(13,7828,111,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,7828,111,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,7828,111,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,7828,111,2,'cats.data.Chain$$$Lambda$106+0x0000000800dc0000')
f(10,7939,125,1,'cats/Eval$Ident$.apply')
f(11,7939,125,2,'cats.Eval$Ident')
f(8,8064,181,1,'cats/effect/IO.map')
f(9,8064,181,1,'cats/effect/IO$Map$.apply')
f(10,8064,181,2,'cats.effect.IO$Map')
f(8,8245,152,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,8245,152,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,8245,152,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,8245,152,2,'cats.effect.IO$$$Lambda$113+0x0000000800dc1d50')
f(6,8397,9,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,8397,3,1,'cats/effect/IO$.pure')
f(8,8397,3,1,'cats/effect/IO$Pure$.apply')
f(9,8397,3,2,'cats.effect.IO$Pure')
f(7,8400,6,1,'cats/effect/IOFiber.done')
f(8,8400,5,1,'cats/effect/CallbackStack.apply')
f(9,8400,5,1,'scala/runtime/function/JProcedure1.apply')
f(10,8400,5,1,'scala/runtime/function/JProcedure1.apply')
f(11,8400,5,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,8400,5,1,'cats/effect/IO.$anonfun$6')
f(13,8400,2,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,8400,2,1,'cats/effect/kernel/Outcome.fold$')
f(15,8400,2,1,'cats/effect/kernel/Outcome.fold')
f(16,8400,2,1,'scala/runtime/function/JProcedure1.apply')
f(17,8400,2,1,'scala/runtime/function/JProcedure1.apply')
f(18,8400,2,1,'cats/effect/IO$$Lambda$118.0x0000000800dc5550.applyVoid')
f(19,8400,2,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,8400,2,1,'scala/runtime/function/JProcedure1.apply')
f(21,8400,2,1,'scala/runtime/function/JProcedure1.apply')
f(22,8400,2,1,'cats/effect/IO$$Lambda$89.0x0000000800d556c8.applyVoid')
f(23,8400,2,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,8400,2,1,'scala/runtime/function/JProcedure1.apply')
f(25,8400,2,1,'scala/runtime/function/JProcedure1.apply')
f(26,8400,2,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57a60.applyVoid')
f(27,8400,2,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,8400,2,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,8400,2,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,8400,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,8400,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,8400,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,8400,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,8400,2,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(13,8402,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,8402,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,8402,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,8402,1,2,'cats.effect.IO$$Lambda$116+0x0000000800dc4e88')
f(16,8403,2,2,'cats.effect.IO$$Lambda$117+0x0000000800dc5148')
f(8,8405,1,1,'cats/effect/IO$.pure')
f(9,8405,1,1,'cats/effect/IO$Pure$.apply')
f(10,8405,1,2,'cats.effect.IO$Pure')
f(6,8406,2224,1,'cats/instances/ListInstances$$anon$1$$Lambda$111.0x0000000800dc15c0.apply')
f(7,8406,2224,1,'cats/instances/ListInstances.cats$instances$ListInstances$$anon$1$$_$traverse$$anonfun$1')
f(8,8406,2224,1,'cats/data/Chain.toList')
f(9,8406,1,2,'cats.data.Chain$ChainIterator')
f(9,8407,2223,1,'cats/data/Chain$ChainIterator.toList')
f(10,8407,2223,1,'scala/collection/IterableOnceOps.toList$')
f(11,8407,2223,1,'scala/collection/IterableOnceOps.toList')
f(12,8407,2223,1,'scala/collection/immutable/List.prependedAll')
f(13,8407,435,1,'cats/data/Chain$ChainIterator.next')
f(14,8407,435,1,'cats/data/Chain$ChainIterator.go$3')
f(15,8407,253,1,'scala/collection/immutable/List.$colon$colon')
f(16,8407,253,2,'scala.collection.immutable.$colon$colon')
f(15,8660,182,1,'scala/collection/immutable/List.iterator')
f(16,8660,182,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator$')
f(17,8660,182,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator')
f(18,8660,182,2,'scala.collection.StrictOptimizedLinearSeqOps$$anon$1')
f(13,8842,1788,2,'scala.collection.immutable.$colon$colon')
f(6,10630,1065,1,'kyo/bench/CollectAllBench$$Lambda$112.0x0000000800dc1988.apply')
f(7,10630,1,1,'java/lang/Long.valueOf')
f(8,10630,1,2,'java.lang.Long')
f(7,10631,1064,1,'kyo/bench/CollectAllBench.catsBench$$anonfun$1')
f(8,10631,1064,1,'scala/collection/AbstractIterable.sum')
f(9,10631,1064,1,'scala/collection/IterableOnceOps.sum$')
f(10,10631,1064,1,'scala/collection/IterableOnceOps.sum')
f(11,10631,1064,1,'scala/collection/AbstractIterable.reduce')
f(12,10631,1064,1,'scala/collection/IterableOnceOps.reduce$')
f(13,10631,1064,1,'scala/collection/IterableOnceOps.reduce')
f(14,10631,1064,1,'scala/collection/AbstractIterable.reduceLeft')
f(15,10631,1064,1,'scala/collection/IterableOnceOps.reduceLeft$')
f(16,10631,1064,1,'scala/collection/IterableOnceOps.reduceLeft')
f(17,10631,1063,1,'scala/collection/IterableOnceOps$$Lambda$115.0x0000000800dc43d8.apply')
f(18,10631,1063,1,'scala/collection/IterableOnceOps.$anonfun$sum$1')
f(19,10631,1063,1,'scala/math/Numeric$IntIsIntegral$.plus')
f(20,10631,1063,1,'scala/runtime/BoxesRunTime.boxToInteger')
f(21,10631,1063,1,'java/lang/Integer.valueOf')
f(22,10631,1063,2,'java.lang.Integer')
f(17,11694,1,1,'scala/collection/immutable/List.iterator')
f(18,11694,1,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator$')
f(19,11694,1,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator')
f(20,11694,1,2,'scala.collection.StrictOptimizedLinearSeqOps$$anon$1')
f(3,11695,13972,1,'cats/effect/IOFiber.cedeR')
f(4,11695,3347,1,'cats/effect/IOFiber.runLoop')
f(5,11695,54,1,'cats/data/Chain$$$Lambda$114.0x0000000800dc2120.apply')
f(6,11695,54,1,'cats/data/Chain$.$anonfun$1$$anonfun$1')
f(7,11695,54,1,'scala/collection/immutable/List.$colon$colon')
f(8,11695,54,2,'scala.collection.immutable.$colon$colon')
f(5,11749,124,1,'cats/effect/ArrayStack.push')
f(6,11749,124,1,'cats/effect/ArrayStack.checkAndGrow')
f(7,11749,124,2,'java.lang.Object[]')
f(5,11873,15,1,'cats/effect/ByteStack$.push')
f(6,11873,15,1,'cats/effect/ByteStack$.growIfNeeded')
f(7,11873,15,2,'int[]')
f(5,11888,2138,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply')
f(6,11888,2138,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(7,11888,1322,1,'cats/Eval$Defer.value')
f(8,11888,1322,1,'cats/Eval$.cats$Eval$$$evaluate')
f(9,11888,1101,1,'cats/Eval$.loop$1')
f(10,11888,1101,1,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply')
f(11,11888,1101,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(12,11888,858,1,'cats/effect/IO$$anon$2.map2Eval')
f(13,11888,858,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,11888,243,1,'cats/Eval$.now')
f(15,11888,243,1,'cats/Now$.apply')
f(16,11888,243,2,'cats.Now')
f(14,12131,348,1,'cats/effect/IO.flatMap')
f(15,12131,348,1,'cats/effect/IO$FlatMap$.apply')
f(16,12131,348,2,'cats.effect.IO$FlatMap')
f(14,12479,267,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,12479,267,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,12479,267,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,12479,267,2,'cats.effect.IO$$anon$2$$Lambda$107+0x0000000800dc05b0')
f(12,12746,243,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,12746,243,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,12746,243,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,12746,243,2,'cats.data.Chain$$$Lambda$106+0x0000000800dc0000')
f(9,12989,221,1,'cats/Eval$Ident$.apply')
f(10,12989,221,2,'cats.Eval$Ident')
f(7,13210,111,1,'cats/Later.value')
f(8,13210,111,1,'cats/data/Chain$$$Lambda$100.0x0000000800dbb840.apply')
f(9,13210,111,1,'cats/data/Chain$.$anonfun$1')
f(10,13210,72,1,'cats/effect/IO$$anon$2.map')
f(11,13210,72,1,'cats/effect/IO$$anon$2.map')
f(12,13210,72,1,'cats/effect/IO.map')
f(13,13210,72,1,'cats/effect/IO$Map$.apply')
f(14,13210,72,2,'cats.effect.IO$Map')
f(10,13282,39,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,13282,39,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,13282,39,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,13282,39,2,'cats.data.Chain$$$Lambda$114+0x0000000800dc2120')
f(7,13321,354,1,'cats/effect/IO.map')
f(8,13321,354,1,'cats/effect/IO$Map$.apply')
f(9,13321,354,2,'cats.effect.IO$Map')
f(7,13675,351,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,13675,351,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,13675,351,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,13675,351,2,'cats.effect.IO$$$Lambda$113+0x0000000800dc1d50')
f(5,14026,1016,1,'cats/effect/IOFiber.succeeded')
f(6,14026,48,1,'cats/data/Chain$$$Lambda$108.0x0000000800dc0980.apply')
f(7,14026,48,1,'cats/data/Chain$.loop$4$$anonfun$2$$anonfun$1')
f(8,14026,48,1,'cats/data/Chain$.fromSeq')
f(9,14026,48,1,'cats/data/ChainCompanionCompat.fromSeq$')
f(10,14026,48,1,'cats/data/ChainCompanionCompat.fromSeq')
f(11,14026,48,1,'cats/data/Chain$Wrap$.apply')
f(12,14026,48,2,'cats.data.Chain$Wrap')
f(6,14074,453,1,'cats/effect/IO$$$Lambda$113.0x0000000800dc1d50.apply')
f(7,14074,453,1,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1')
f(8,14074,379,1,'cats/data/Chain$$$Lambda$106.0x0000000800dc0000.apply')
f(9,14074,379,1,'cats/data/Chain$.loop$4$$anonfun$1$$anonfun$1')
f(10,14074,379,1,'scala/collection/immutable/List.$colon$colon')
f(11,14074,379,2,'scala.collection.immutable.$colon$colon')
f(8,14453,74,1,'cats/data/Chain$$$Lambda$110.0x0000000800dc1010.apply')
f(9,14453,74,1,'cats/data/Chain$.loop$4$$anonfun$3$$anonfun$1')
f(10,14453,74,1,'cats/data/Chain.concat')
f(11,14453,74,1,'cats/data/Chain$.concat')
f(12,14453,74,1,'cats/data/Chain$Append$.apply')
f(13,14453,74,2,'cats.data.Chain$Append')
f(6,14527,515,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply')
f(7,14527,515,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,14527,403,1,'cats/Eval$FlatMap.value')
f(9,14527,403,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,14527,364,1,'cats/Eval$.loop$1')
f(11,14527,150,1,'cats/Eval$$Lambda$103.0x0000000800dbf3d0.apply')
f(12,14527,150,1,'cats/Eval.map$$anonfun$1')
f(13,14527,42,1,'cats/Now$.apply')
f(14,14527,42,2,'cats.Now')
f(13,14569,108,1,'cats/data/Chain$$$Lambda$102.0x0000000800dbf000.apply')
f(14,14569,108,1,'cats/data/Chain$.loop$4$$anonfun$2')
f(15,14569,73,1,'cats/effect/IO$$anon$2.map')
f(16,14569,73,1,'cats/effect/IO$$anon$2.map')
f(17,14569,73,1,'cats/effect/IO.map')
f(18,14569,73,1,'cats/effect/IO$Map$.apply')
f(19,14569,73,2,'cats.effect.IO$Map')
f(15,14642,35,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,14642,35,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,14642,35,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,14642,35,2,'cats.data.Chain$$$Lambda$108+0x0000000800dc0980')
f(11,14677,214,1,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply')
f(12,14677,214,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(13,14677,161,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,14677,161,1,'cats/effect/IO$$anon$2.map2Eval')
f(15,14677,31,1,'cats/Eval$.now')
f(16,14677,31,1,'cats/Now$.apply')
f(17,14677,31,2,'cats.Now')
f(15,14708,61,1,'cats/effect/IO.flatMap')
f(16,14708,61,1,'cats/effect/IO$FlatMap$.apply')
f(17,14708,61,2,'cats.effect.IO$FlatMap')
f(15,14769,69,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,14769,69,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,14769,69,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,14769,69,2,'cats.effect.IO$$anon$2$$Lambda$107+0x0000000800dc05b0')
f(13,14838,53,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,14838,53,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,14838,53,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,14838,53,2,'cats.data.Chain$$$Lambda$106+0x0000000800dc0000')
f(10,14891,39,1,'cats/Eval$Ident$.apply')
f(11,14891,39,2,'cats.Eval$Ident')
f(8,14930,54,1,'cats/effect/IO.map')
f(9,14930,54,1,'cats/effect/IO$Map$.apply')
f(10,14930,54,2,'cats.effect.IO$Map')
f(8,14984,58,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,14984,58,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,14984,58,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,14984,58,2,'cats.effect.IO$$$Lambda$113+0x0000000800dc1d50')
f(4,15042,10625,1,'cats/effect/IOFiber.succeeded')
f(5,15042,10625,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8d788.apply')
f(6,15042,10625,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,15042,10625,1,'kyo/bench/CollectAllBench.catsBench')
f(8,15042,6702,1,'cats/Traverse$ToTraverseOps$$anon$3.sequence')
f(9,15042,6702,1,'cats/Traverse$Ops.sequence$')
f(10,15042,6702,1,'cats/Traverse$Ops.sequence')
f(11,15042,6702,1,'cats/instances/ListInstances$$anon$1.sequence')
f(12,15042,6702,1,'cats/Traverse.sequence$')
f(13,15042,6702,1,'cats/Traverse.sequence')
f(14,15042,6702,1,'cats/instances/ListInstances$$anon$1.traverse')
f(15,15042,6702,1,'cats/instances/ListInstances$$anon$1.traverse')
f(16,15042,6089,1,'cats/data/Chain$.traverseViaChain')
f(17,15042,1458,1,'cats/Eval$FlatMap.value')
f(18,15042,1458,1,'cats/Eval$.cats$Eval$$$evaluate')
f(19,15042,1456,1,'cats/Eval$.loop$1')
f(20,15042,1,1,'cats/Eval$$Lambda$103.0x0000000800dbf3d0.apply')
f(21,15042,1,1,'cats/Eval.map$$anonfun$1')
f(22,15042,1,1,'cats/Now$.apply')
f(23,15042,1,2,'cats.Now')
f(20,15043,2,1,'cats/Eval$$anon$1$$Lambda$105.0x0000000800dbfb70.apply')
f(21,15043,2,1,'cats/Eval$$anon$1.$init$$$anonfun$1')
f(22,15043,2,1,'cats/Eval$$anon$2.<init>')
f(23,15043,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(24,15043,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(25,15043,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(26,15043,2,2,'cats.Eval$$anon$2$$Lambda$109+0x0000000800dc0d50')
f(20,15045,454,1,'cats/Eval$$anon$2$$Lambda$109.0x0000000800dc0d50.apply')
f(21,15045,454,1,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2')
f(22,15045,451,1,'cats/Eval$$anon$1$$Lambda$105.0x0000000800dbfb70.apply')
f(23,15045,451,1,'cats/Eval$$anon$1.$init$$$anonfun$1')
f(24,15045,217,2,'cats.Eval$$anon$2')
f(24,15262,234,1,'cats/Eval$$anon$2.<init>')
f(25,15262,234,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(26,15262,234,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(27,15262,234,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(28,15262,234,2,'cats.Eval$$anon$2$$Lambda$109+0x0000000800dc0d50')
f(22,15496,3,1,'cats/data/Chain$$$Lambda$104.0x0000000800dbf7a0.apply')
f(23,15496,3,1,'cats/data/Chain$.loop$4$$anonfun$3')
f(24,15496,3,1,'cats/effect/IO$$anon$2.map2Eval')
f(25,15496,3,1,'cats/effect/IO$$anon$2.map2Eval')
f(26,15496,1,1,'cats/Eval$.now')
f(27,15496,1,1,'cats/Now$.apply')
f(28,15496,1,2,'cats.Now')
f(26,15497,2,1,'cats/effect/IO.flatMap')
f(27,15497,2,1,'cats/effect/IO$FlatMap$.apply')
f(28,15497,2,2,'cats.effect.IO$FlatMap')
f(20,15499,257,1,'cats/Eval$Many$.apply')
f(21,15499,257,2,'cats.Eval$Many')
f(20,15756,6,1,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply')
f(21,15756,6,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(22,15756,6,1,'cats/effect/IO$$anon$2.map2Eval')
f(23,15756,6,1,'cats/effect/IO$$anon$2.map2Eval')
f(24,15756,2,1,'cats/Eval$.now')
f(25,15756,2,1,'cats/Now$.apply')
f(26,15756,2,2,'cats.Now')
f(24,15758,4,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(25,15758,4,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(26,15758,4,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(27,15758,4,2,'cats.effect.IO$$anon$2$$Lambda$107+0x0000000800dc05b0')
f(20,15762,708,1,'cats/data/Chain$$$Lambda$104.0x0000000800dbf7a0.apply')
f(21,15762,708,1,'cats/data/Chain$.loop$4$$anonfun$3')
f(22,15762,588,1,'cats/effect/IO$$anon$2.map2Eval')
f(23,15762,588,1,'cats/effect/IO$$anon$2.map2Eval')
f(24,15762,141,1,'cats/Eval$.now')
f(25,15762,141,1,'cats/Now$.apply')
f(26,15762,141,2,'cats.Now')
f(24,15903,225,1,'cats/effect/IO.flatMap')
f(25,15903,225,1,'cats/effect/IO$FlatMap$.apply')
f(26,15903,225,2,'cats.effect.IO$FlatMap')
f(24,16128,222,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(25,16128,222,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(26,16128,222,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(27,16128,222,2,'cats.effect.IO$$anon$2$$Lambda$107+0x0000000800dc05b0')
f(22,16350,120,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(23,16350,120,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(24,16350,120,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(25,16350,120,2,'cats.data.Chain$$$Lambda$110+0x0000000800dc1010')
f(20,16470,28,1,'cats/data/Chain$$$Lambda$99.0x0000000800dbb280.apply')
f(21,16470,28,1,'cats/data/Chain$.$anonfun$2')
f(22,16470,28,1,'cats/data/Chain$.loop$4')
f(23,16470,7,1,'cats/Eval$.defer')
f(24,16470,7,2,'cats.Eval$$anon$5')
f(23,16477,2,1,'cats/Eval$.later')
f(24,16477,2,2,'cats.Later')
f(23,16479,2,1,'cats/Eval.map')
f(24,16479,2,1,'cats/Eval.flatMap')
f(25,16479,2,2,'cats.Eval$$anon$3')
f(23,16481,16,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(24,16481,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(25,16481,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(26,16481,3,2,'cats.data.Chain$$$Lambda$102+0x0000000800dbf000')
f(24,16484,13,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800dbe000.newInvokeSpecial')
f(25,16484,13,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(26,16484,13,2,'cats.data.Chain$$$Lambda$101+0x0000000800dbbb00')
f(23,16497,1,1,'java/lang/invoke/LambdaForm$MH.0x0000000800dbdc00.linkToTargetMethod')
f(24,16497,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800dbd400.newInvokeSpecial')
f(25,16497,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(26,16497,1,2,'cats.data.Chain$$$Lambda$100+0x0000000800dbb840')
f(19,16498,2,1,'cats/Eval$Ident$.apply')
f(20,16498,2,2,'cats.Eval$Ident')
f(17,16500,4631,1,'cats/data/Chain$.loop$4')
f(18,16500,2,1,'cats/Eval$.defer')
f(19,16500,2,2,'cats.Eval$$anon$5')
f(18,16502,516,1,'cats/Eval.flatMap')
f(19,16502,259,2,'cats.Eval$$anon$1')
f(19,16761,257,1,'cats/Eval$$anon$1.<init>')
f(20,16761,257,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,16761,257,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,16761,257,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,16761,257,2,'cats.Eval$$anon$1$$Lambda$105+0x0000000800dbfb70')
f(18,17018,3882,1,'cats/data/Chain$.loop$4')
f(19,17018,863,1,'cats/Eval$.defer')
f(20,17018,863,2,'cats.Eval$$anon$5')
f(19,17881,288,1,'cats/Eval$.later')
f(20,17881,288,2,'cats.Later')
f(19,18169,396,1,'cats/Eval.map')
f(20,18169,240,1,'cats/Eval.flatMap')
f(21,18169,240,2,'cats.Eval$$anon$3')
f(20,18409,156,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,18409,156,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,18409,156,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,18409,156,2,'cats.Eval$$Lambda$103+0x0000000800dbf3d0')
f(19,18565,2018,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,18565,241,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(21,18565,241,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,18565,241,2,'cats.data.Chain$$$Lambda$102+0x0000000800dbf000')
f(20,18806,1777,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800dbe000.newInvokeSpecial')
f(21,18806,1777,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,18806,1777,2,'cats.data.Chain$$$Lambda$101+0x0000000800dbbb00')
f(19,20583,317,1,'java/lang/invoke/LambdaForm$MH.0x0000000800dbdc00.linkToTargetMethod')
f(20,20583,317,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800dbd400.newInvokeSpecial')
f(21,20583,317,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,20583,317,2,'cats.data.Chain$$$Lambda$100+0x0000000800dbb840')
f(18,20900,231,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,20900,231,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,20900,231,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,20900,231,2,'cats.data.Chain$$$Lambda$104+0x0000000800dbf7a0')
f(16,21131,2,1,'cats/effect/IO$$anon$2.map')
f(17,21131,2,1,'cats/effect/IO$$anon$2.map')
f(18,21131,2,1,'cats/effect/IO.map')
f(19,21131,2,1,'cats/effect/IO$Map$.apply')
f(20,21131,2,2,'cats.effect.IO$Map')
f(16,21133,19,1,'cats/kernel/instances/StaticMethods$.wrapMutableIndexedSeq')
f(17,21133,19,2,'cats.kernel.instances.StaticMethods$WrappedIndexedSeq')
f(16,21152,4,2,'java.lang.Object[]')
f(16,21156,587,1,'scala/collection/mutable/AbstractBuffer.$plus$plus$eq')
f(17,21156,587,1,'scala/collection/mutable/Growable.$plus$plus$eq$')
f(18,21156,587,1,'scala/collection/mutable/Growable.$plus$plus$eq')
f(19,21156,587,1,'scala/collection/mutable/ArrayBuffer.addAll')
f(20,21156,587,1,'scala/collection/mutable/ArrayBuffer.addAll')
f(21,21156,587,1,'scala/collection/mutable/Growable.addAll$')
f(22,21156,587,1,'scala/collection/mutable/Growable.addAll')
f(23,21156,587,1,'scala/collection/mutable/ArrayBuffer.addOne')
f(24,21156,587,1,'scala/collection/mutable/ArrayBuffer.addOne')
f(25,21156,587,1,'scala/collection/mutable/ArrayBuffer.ensureAdditionalSize')
f(26,21156,587,1,'scala/collection/mutable/ArrayBuffer$.scala$collection$mutable$ArrayBuffer$$ensureSize')
f(27,21156,552,2,'java.lang.Object[]')
f(27,21708,35,5,'java.lang.Object[]')
f(16,21743,1,1,'scala/runtime/ScalaRunTime$.genericWrapArray')
f(17,21743,1,1,'scala/collection/immutable/ArraySeq$.unsafeWrapArray')
f(18,21743,1,2,'scala.collection.immutable.ArraySeq$ofRef')
f(8,21744,1732,1,'scala/collection/AbstractIterable.toList')
f(9,21744,1732,1,'scala/collection/IterableOnceOps.toList$')
f(10,21744,1732,1,'scala/collection/IterableOnceOps.toList')
f(11,21744,1732,1,'scala/collection/immutable/List.prependedAll')
f(12,21744,1725,2,'scala.collection.immutable.$colon$colon')
f(12,23469,7,1,'scala/collection/immutable/Vector.iterator')
f(13,23469,7,2,'scala.collection.immutable.NewVectorIterator')
f(8,23476,2191,1,'scala/collection/immutable/Range.map')
f(9,23476,1784,1,'kyo/bench/CollectAllBench$$Lambda$94.0x0000000800d5eb00.apply')
f(10,23476,1784,1,'kyo/bench/CollectAllBench.$anonfun$adapted$2')
f(11,23476,1784,1,'kyo/bench/CollectAllBench.$anonfun$3')
f(12,23476,1784,1,'cats/effect/IO$.apply')
f(13,23476,1784,1,'cats/effect/IO$.delay')
f(14,23476,1784,1,'cats/effect/IO$Delay$.apply')
f(15,23476,1784,2,'cats.effect.IO$Delay')
f(9,25260,22,1,'scala/collection/SeqFactory$Delegate.newBuilder')
f(10,25260,22,1,'scala/collection/immutable/Vector$.newBuilder')
f(11,25260,22,1,'scala/collection/immutable/Vector$.newBuilder')
f(12,25260,7,2,'scala.collection.immutable.VectorBuilder')
f(12,25267,15,1,'scala/collection/immutable/VectorBuilder.<init>')
f(13,25267,15,2,'java.lang.Object[]')
f(9,25282,365,1,'scala/collection/immutable/VectorBuilder.addOne')
f(10,25282,365,1,'scala/collection/immutable/VectorBuilder.addOne')
f(11,25282,365,1,'scala/collection/immutable/VectorBuilder.advance')
f(12,25282,365,1,'scala/collection/immutable/VectorBuilder.advance1')
f(13,25282,10,2,'java.lang.Object[][]')
f(13,25292,355,2,'java.lang.Object[]')
f(9,25647,20,1,'scala/collection/immutable/VectorBuilder.result')
f(10,25647,20,1,'scala/collection/immutable/VectorBuilder.result')
f(11,25647,5,1,'java/util/Arrays.copyOf')
f(12,25647,5,2,'java.lang.Object[]')
f(11,25652,15,1,'java/util/Arrays.copyOfRange')
f(12,25652,15,2,'java.lang.Object[][]')
f(3,25667,375,1,'cats/effect/IOFiber.execR')
f(4,25667,7,1,'cats/effect/ArrayStack.init')
f(5,25667,7,2,'java.lang.Object[]')
f(4,25674,368,1,'cats/effect/ByteStack$.create')
f(5,25674,368,2,'int[]')
f(1,26042,1,2,'java.lang.String')
f(1,26043,3013,1,'java/lang/Thread.run')
f(2,26043,3013,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,26043,3013,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,26043,3013,1,'java/util/concurrent/FutureTask.run')
f(5,26043,3013,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,26043,3013,1,'java/util/concurrent/FutureTask.run')
f(7,26043,3013,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,26043,3013,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,26043,3013,1,'java/lang/reflect/Method.invoke')
f(10,26043,3013,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,26043,3013,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,26043,3013,1,'kyo/bench/jmh_generated/CollectAllBench_forkCats_jmhTest.forkCats_Throughput')
f(13,26043,3012,1,'kyo/bench/jmh_generated/CollectAllBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,26043,3012,1,'kyo/bench/Bench.forkCats')
f(15,26043,41,1,'cats/effect/IO.flatMap')
f(16,26043,41,1,'cats/effect/IO$FlatMap$.apply')
f(17,26043,41,2,'cats.effect.IO$FlatMap')
f(15,26084,2895,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,26084,2819,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,26084,1655,1,'cats/effect/IO.unsafeRunAsync')
f(18,26084,1409,1,'cats/effect/IO.unsafeRunFiber')
f(19,26084,365,2,'cats.effect.IOFiber')
f(19,26449,804,1,'cats/effect/IOFiber.<init>')
f(20,26449,147,1,'cats/effect/ArrayStack$.apply')
f(21,26449,147,2,'cats.effect.ArrayStack')
f(20,26596,148,1,'cats/effect/CallbackStack$.apply')
f(21,26596,148,2,'cats.effect.CallbackStack')
f(20,26744,250,1,'cats/effect/IO$.async')
f(21,26744,154,2,'cats.effect.IO$$anon$3')
f(21,26898,96,1,'cats/effect/IO$IOCont$.apply')
f(22,26898,96,2,'cats.effect.IO$IOCont')
f(20,26994,124,1,'cats/effect/IO$.uncancelable')
f(21,26994,124,1,'cats/effect/IO$Uncancelable$.apply')
f(22,26994,124,2,'cats.effect.IO$Uncancelable')
f(20,27118,135,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,27118,135,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,27118,135,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,27118,76,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5ce38')
f(23,27194,59,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d428')
f(19,27253,88,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,27253,88,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,27253,88,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,27253,88,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,27253,88,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,27341,152,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,27341,152,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58400.newInvokeSpecial')
f(21,27341,152,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,27341,152,2,'cats.effect.IO$$Lambda$90+0x0000000800d5c000')
f(18,27493,246,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,27493,246,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,27493,246,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,27493,127,2,'cats.effect.IO$$Lambda$87+0x0000000800d55000')
f(21,27620,38,2,'cats.effect.IO$$Lambda$88+0x0000000800d552c0')
f(21,27658,81,2,'cats.effect.IO$$Lambda$89+0x0000000800d556c8')
f(17,27739,235,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,27974,33,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,27974,33,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,27974,33,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,27974,33,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d57a60')
f(17,28007,638,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,28007,638,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,28007,138,2,'java.lang.Object[]')
f(19,28145,134,2,'java.util.concurrent.locks.ReentrantLock')
f(19,28279,137,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,28279,137,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,28416,229,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,28416,229,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,28416,229,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,28645,165,1,'scala/concurrent/package$.blocking')
f(18,28645,165,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,28645,165,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5de08.apply')
f(20,28645,165,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,28645,165,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,28645,165,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,28645,165,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,28810,93,1,'scala/util/Either.fold')
f(18,28810,93,1,'cats/effect/IOPlatform$$Lambda$120.0x0000000800dc62d8.apply')
f(19,28810,93,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,28810,93,1,'scala/Some$.apply')
f(21,28810,93,2,'scala.Some')
f(16,28903,76,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,28903,76,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,28903,76,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,28903,76,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,28903,76,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,28903,76,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,28903,76,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,28903,76,2,'scala.concurrent.duration.FiniteDuration')
f(15,28979,76,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,28979,76,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,28979,76,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,28979,76,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8d788')
f(13,29055,1,2,'org.openjdk.jmh.results.RawResults')
f(1,29056,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,29056,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,29056,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,29056,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,29056,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,29056,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,29056,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,29056,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,29056,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,29056,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,29056,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,29056,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,29056,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,29056,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,29056,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,29056,1,2,'java.lang.Object[]')
f(7,29057,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,29057,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,29057,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,29060,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,29060,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,29060,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,29060,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,29060,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,29060,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,29065,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,29065,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,29065,3,1,'java/lang/ClassLoader.loadClass')
f(10,29065,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,29065,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,29065,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,29065,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,29065,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,29065,1,1,'java/security/CodeSource.<init>')
f(16,29065,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,29065,1,1,'java/lang/StringBuilder.append')
f(18,29065,1,1,'java/lang/AbstractStringBuilder.append')
f(19,29065,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,29065,1,1,'java/util/Arrays.copyOf')
f(21,29065,1,2,'byte[]')
f(15,29066,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,29066,1,1,'java/util/Arrays.copyOf')
f(17,29066,1,5,'byte[]')
f(14,29067,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,29067,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,29067,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,29067,1,1,'java/net/URL.<init>')
f(18,29067,1,1,'java/net/URL.<init>')
f(19,29067,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,29067,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,29067,1,1,'java/lang/StringBuilder.toString')
f(22,29067,1,1,'java/lang/StringLatin1.newString')
f(23,29067,1,2,'java.lang.String')
f(9,29068,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,29068,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,29068,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,29068,11,1,'java/io/ObjectStreamClass.lookup')
f(13,29068,11,1,'java/io/ObjectStreamClass.<init>')
f(14,29068,11,1,'java/security/AccessController.doPrivileged')
f(15,29068,11,1,'java/security/AccessController.executePrivileged')
f(16,29068,11,1,'java/io/ObjectStreamClass$2.run')
f(17,29068,11,1,'java/io/ObjectStreamClass$2.run')
f(18,29068,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,29068,2,1,'java/lang/Class.getDeclaredMethod')
f(20,29068,1,1,'java/lang/Class.methodToString')
f(21,29068,1,1,'java/lang/StringBuilder.append')
f(22,29068,1,1,'java/lang/AbstractStringBuilder.append')
f(23,29068,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,29068,1,1,'java/util/Arrays.copyOf')
f(25,29068,1,2,'byte[]')
f(20,29069,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,29069,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,29069,1,1,'java/lang/Exception.<init>')
f(23,29069,1,1,'java/lang/Throwable.<init>')
f(24,29069,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,29069,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,29069,1,2,'short[]')
f(18,29070,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,29070,3,1,'java/lang/Class.getDeclaredMethod')
f(20,29070,2,1,'java/lang/Class.methodToString')
f(21,29070,1,1,'java/lang/StringBuilder.append')
f(22,29070,1,1,'java/lang/AbstractStringBuilder.append')
f(23,29070,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,29070,1,1,'java/util/Arrays.copyOf')
f(25,29070,1,2,'byte[]')
f(21,29071,1,1,'java/lang/StringBuilder.toString')
f(22,29071,1,1,'java/lang/StringLatin1.newString')
f(23,29071,1,1,'java/util/Arrays.copyOfRange')
f(24,29071,1,2,'byte[]')
f(20,29072,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,29072,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,29072,1,1,'java/lang/Exception.<init>')
f(23,29072,1,1,'java/lang/Throwable.<init>')
f(24,29072,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,29072,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,29072,1,5,'long[]')
f(18,29073,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,29073,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,29073,1,1,'java/lang/Class.getDeclaredField')
f(21,29073,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,29073,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,29073,1,1,'java/lang/Exception.<init>')
f(24,29073,1,1,'java/lang/Throwable.<init>')
f(25,29073,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,29073,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,29073,1,2,'long[]')
f(18,29074,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,29074,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,29074,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,29074,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,29074,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,29074,1,1,'java/security/AccessController.doPrivileged')
f(24,29074,1,1,'java/security/AccessController.executePrivileged')
f(25,29074,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,29074,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,29074,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,29074,1,1,'java/security/AccessController.doPrivileged')
f(29,29074,1,1,'java/security/AccessController.executePrivileged')
f(30,29074,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,29074,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,29074,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,29074,1,1,'java/lang/ClassLoader.<init>')
f(34,29074,1,1,'java/lang/ClassLoader.<init>')
f(35,29074,1,1,'java/lang/ClassLoader.nameAndId')
f(36,29074,1,1,'java/lang/StringBuilder.<init>')
f(37,29074,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,29074,1,2,'byte[]')
f(23,29075,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,29075,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,29075,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,29075,1,2,'byte[]')
f(23,29076,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,29076,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,29076,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,29076,1,2,'byte[]')
f(23,29077,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,29077,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,29077,1,1,'java/lang/String.replace')
f(26,29077,1,1,'java/lang/StringLatin1.replace')
f(27,29077,1,2,'java.lang.String')
f(23,29078,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,29078,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,461,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1GCPhaseTimes::print()')
f(12,0,1,4,'G1GCPhaseTimes::print_post_evacuate_collection_set() const')
f(13,0,1,4,'ReferenceProcessorPhaseTimes::print_all_references(unsigned int, bool) const')
f(14,0,1,4,'ReferenceProcessorPhaseTimes::print_phase(ReferenceProcessor::RefProcPhases, unsigned int) const')
f(15,0,1,4,'outputStream::print_cr(char const*, ...)')
f(16,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(1,1,15,3,'[unknown_Java]')
f(2,1,1,1,'cats/Eval$.loop$1')
f(2,2,1,1,'cats/Eval$Defer.value')
f(2,3,1,1,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply')
f(2,4,3,1,'cats/effect/IO$$$Lambda$113.0x0000000800dc1d50.apply')
f(2,7,2,6,'cats/effect/IO$Delay.tag',0,2,0)
f(2,9,3,6,'cats/effect/IO$FlatMap.tag',0,3,0)
f(2,12,4,6,'cats/effect/IO$Map.tag',0,4,0)
f(1,16,422,1,'cats/effect/unsafe/WorkerThread.run')
f(2,17,411,1,'cats/effect/IOFiber.run')
f(3,17,230,1,'cats/effect/IOFiber.autoCedeR')
f(4,17,230,1,'cats/effect/IOFiber.runLoop')
f(5,20,3,2,'cats/effect/ArrayStack.push',3,0,0)
f(5,23,3,2,'cats/effect/ByteStack$.push',3,0,0)
f(5,26,54,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply',3,0,0)
f(6,26,54,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1',3,0,0)
f(7,26,41,1,'cats/Eval$Defer.value')
f(8,32,35,1,'cats/Eval$.cats$Eval$$$evaluate',3,0,0)
f(9,32,32,1,'cats/Eval$.loop$1')
f(10,34,30,2,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply',30,0,0)
f(11,34,30,2,'cats/data/Chain$.loop$4$$anonfun$1',30,0,0)
f(12,46,18,2,'cats/effect/IO$$anon$2.map2Eval',18,0,0)
f(13,46,18,2,'cats/effect/IO$$anon$2.map2Eval',18,0,0)
f(14,47,14,2,'cats/Eval$.now',14,0,0)
f(15,51,10,2,'cats/Now$.apply',10,0,0)
f(16,51,10,2,'cats/Now.<init>',10,0,0)
f(17,52,9,2,'cats/Eval$Leaf.<init>',9,0,0)
f(18,52,9,2,'cats/Eval.<init>',9,0,0)
f(19,52,9,2,'java/lang/Object.<init>',9,0,0)
f(14,61,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(15,61,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(9,64,3,2,'cats/Eval$Ident$.apply',3,0,0)
f(7,67,10,1,'cats/Later.value')
f(8,71,4,2,'scala/runtime/LazyVals$.CAS',4,0,0)
f(9,71,4,2,'sun/misc/Unsafe.compareAndSwapLong',4,0,0)
f(8,75,1,2,'scala/runtime/LazyVals$.get',1,0,0)
f(9,75,1,2,'sun/misc/Unsafe.getLongVolatile',1,0,0)
f(8,76,1,2,'scala/runtime/LazyVals$.setFlag',1,0,0)
f(9,76,1,2,'scala/runtime/LazyVals$.CAS',1,0,0)
f(10,76,1,2,'sun/misc/Unsafe.compareAndSwapLong',1,0,0)
f(7,77,3,3,'vtable stub')
f(5,80,4,6,'cats/effect/IO$Delay.tag',0,4,0)
f(5,84,4,6,'cats/effect/IO$FlatMap.tag',0,4,0)
f(5,88,9,6,'cats/effect/IO$Map.tag',0,9,0)
f(5,97,104,1,'cats/effect/IOFiber.succeeded')
f(6,101,2,1,'cats/data/Chain$$$Lambda$108.0x0000000800dc0980.apply')
f(6,103,4,2,'cats/effect/ArrayStack.pop',4,0,0)
f(6,107,4,2,'cats/effect/ByteStack$.pop',4,0,0)
f(7,108,3,2,'cats/effect/ByteStack$.peek',3,0,0)
f(6,111,14,1,'cats/effect/IO$$$Lambda$113.0x0000000800dc1d50.apply')
f(7,122,3,2,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1',3,0,0)
f(8,123,2,2,'cats/data/Chain$$$Lambda$106.0x0000000800dc0000.apply',2,0,0)
f(9,123,2,2,'cats/data/Chain$.loop$4$$anonfun$1$$anonfun$1',2,0,0)
f(10,123,2,2,'scala/collection/immutable/List.$colon$colon',2,0,0)
f(6,125,7,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply')
f(7,125,7,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,125,7,1,'cats/Eval$FlatMap.value')
f(9,125,7,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,125,7,1,'cats/Eval$.loop$1')
f(11,127,2,6,'cats/Eval$$anon$3.start',0,2,0)
f(11,129,3,2,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply',1,0,0)
f(12,129,3,2,'cats/data/Chain$.loop$4$$anonfun$1',3,0,0)
f(13,129,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(14,129,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(15,129,2,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',2,0,0)
f(16,129,2,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',2,0,0)
f(17,130,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(13,131,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(14,131,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(15,131,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(6,132,10,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,132,10,1,'cats/effect/IOFiber.done')
f(8,132,10,1,'cats/effect/CallbackStack.apply')
f(9,132,10,1,'scala/runtime/function/JProcedure1.apply')
f(10,132,10,1,'scala/runtime/function/JProcedure1.apply')
f(11,132,10,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,132,10,1,'cats/effect/IO.$anonfun$6')
f(13,132,10,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,132,10,1,'cats/effect/kernel/Outcome.fold$',1,0,0)
f(15,132,10,1,'cats/effect/kernel/Outcome.fold',1,0,0)
f(16,132,10,1,'scala/runtime/function/JProcedure1.apply',1,0,0)
f(17,132,10,1,'scala/runtime/function/JProcedure1.apply',1,0,0)
f(18,132,10,1,'cats/effect/IO$$Lambda$118.0x0000000800dc5550.applyVoid',1,0,0)
f(19,132,10,1,'cats/effect/IO.$anonfun$6$$anonfun$3',1,0,0)
f(20,132,1,2,'cats/effect/unsafe/StripedHashtable.remove',1,0,0)
f(20,133,9,1,'scala/runtime/function/JProcedure1.apply')
f(21,133,9,1,'scala/runtime/function/JProcedure1.apply')
f(22,133,9,1,'cats/effect/IO$$Lambda$89.0x0000000800d556c8.applyVoid')
f(23,133,9,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,133,9,1,'scala/runtime/function/JProcedure1.apply')
f(25,133,9,1,'scala/runtime/function/JProcedure1.apply')
f(26,134,8,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57a60.applyVoid')
f(27,134,8,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,134,8,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,134,8,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,134,8,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,134,8,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,134,8,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,134,8,1,'jdk/internal/misc/Unsafe.unpark')
f(34,134,8,3,'pthread_cond_signal')
f(35,134,8,5,'entry_SYSCALL_64_after_hwframe')
f(36,134,8,5,'do_syscall_64')
f(37,134,7,5,'__x64_sys_futex')
f(38,134,7,5,'do_futex')
f(39,134,7,5,'futex_wake')
f(40,134,1,5,'mark_wake_futex')
f(40,135,6,5,'wake_up_q')
f(41,135,6,5,'_raw_spin_unlock_irqrestore')
f(37,141,1,5,'syscall_enter_from_user_mode')
f(6,142,34,1,'cats/instances/ListInstances$$anon$1$$Lambda$111.0x0000000800dc15c0.apply')
f(7,142,34,1,'cats/instances/ListInstances.cats$instances$ListInstances$$anon$1$$_$traverse$$anonfun$1')
f(8,142,34,1,'cats/data/Chain.toList')
f(9,142,34,1,'cats/data/Chain$ChainIterator.toList')
f(10,142,34,1,'scala/collection/IterableOnceOps.toList$')
f(11,142,34,1,'scala/collection/IterableOnceOps.toList')
f(12,142,34,1,'scala/collection/immutable/List.prependedAll')
f(13,149,2,2,'cats/data/Chain$ChainIterator.hasNext',2,0,0)
f(13,151,15,1,'cats/data/Chain$ChainIterator.next')
f(14,151,15,2,'cats/data/Chain$ChainIterator.go$3',15,0,0)
f(15,160,1,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.hasNext',1,0,0)
f(15,161,5,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.next',5,0,0)
f(13,166,8,2,'scala/collection/immutable/$colon$colon.<init>',8,0,0)
f(14,171,3,2,'scala/runtime/Statics.releaseFence',3,0,0)
f(15,171,3,2,'java/lang/invoke/LambdaForm$MH.0x0000000800c88000.invoke_MT',3,0,0)
f(16,171,3,2,'java/lang/invoke/Invokers.checkGenericType',3,0,0)
f(13,174,2,2,'scala/collection/immutable/NewVectorIterator.next',2,0,0)
f(14,174,2,2,'scala/collection/immutable/NewVectorIterator.advance',2,0,0)
f(6,176,4,3,'itable stub')
f(6,180,21,1,'kyo/bench/CollectAllBench$$Lambda$112.0x0000000800dc1988.apply')
f(7,180,21,2,'kyo/bench/CollectAllBench.catsBench$$anonfun$1',16,0,0)
f(8,180,21,2,'scala/collection/AbstractIterable.sum',16,0,0)
f(9,180,21,2,'scala/collection/IterableOnceOps.sum$',16,0,0)
f(10,180,21,2,'scala/collection/IterableOnceOps.sum',16,0,0)
f(11,180,21,2,'scala/collection/AbstractIterable.reduce',16,0,0)
f(12,180,21,2,'scala/collection/IterableOnceOps.reduce$',16,0,0)
f(13,180,21,2,'scala/collection/IterableOnceOps.reduce',16,0,0)
f(14,180,21,2,'scala/collection/AbstractIterable.reduceLeft',16,0,0)
f(15,180,21,2,'scala/collection/IterableOnceOps.reduceLeft$',16,0,0)
f(16,180,21,2,'scala/collection/IterableOnceOps.reduceLeft',16,0,0)
f(17,180,13,2,'scala/collection/IterableOnceOps$$Lambda$115.0x0000000800dc43d8.apply',9,0,0)
f(18,180,13,2,'scala/collection/IterableOnceOps.$anonfun$sum$1',9,0,0)
f(19,180,13,2,'scala/math/Numeric$IntIsIntegral$.plus',9,0,0)
f(20,180,13,2,'scala/runtime/BoxesRunTime.boxToInteger',9,0,0)
f(21,187,6,2,'java/lang/Integer.valueOf',2,0,0)
f(22,188,5,1,'java/lang/Integer.<init>',1,0,0)
f(23,189,4,1,'java/lang/Number.<init>')
f(17,193,1,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.hasNext',1,0,0)
f(17,194,6,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.next',5,0,0)
f(18,198,1,3,'pthread_cond_broadcast')
f(19,198,1,5,'entry_SYSCALL_64_after_hwframe')
f(20,198,1,5,'do_syscall_64')
f(21,198,1,5,'__x64_sys_futex')
f(22,198,1,5,'do_futex')
f(23,198,1,5,'futex_wake')
f(24,198,1,5,'wake_up_q')
f(25,198,1,5,'_raw_spin_unlock_irqrestore')
f(18,199,1,2,'scala/collection/immutable/$colon$colon.tail',1,0,0)
f(19,199,1,2,'scala/collection/immutable/$colon$colon.tail',1,0,0)
f(20,199,1,2,'scala/collection/immutable/$colon$colon.next',1,0,0)
f(17,200,1,2,'scala/collection/immutable/List.iterator',1,0,0)
f(18,200,1,2,'scala/collection/StrictOptimizedLinearSeqOps.iterator$',1,0,0)
f(19,200,1,2,'scala/collection/StrictOptimizedLinearSeqOps.iterator',1,0,0)
f(5,201,31,2,'kyo/bench/CollectAllBench$$Lambda$95.0x0000000800d5fb70.apply',31,0,0)
f(5,232,15,3,'vtable stub')
f(3,247,180,1,'cats/effect/IOFiber.cedeR')
f(4,247,82,1,'cats/effect/IOFiber.runLoop')
f(5,250,5,2,'cats/effect/ArrayStack.push',5,0,0)
f(6,253,2,2,'cats/effect/ArrayStack.checkAndGrow',2,0,0)
f(5,255,1,2,'cats/effect/ByteStack$.push',1,0,0)
f(5,256,23,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply',1,0,0)
f(6,256,23,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1',1,0,0)
f(7,256,17,1,'cats/Eval$Defer.value')
f(8,259,14,1,'cats/Eval$.cats$Eval$$$evaluate',2,0,0)
f(9,260,12,1,'cats/Eval$.loop$1')
f(10,263,9,2,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply',9,0,0)
f(11,263,9,2,'cats/data/Chain$.loop$4$$anonfun$1',9,0,0)
f(12,267,5,2,'cats/effect/IO$$anon$2.map2Eval',5,0,0)
f(13,267,5,2,'cats/effect/IO$$anon$2.map2Eval',5,0,0)
f(14,267,2,2,'cats/Eval$.now',2,0,0)
f(15,267,2,2,'cats/Now$.apply',2,0,0)
f(16,267,2,2,'cats/Now.<init>',2,0,0)
f(17,267,2,2,'cats/Eval$Leaf.<init>',2,0,0)
f(18,267,2,2,'cats/Eval.<init>',2,0,0)
f(19,267,2,2,'java/lang/Object.<init>',2,0,0)
f(14,269,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(15,269,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(9,272,1,2,'cats/Eval$Ident$.apply',1,0,0)
f(7,273,5,1,'cats/Later.value')
f(8,276,1,2,'scala/runtime/LazyVals$.CAS',1,0,0)
f(9,276,1,2,'sun/misc/Unsafe.compareAndSwapLong',1,0,0)
f(8,277,1,2,'scala/runtime/LazyVals$.setFlag',1,0,0)
f(9,277,1,2,'scala/runtime/LazyVals$.CAS',1,0,0)
f(10,277,1,2,'sun/misc/Unsafe.compareAndSwapLong',1,0,0)
f(7,278,1,3,'vtable stub')
f(5,279,1,6,'cats/effect/IO$Delay.tag',0,1,0)
f(5,280,4,6,'cats/effect/IO$FlatMap.tag',0,4,0)
f(5,284,4,6,'cats/effect/IO$Map.tag',0,4,0)
f(5,288,2,2,'cats/effect/IOFiber.rescheduleFiber',2,0,0)
f(5,290,21,1,'cats/effect/IOFiber.succeeded')
f(6,294,2,1,'cats/data/Chain$$$Lambda$108.0x0000000800dc0980.apply')
f(6,296,3,2,'cats/effect/ByteStack$.pop',3,0,0)
f(7,298,1,2,'cats/effect/ByteStack$.peek',1,0,0)
f(6,299,5,1,'cats/effect/IO$$$Lambda$113.0x0000000800dc1d50.apply')
f(7,303,1,2,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1',1,0,0)
f(8,303,1,2,'cats/data/Chain$$$Lambda$110.0x0000000800dc1010.apply',1,0,0)
f(6,304,5,1,'cats/effect/IO$$anon$2$$Lambda$107.0x0000000800dc05b0.apply',1,0,0)
f(7,304,5,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1',1,0,0)
f(8,304,4,1,'cats/Eval$FlatMap.value')
f(9,304,4,1,'cats/Eval$.cats$Eval$$$evaluate',1,0,0)
f(10,304,3,1,'cats/Eval$.loop$1')
f(11,304,1,6,'cats/Eval$$anon$3.start',0,1,0)
f(11,305,2,2,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply',2,0,0)
f(12,305,2,2,'cats/data/Chain$.loop$4$$anonfun$1',2,0,0)
f(13,305,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(14,305,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(15,305,2,2,'cats/Eval$.now',2,0,0)
f(16,305,2,2,'cats/Now$.apply',2,0,0)
f(17,305,2,2,'cats/Now.<init>',2,0,0)
f(18,305,2,2,'cats/Eval$Leaf.<init>',2,0,0)
f(19,305,2,2,'cats/Eval.<init>',2,0,0)
f(20,305,2,2,'java/lang/Object.<init>',2,0,0)
f(10,307,1,2,'cats/Eval$Ident$.apply',1,0,0)
f(8,308,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(9,308,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(10,308,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(6,309,2,3,'itable stub')
f(5,311,14,2,'kyo/bench/CollectAllBench$$Lambda$95.0x0000000800d5fb70.apply',14,0,0)
f(5,325,4,3,'vtable stub')
f(4,329,98,1,'cats/effect/IOFiber.succeeded')
f(5,329,98,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8d788.apply')
f(6,329,98,1,'kyo/bench/Bench.forkCats$$anonfun$1',7,0,0)
f(7,329,98,1,'kyo/bench/CollectAllBench.catsBench',7,0,0)
f(8,331,63,1,'cats/Traverse$ToTraverseOps$$anon$3.sequence')
f(9,331,63,1,'cats/Traverse$Ops.sequence$')
f(10,331,63,1,'cats/Traverse$Ops.sequence')
f(11,331,63,1,'cats/instances/ListInstances$$anon$1.sequence')
f(12,331,63,1,'cats/Traverse.sequence$')
f(13,331,63,1,'cats/Traverse.sequence')
f(14,331,63,1,'cats/instances/ListInstances$$anon$1.traverse')
f(15,331,63,1,'cats/instances/ListInstances$$anon$1.traverse')
f(16,331,47,1,'cats/data/Chain$.traverseViaChain')
f(17,331,17,1,'cats/Eval$FlatMap.value')
f(18,331,17,1,'cats/Eval$.cats$Eval$$$evaluate')
f(19,331,17,1,'cats/Eval$.loop$1')
f(20,332,4,1,'cats/Eval$$anon$2$$Lambda$109.0x0000000800dc0d50.apply')
f(21,332,4,2,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2',2,0,0)
f(22,333,3,2,'cats/Eval$$anon$1$$Lambda$105.0x0000000800dbfb70.apply',1,0,0)
f(23,334,2,2,'cats/Eval$$anon$1.$init$$$anonfun$1',2,0,0)
f(24,334,2,2,'cats/Eval$$anon$2.<init>',2,0,0)
f(25,335,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(26,335,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(27,335,1,2,'cats/Eval$$anon$2$$Lambda$109.0x0000000800dc0d50.<init>',1,0,0)
f(20,336,1,6,'cats/Eval$$anon$2.start',0,1,0)
f(20,337,2,2,'cats/data/Chain$$$Lambda$101.0x0000000800dbbb00.apply',2,0,0)
f(21,337,2,2,'cats/data/Chain$.loop$4$$anonfun$1',2,0,0)
f(22,337,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(23,337,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(24,337,2,2,'cats/Eval$.now',2,0,0)
f(20,339,3,1,'cats/data/Chain$$$Lambda$104.0x0000000800dbf7a0.apply')
f(21,340,2,2,'cats/data/Chain$.loop$4$$anonfun$3',1,0,0)
f(22,340,2,2,'cats/effect/IO$$anon$2.map2Eval',1,0,0)
f(23,341,1,2,'cats/effect/IO$$anon$2.map2Eval',1,0,0)
f(24,341,1,2,'cats/Eval$.now',1,0,0)
f(25,341,1,2,'cats/Now$.apply',1,0,0)
f(20,342,6,3,'itable stub')
f(17,348,30,1,'cats/data/Chain$.loop$4')
f(18,348,1,2,'cats/Eval$.defer',1,0,0)
f(19,348,1,2,'cats/Eval$$anon$5.<init>',1,0,0)
f(20,348,1,2,'cats/Eval$Defer.<init>',1,0,0)
f(18,349,3,2,'cats/Eval$.later',3,0,0)
f(19,350,2,2,'cats/Later.<init>',2,0,0)
f(18,352,8,2,'cats/Eval.map',8,0,0)
f(19,352,5,2,'cats/Eval.flatMap',5,0,0)
f(19,357,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(20,357,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(21,357,1,2,'cats/Eval$$Lambda$103.0x0000000800dbf3d0.<init>',1,0,0)
f(21,358,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(21,359,1,2,'java/lang/invoke/DirectMethodHandle.constructorMethod',1,0,0)
f(18,360,16,1,'cats/data/Chain$.loop$4')
f(19,361,1,2,'cats/Eval$.later',1,0,0)
f(20,361,1,2,'cats/Later.<init>',1,0,0)
f(21,361,1,2,'cats/Eval$Leaf.<init>',1,0,0)
f(22,361,1,2,'cats/Eval.<init>',1,0,0)
f(19,362,12,2,'cats/Eval.flatMap',12,0,0)
f(20,362,12,2,'cats/Eval$$anon$1.<init>',12,0,0)
f(19,374,2,2,'cats/Eval.map',2,0,0)
f(18,376,1,2,'cats/kernel/instances/StaticMethods$WrappedIndexedSeq.apply',1,0,0)
f(18,377,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(19,377,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800dbe000.newInvokeSpecial',1,0,0)
f(16,378,16,1,'scala/collection/mutable/AbstractBuffer.$plus$plus$eq')
f(17,378,16,1,'scala/collection/mutable/Growable.$plus$plus$eq$')
f(18,378,16,1,'scala/collection/mutable/Growable.$plus$plus$eq')
f(19,378,16,1,'scala/collection/mutable/ArrayBuffer.addAll')
f(20,378,16,1,'scala/collection/mutable/ArrayBuffer.addAll')
f(21,378,16,1,'scala/collection/mutable/Growable.addAll$')
f(22,378,16,1,'scala/collection/mutable/Growable.addAll')
f(23,380,3,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.next',3,0,0)
f(23,383,11,2,'scala/collection/mutable/ArrayBuffer.addOne',11,0,0)
f(24,383,11,2,'scala/collection/mutable/ArrayBuffer.addOne',11,0,0)
f(25,383,8,2,'scala/collection/mutable/ArrayBuffer.ensureAdditionalSize',8,0,0)
f(26,383,1,2,'scala/collection/mutable/ArrayBuffer$.scala$collection$mutable$ArrayBuffer$$ensureSize',1,0,0)
f(27,383,1,3,'jint_disjoint_arraycopy')
f(26,384,5,2,'scala/collection/mutable/ArrayBuffer.array_$eq',5,0,0)
f(26,389,2,2,'scala/collection/mutable/ArrayBuffer.size0',2,0,0)
f(25,391,3,2,'scala/collection/mutable/ArrayBuffer.update',3,0,0)
f(8,394,25,1,'scala/collection/AbstractIterable.toList')
f(9,394,25,1,'scala/collection/IterableOnceOps.toList$')
f(10,394,25,1,'scala/collection/IterableOnceOps.toList')
f(11,394,25,1,'scala/collection/immutable/List.prependedAll')
f(12,408,6,2,'cats/data/Chain$ChainIterator.hasNext',6,0,0)
f(13,408,6,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.hasNext',6,0,0)
f(14,413,1,2,'scala/collection/immutable/List.isEmpty',1,0,0)
f(12,414,1,2,'scala/collection/immutable/$colon$colon.<init>',1,0,0)
f(12,415,4,2,'scala/collection/immutable/NewVectorIterator.next',4,0,0)
f(13,415,4,2,'scala/collection/immutable/NewVectorIterator.advance',4,0,0)
f(8,419,8,2,'scala/collection/immutable/Range.map',5,0,0)
f(9,421,3,2,'kyo/bench/CollectAllBench$$Lambda$94.0x0000000800d5eb00.apply',3,0,0)
f(10,421,3,2,'kyo/bench/CollectAllBench.$anonfun$adapted$2',3,0,0)
f(11,421,3,2,'kyo/bench/CollectAllBench.$anonfun$3',3,0,0)
f(12,422,2,2,'cats/effect/IO$.apply',2,0,0)
f(13,422,2,2,'cats/effect/IO$.delay',2,0,0)
f(14,422,2,2,'cats/effect/IO$Delay$.apply',2,0,0)
f(9,424,2,1,'scala/collection/immutable/VectorBuilder.addOne')
f(10,424,2,1,'scala/collection/immutable/VectorBuilder.addOne')
f(11,424,2,1,'scala/collection/immutable/VectorBuilder.advance')
f(12,424,2,1,'scala/collection/immutable/VectorBuilder.advance1')
f(9,426,1,1,'scala/collection/immutable/VectorBuilder.result')
f(10,426,1,1,'scala/collection/immutable/VectorBuilder.result')
f(11,426,1,2,'java/util/Arrays.copyOfRange',1,0,0)
f(3,427,1,1,'cats/effect/IOFiber.execR')
f(4,427,1,1,'cats/effect/IOFiber.runLoop')
f(5,427,1,3,'vtable stub')
f(2,428,5,2,'cats/effect/unsafe/ScalQueue.poll',5,0,0)
f(3,428,5,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',5,0,0)
f(4,428,1,2,'java/util/concurrent/ConcurrentLinkedQueue$Node.casItem',1,0,0)
f(5,428,1,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',1,0,0)
f(6,428,1,2,'java/lang/invoke/VarForm.getMemberName',1,0,0)
f(7,428,1,2,'java/lang/invoke/VarForm.getMemberNameOrNull',1,0,0)
f(4,429,4,2,'java/util/concurrent/ConcurrentLinkedQueue.updateHead',4,0,0)
f(5,429,4,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',4,0,0)
f(6,431,2,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',2,0,0)
f(2,433,5,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,433,5,1,'java/util/concurrent/locks/LockSupport.park')
f(4,433,5,1,'jdk/internal/misc/Unsafe.park')
f(5,433,1,3,'Unsafe_Park')
f(5,434,4,3,'[unknown]')
f(6,434,4,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,434,4,5,'entry_SYSCALL_64_after_hwframe')
f(8,434,4,5,'do_syscall_64')
f(9,434,4,5,'__x64_sys_futex')
f(10,434,4,5,'do_futex')
f(11,434,4,5,'futex_wait')
f(12,434,4,5,'futex_wait_queue_me')
f(13,434,4,5,'schedule')
f(14,434,4,5,'__schedule')
f(15,434,4,5,'finish_task_switch.isra.0')
f(1,438,23,1,'java/lang/Thread.run')
f(2,438,23,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,438,23,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,438,23,1,'java/util/concurrent/FutureTask.run')
f(5,438,23,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,438,23,1,'java/util/concurrent/FutureTask.run')
f(7,438,23,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,438,23,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,438,23,1,'java/lang/reflect/Method.invoke')
f(10,438,23,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,438,23,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,438,23,1,'kyo/bench/jmh_generated/CollectAllBench_forkCats_jmhTest.forkCats_Throughput')
f(13,438,23,1,'kyo/bench/jmh_generated/CollectAllBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,438,23,1,'kyo/bench/Bench.forkCats')
f(15,438,23,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,438,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(17,438,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(18,438,1,4,'MemAllocator::allocate() const')
f(19,438,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(20,438,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(21,438,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(22,438,1,4,'HSpaceCounters::update_used(unsigned long)')
f(16,439,22,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,439,10,1,'cats/effect/IO.unsafeRunAsync')
f(18,439,10,1,'cats/effect/IO.unsafeRunFiber')
f(19,439,10,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,439,10,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,439,10,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,439,10,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,439,10,1,'jdk/internal/misc/Unsafe.unpark')
f(24,440,9,3,'pthread_cond_signal')
f(25,440,9,5,'entry_SYSCALL_64_after_hwframe')
f(26,440,9,5,'do_syscall_64')
f(27,440,9,5,'__x64_sys_futex')
f(28,440,9,5,'do_futex')
f(29,440,9,5,'futex_wake')
f(30,441,8,5,'wake_up_q')
f(31,441,8,5,'_raw_spin_unlock_irqrestore')
f(17,449,3,2,'java/util/concurrent/ArrayBlockingQueue.<init>',3,0,0)
f(18,449,3,2,'java/util/concurrent/ArrayBlockingQueue.<init>',3,0,0)
f(19,450,1,2,'java/util/concurrent/locks/ReentrantLock.<init>',1,0,0)
f(20,450,1,2,'java/util/concurrent/locks/ReentrantLock$NonfairSync.<init>',1,0,0)
f(21,450,1,2,'java/util/concurrent/locks/ReentrantLock$Sync.<init>',1,0,0)
f(19,451,1,2,'java/util/concurrent/locks/ReentrantLock.newCondition',1,0,0)
f(20,451,1,3,'clock_gettime')
f(17,452,9,1,'scala/concurrent/package$.blocking')
f(18,452,9,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,452,9,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5de08.apply')
f(20,452,9,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,452,9,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,452,9,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,452,9,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,452,9,1,'jdk/internal/misc/Unsafe.park')
f(25,452,1,3,'Unsafe_Park')
f(26,452,1,4,'Parker::park(bool, long)')
f(25,453,8,3,'[unknown]')
f(26,453,8,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,454,7,5,'entry_SYSCALL_64_after_hwframe')
f(28,454,7,5,'do_syscall_64')
f(29,454,7,5,'__x64_sys_futex')
f(30,454,7,5,'do_futex')
f(31,454,7,5,'futex_wait')
f(32,454,7,5,'futex_wait_queue_me')
f(33,454,7,5,'schedule')
f(34,454,7,5,'__schedule')
f(35,454,7,5,'finish_task_switch.isra.0')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,28778,3,'all')
f(1,0,24931,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,24931,1,'cats/effect/IOFiber.run')
f(3,0,18487,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,18487,1,'cats/effect/IOFiber.runLoop')
f(5,0,258,1,'cats/data/Chain$$$Lambda$113.0x0000000800dc22a8.apply')
f(6,0,258,1,'cats/data/Chain$.$anonfun$1$$anonfun$1')
f(7,0,258,1,'scala/collection/immutable/List.$colon$colon')
f(8,0,258,2,'scala.collection.immutable.$colon$colon')
f(5,258,9016,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(6,258,9016,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(7,258,5465,1,'cats/Eval$Defer.value')
f(8,258,5465,1,'cats/Eval$.cats$Eval$$$evaluate')
f(9,258,4608,1,'cats/Eval$.loop$1')
f(10,258,4608,1,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply')
f(11,258,4608,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(12,258,3693,1,'cats/effect/IO$$anon$2.map2Eval')
f(13,258,3693,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,258,1009,1,'cats/Eval$.now')
f(15,258,1009,1,'cats/Now$.apply')
f(16,258,1009,2,'cats.Now')
f(14,1267,1407,1,'cats/effect/IO.flatMap')
f(15,1267,1407,1,'cats/effect/IO$FlatMap$.apply')
f(16,1267,1407,2,'cats.effect.IO$FlatMap')
f(14,2674,1277,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,2674,1277,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,2674,1277,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,2674,1277,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(12,3951,915,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,3951,915,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,3951,915,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,3951,915,2,'cats.data.Chain$$$Lambda$54+0x0000000800d97348')
f(9,4866,857,1,'cats/Eval$Ident$.apply')
f(10,4866,857,2,'cats.Eval$Ident')
f(7,5723,447,1,'cats/Later.value')
f(8,5723,447,1,'cats/data/Chain$$$Lambda$47.0x0000000800d94300.apply')
f(9,5723,447,1,'cats/data/Chain$.$anonfun$1')
f(10,5723,261,1,'cats/effect/IO$$anon$2.map')
f(11,5723,261,1,'cats/effect/IO$$anon$2.map')
f(12,5723,261,1,'cats/effect/IO.map')
f(13,5723,261,1,'cats/effect/IO$Map$.apply')
f(14,5723,261,2,'cats.effect.IO$Map')
f(10,5984,186,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,5984,186,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,5984,186,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,5984,186,2,'cats.data.Chain$$$Lambda$113+0x0000000800dc22a8')
f(7,6170,1584,1,'cats/effect/IO.map')
f(8,6170,1584,1,'cats/effect/IO$Map$.apply')
f(9,6170,1584,2,'cats.effect.IO$Map')
f(7,7754,1520,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,7754,1520,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,7754,1520,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,7754,1520,2,'cats.effect.IO$$$Lambda$112+0x0000000800dc1ed8')
f(5,9274,9213,1,'cats/effect/IOFiber.succeeded')
f(6,9274,195,1,'cats/data/Chain$$$Lambda$56.0x0000000800d93000.apply')
f(7,9274,195,1,'cats/data/Chain$.loop$4$$anonfun$2$$anonfun$1')
f(8,9274,195,1,'cats/data/Chain$.fromSeq')
f(9,9274,195,1,'cats/data/ChainCompanionCompat.fromSeq$')
f(10,9274,195,1,'cats/data/ChainCompanionCompat.fromSeq')
f(11,9274,195,1,'cats/data/Chain$Wrap$.apply')
f(12,9274,195,2,'cats.data.Chain$Wrap')
f(6,9469,1921,1,'cats/effect/IO$$$Lambda$112.0x0000000800dc1ed8.apply')
f(7,9469,1921,1,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1')
f(8,9469,1651,1,'cats/data/Chain$$$Lambda$54.0x0000000800d97348.apply')
f(9,9469,1651,1,'cats/data/Chain$.loop$4$$anonfun$1$$anonfun$1')
f(10,9469,1651,1,'scala/collection/immutable/List.$colon$colon')
f(11,9469,1651,2,'scala.collection.immutable.$colon$colon')
f(8,11120,270,1,'cats/data/Chain$$$Lambda$58.0x0000000800d938b0.apply')
f(9,11120,270,1,'cats/data/Chain$.loop$4$$anonfun$3$$anonfun$1')
f(10,11120,270,1,'cats/data/Chain.concat')
f(11,11120,270,1,'cats/data/Chain$.concat')
f(12,11120,270,1,'cats/data/Chain$Append$.apply')
f(13,11120,270,2,'cats.data.Chain$Append')
f(6,11390,2219,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(7,11390,2219,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,11390,1690,1,'cats/Eval$FlatMap.value')
f(9,11390,1690,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,11390,1495,1,'cats/Eval$.loop$1')
f(11,11390,613,1,'cats/Eval$$Lambda$51.0x0000000800d96158.apply')
f(12,11390,613,1,'cats/Eval.map$$anonfun$1')
f(13,11390,180,1,'cats/Now$.apply')
f(14,11390,180,2,'cats.Now')
f(13,11570,433,1,'cats/data/Chain$$$Lambda$50.0x0000000800d95d88.apply')
f(14,11570,433,1,'cats/data/Chain$.loop$4$$anonfun$2')
f(15,11570,249,1,'cats/effect/IO$$anon$2.map')
f(16,11570,249,1,'cats/effect/IO$$anon$2.map')
f(17,11570,249,1,'cats/effect/IO.map')
f(18,11570,249,1,'cats/effect/IO$Map$.apply')
f(19,11570,249,2,'cats.effect.IO$Map')
f(15,11819,184,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,11819,184,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,11819,184,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,11819,184,2,'cats.data.Chain$$$Lambda$56+0x0000000800d93000')
f(11,12003,882,1,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply')
f(12,12003,882,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(13,12003,705,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,12003,705,1,'cats/effect/IO$$anon$2.map2Eval')
f(15,12003,135,1,'cats/Eval$.now')
f(16,12003,135,1,'cats/Now$.apply')
f(17,12003,135,2,'cats.Now')
f(15,12138,272,1,'cats/effect/IO.flatMap')
f(16,12138,272,1,'cats/effect/IO$FlatMap$.apply')
f(17,12138,272,2,'cats.effect.IO$FlatMap')
f(15,12410,298,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,12410,298,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,12410,298,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,12410,298,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(13,12708,177,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,12708,177,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,12708,177,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,12708,177,2,'cats.data.Chain$$$Lambda$54+0x0000000800d97348')
f(10,12885,195,1,'cats/Eval$Ident$.apply')
f(11,12885,195,2,'cats.Eval$Ident')
f(8,13080,264,1,'cats/effect/IO.map')
f(9,13080,264,1,'cats/effect/IO$Map$.apply')
f(10,13080,264,2,'cats.effect.IO$Map')
f(8,13344,265,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,13344,265,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,13344,265,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,13344,265,2,'cats.effect.IO$$$Lambda$112+0x0000000800dc1ed8')
f(6,13609,18,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,13609,1,1,'cats/effect/IO$.pure')
f(8,13609,1,1,'cats/effect/IO$Pure$.apply')
f(9,13609,1,2,'cats.effect.IO$Pure')
f(7,13610,16,1,'cats/effect/IOFiber.done')
f(8,13610,13,1,'cats/effect/CallbackStack.apply')
f(9,13610,13,1,'scala/runtime/function/JProcedure1.apply')
f(10,13610,13,1,'scala/runtime/function/JProcedure1.apply')
f(11,13610,13,1,'cats/effect/IO$$Lambda$108.0x0000000800dbd7a0.applyVoid')
f(12,13610,13,1,'cats/effect/IO.$anonfun$6')
f(13,13610,1,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,13610,1,1,'cats/effect/kernel/Outcome.fold$')
f(15,13610,1,1,'cats/effect/kernel/Outcome.fold')
f(16,13610,1,1,'scala/runtime/function/JProcedure1.apply')
f(17,13610,1,1,'scala/runtime/function/JProcedure1.apply')
f(18,13610,1,1,'cats/effect/IO$$Lambda$117.0x0000000800dc56d8.applyVoid')
f(19,13610,1,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,13610,1,1,'scala/runtime/function/JProcedure1.apply')
f(21,13610,1,1,'scala/runtime/function/JProcedure1.apply')
f(22,13610,1,1,'cats/effect/IO$$Lambda$107.0x0000000800dbf720.applyVoid')
f(23,13610,1,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,13610,1,1,'scala/runtime/function/JProcedure1.apply')
f(25,13610,1,1,'scala/runtime/function/JProcedure1.apply')
f(26,13610,1,1,'cats/effect/IOPlatform$$Lambda$104.0x0000000800dbec50.applyVoid')
f(27,13610,1,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,13610,1,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,13610,1,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,13610,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,13610,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,13610,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,13610,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,13610,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(13,13611,12,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,13611,12,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,13611,12,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,13611,5,2,'cats.effect.IO$$Lambda$115+0x0000000800dc5010')
f(16,13616,5,2,'cats.effect.IO$$Lambda$116+0x0000000800dc52d0')
f(16,13621,2,2,'cats.effect.IO$$Lambda$117+0x0000000800dc56d8')
f(8,13623,3,1,'cats/effect/IO$.pure')
f(9,13623,3,1,'cats/effect/IO$Pure$.apply')
f(10,13623,3,2,'cats.effect.IO$Pure')
f(7,13626,1,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,13626,1,2,'cats.effect.kernel.Outcome$Succeeded')
f(6,13627,3269,1,'cats/instances/ListInstances$$anon$1$$Lambda$59.0x0000000800d92800.apply')
f(7,13627,3269,1,'cats/instances/ListInstances.cats$instances$ListInstances$$anon$1$$_$traverse$$anonfun$1')
f(8,13627,3269,1,'cats/data/Chain.toList')
f(9,13627,4,2,'cats.data.Chain$ChainIterator')
f(9,13631,3265,1,'cats/data/Chain$ChainIterator.toList')
f(10,13631,3265,1,'scala/collection/IterableOnceOps.toList$')
f(11,13631,3265,1,'scala/collection/IterableOnceOps.toList')
f(12,13631,3265,1,'scala/collection/immutable/List.prependedAll')
f(13,13631,676,1,'cats/data/Chain$ChainIterator.next')
f(14,13631,676,1,'cats/data/Chain$ChainIterator.go$3')
f(15,13631,388,1,'scala/collection/immutable/List.$colon$colon')
f(16,13631,388,2,'scala.collection.immutable.$colon$colon')
f(15,14019,288,1,'scala/collection/immutable/List.iterator')
f(16,14019,288,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator$')
f(17,14019,288,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator')
f(18,14019,288,2,'scala.collection.StrictOptimizedLinearSeqOps$$anon$1')
f(13,14307,2589,2,'scala.collection.immutable.$colon$colon')
f(6,16896,1591,1,'kyo/bench/CollectAllBench$$Lambda$60.0x0000000800d92bc8.apply')
f(7,16896,2,1,'java/lang/Long.valueOf')
f(8,16896,2,2,'java.lang.Long')
f(7,16898,1589,1,'kyo/bench/CollectAllBench.catsBench$$anonfun$1')
f(8,16898,1589,1,'scala/collection/AbstractIterable.sum')
f(9,16898,1589,1,'scala/collection/IterableOnceOps.sum$')
f(10,16898,1589,1,'scala/collection/IterableOnceOps.sum')
f(11,16898,1589,1,'scala/collection/AbstractIterable.reduce')
f(12,16898,1589,1,'scala/collection/IterableOnceOps.reduce$')
f(13,16898,1589,1,'scala/collection/IterableOnceOps.reduce')
f(14,16898,1589,1,'scala/collection/AbstractIterable.reduceLeft')
f(15,16898,1589,1,'scala/collection/IterableOnceOps.reduceLeft$')
f(16,16898,1589,1,'scala/collection/IterableOnceOps.reduceLeft')
f(17,16898,1587,1,'scala/collection/IterableOnceOps$$Lambda$114.0x0000000800dc4560.apply')
f(18,16898,1587,1,'scala/collection/IterableOnceOps.$anonfun$sum$1')
f(19,16898,1587,1,'scala/math/Numeric$IntIsIntegral$.plus')
f(20,16898,1587,1,'scala/runtime/BoxesRunTime.boxToInteger')
f(21,16898,1587,1,'java/lang/Integer.valueOf')
f(22,16898,1587,2,'java.lang.Integer')
f(17,18485,2,1,'scala/collection/immutable/List.iterator')
f(18,18485,2,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator$')
f(19,18485,2,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator')
f(20,18485,2,2,'scala.collection.StrictOptimizedLinearSeqOps$$anon$1')
f(3,18487,6444,1,'cats/effect/IOFiber.execR')
f(4,18487,15,1,'cats/effect/ArrayStack.init')
f(5,18487,15,2,'java.lang.Object[]')
f(4,18502,366,1,'cats/effect/ByteStack$.create')
f(5,18502,366,2,'int[]')
f(4,18868,6063,1,'cats/effect/IOFiber.runLoop')
f(5,18868,114,1,'cats/data/Chain$$$Lambda$113.0x0000000800dc22a8.apply')
f(6,18868,114,1,'cats/data/Chain$.$anonfun$1$$anonfun$1')
f(7,18868,114,1,'scala/collection/immutable/List.$colon$colon')
f(8,18868,114,2,'scala.collection.immutable.$colon$colon')
f(5,18982,268,1,'cats/effect/ArrayStack.push')
f(6,18982,268,1,'cats/effect/ArrayStack.checkAndGrow')
f(7,18982,268,2,'java.lang.Object[]')
f(5,19250,24,1,'cats/effect/ByteStack$.push')
f(6,19250,24,1,'cats/effect/ByteStack$.growIfNeeded')
f(7,19250,24,2,'int[]')
f(5,19274,3758,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(6,19274,3758,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(7,19274,2235,1,'cats/Eval$Defer.value')
f(8,19274,2235,1,'cats/Eval$.cats$Eval$$$evaluate')
f(9,19274,1851,1,'cats/Eval$.loop$1')
f(10,19274,1851,1,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply')
f(11,19274,1851,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(12,19274,1440,1,'cats/effect/IO$$anon$2.map2Eval')
f(13,19274,1440,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,19274,386,1,'cats/Eval$.now')
f(15,19274,386,1,'cats/Now$.apply')
f(16,19274,386,2,'cats.Now')
f(14,19660,541,1,'cats/effect/IO.flatMap')
f(15,19660,541,1,'cats/effect/IO$FlatMap$.apply')
f(16,19660,541,2,'cats.effect.IO$FlatMap')
f(14,20201,513,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(15,20201,513,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(16,20201,513,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(17,20201,513,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(12,20714,411,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,20714,411,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,20714,411,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,20714,411,2,'cats.data.Chain$$$Lambda$54+0x0000000800d97348')
f(9,21125,384,1,'cats/Eval$Ident$.apply')
f(10,21125,384,2,'cats.Eval$Ident')
f(7,21509,199,1,'cats/Later.value')
f(8,21509,199,1,'cats/data/Chain$$$Lambda$47.0x0000000800d94300.apply')
f(9,21509,199,1,'cats/data/Chain$.$anonfun$1')
f(10,21509,134,1,'cats/effect/IO$$anon$2.map')
f(11,21509,134,1,'cats/effect/IO$$anon$2.map')
f(12,21509,134,1,'cats/effect/IO.map')
f(13,21509,134,1,'cats/effect/IO$Map$.apply')
f(14,21509,134,2,'cats.effect.IO$Map')
f(10,21643,65,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,21643,65,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,21643,65,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,21643,65,2,'cats.data.Chain$$$Lambda$113+0x0000000800dc22a8')
f(7,21708,641,1,'cats/effect/IO.map')
f(8,21708,641,1,'cats/effect/IO$Map$.apply')
f(9,21708,641,2,'cats.effect.IO$Map')
f(7,22349,683,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,22349,683,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,22349,683,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,22349,683,2,'cats.effect.IO$$$Lambda$112+0x0000000800dc1ed8')
f(5,23032,1899,1,'cats/effect/IOFiber.succeeded')
f(6,23032,68,1,'cats/data/Chain$$$Lambda$56.0x0000000800d93000.apply')
f(7,23032,68,1,'cats/data/Chain$.loop$4$$anonfun$2$$anonfun$1')
f(8,23032,68,1,'cats/data/Chain$.fromSeq')
f(9,23032,68,1,'cats/data/ChainCompanionCompat.fromSeq$')
f(10,23032,68,1,'cats/data/ChainCompanionCompat.fromSeq')
f(11,23032,68,1,'cats/data/Chain$Wrap$.apply')
f(12,23032,68,2,'cats.data.Chain$Wrap')
f(6,23100,774,1,'cats/effect/IO$$$Lambda$112.0x0000000800dc1ed8.apply')
f(7,23100,774,1,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1')
f(8,23100,670,1,'cats/data/Chain$$$Lambda$54.0x0000000800d97348.apply')
f(9,23100,670,1,'cats/data/Chain$.loop$4$$anonfun$1$$anonfun$1')
f(10,23100,670,1,'scala/collection/immutable/List.$colon$colon')
f(11,23100,670,2,'scala.collection.immutable.$colon$colon')
f(8,23770,104,1,'cats/data/Chain$$$Lambda$58.0x0000000800d938b0.apply')
f(9,23770,104,1,'cats/data/Chain$.loop$4$$anonfun$3$$anonfun$1')
f(10,23770,104,1,'cats/data/Chain.concat')
f(11,23770,104,1,'cats/data/Chain$.concat')
f(12,23770,104,1,'cats/data/Chain$Append$.apply')
f(13,23770,104,2,'cats.data.Chain$Append')
f(6,23874,1057,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(7,23874,1057,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,23874,780,1,'cats/Eval$FlatMap.value')
f(9,23874,780,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,23874,692,1,'cats/Eval$.loop$1')
f(11,23874,290,1,'cats/Eval$$Lambda$51.0x0000000800d96158.apply')
f(12,23874,290,1,'cats/Eval.map$$anonfun$1')
f(13,23874,76,1,'cats/Now$.apply')
f(14,23874,76,2,'cats.Now')
f(13,23950,214,1,'cats/data/Chain$$$Lambda$50.0x0000000800d95d88.apply')
f(14,23950,214,1,'cats/data/Chain$.loop$4$$anonfun$2')
f(15,23950,115,1,'cats/effect/IO$$anon$2.map')
f(16,23950,115,1,'cats/effect/IO$$anon$2.map')
f(17,23950,115,1,'cats/effect/IO.map')
f(18,23950,115,1,'cats/effect/IO$Map$.apply')
f(19,23950,115,2,'cats.effect.IO$Map')
f(15,24065,99,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,24065,99,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,24065,99,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,24065,99,2,'cats.data.Chain$$$Lambda$56+0x0000000800d93000')
f(11,24164,402,1,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply')
f(12,24164,402,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(13,24164,324,1,'cats/effect/IO$$anon$2.map2Eval')
f(14,24164,324,1,'cats/effect/IO$$anon$2.map2Eval')
f(15,24164,65,1,'cats/Eval$.now')
f(16,24164,65,1,'cats/Now$.apply')
f(17,24164,65,2,'cats.Now')
f(15,24229,131,1,'cats/effect/IO.flatMap')
f(16,24229,131,1,'cats/effect/IO$FlatMap$.apply')
f(17,24229,131,2,'cats.effect.IO$FlatMap')
f(15,24360,128,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,24360,128,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,24360,128,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,24360,128,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(13,24488,78,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,24488,78,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,24488,78,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,24488,78,2,'cats.data.Chain$$$Lambda$54+0x0000000800d97348')
f(10,24566,88,1,'cats/Eval$Ident$.apply')
f(11,24566,88,2,'cats.Eval$Ident')
f(8,24654,134,1,'cats/effect/IO.map')
f(9,24654,134,1,'cats/effect/IO$Map$.apply')
f(10,24654,134,2,'cats.effect.IO$Map')
f(8,24788,143,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,24788,143,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,24788,143,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,24788,143,2,'cats.effect.IO$$$Lambda$112+0x0000000800dc1ed8')
f(1,24931,1,2,'java.lang.String')
f(1,24932,3823,1,'java/lang/Thread.run')
f(2,24932,3823,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,24932,3823,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,24932,3823,1,'java/util/concurrent/FutureTask.run')
f(5,24932,3823,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,24932,3823,1,'java/util/concurrent/FutureTask.run')
f(7,24932,3823,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,24932,3823,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,24932,3823,1,'java/lang/reflect/Method.invoke')
f(10,24932,3823,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,24932,3823,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,24932,3823,1,'kyo/bench/jmh_generated/CollectAllBench_syncCats_jmhTest.syncCats_Throughput')
f(13,24932,3823,1,'kyo/bench/jmh_generated/CollectAllBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,24932,3823,1,'kyo/bench/Bench.syncCats')
f(15,24932,62,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,24932,62,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,24932,9,1,'cats/effect/IO.unsafeRunAsync')
f(18,24932,9,1,'cats/effect/IO.unsafeRunFiber')
f(19,24932,2,2,'cats.effect.IOFiber')
f(19,24934,7,1,'cats/effect/IOFiber.<init>')
f(20,24934,1,1,'cats/effect/ArrayStack$.apply')
f(21,24934,1,2,'cats.effect.ArrayStack')
f(20,24935,3,1,'cats/effect/CallbackStack$.apply')
f(21,24935,3,2,'cats.effect.CallbackStack')
f(20,24938,1,1,'cats/effect/IO$.async')
f(21,24938,1,1,'cats/effect/IO$IOCont$.apply')
f(22,24938,1,2,'cats.effect.IO$IOCont')
f(20,24939,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,24939,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,24939,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,24939,1,2,'cats.effect.IOFiber$$Lambda$109+0x0000000800dc0618')
f(23,24940,1,2,'cats.effect.IOFiber$$Lambda$110+0x0000000800dc0c08')
f(17,24941,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,24941,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,24941,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,24941,1,2,'cats.effect.IOPlatform$$Lambda$104+0x0000000800dbec50')
f(17,24942,1,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,24942,1,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,24942,1,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,24942,1,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,24942,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,24943,51,1,'scala/util/Either.fold')
f(18,24943,51,1,'cats/effect/IOPlatform$$Lambda$119.0x0000000800dc6460.apply')
f(19,24943,51,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,24943,51,1,'scala/Some$.apply')
f(21,24943,51,2,'scala.Some')
f(15,24994,3761,1,'kyo/bench/CollectAllBench.catsBench')
f(16,24994,2443,1,'cats/Traverse$ToTraverseOps$$anon$3.sequence')
f(17,24994,2443,1,'cats/Traverse$Ops.sequence$')
f(18,24994,2443,1,'cats/Traverse$Ops.sequence')
f(19,24994,2443,1,'cats/instances/ListInstances$$anon$1.sequence')
f(20,24994,2443,1,'cats/Traverse.sequence$')
f(21,24994,2443,1,'cats/Traverse.sequence')
f(22,24994,2443,1,'cats/instances/ListInstances$$anon$1.traverse')
f(23,24994,2443,1,'cats/instances/ListInstances$$anon$1.traverse')
f(24,24994,2239,1,'cats/data/Chain$.traverseViaChain')
f(25,24994,536,1,'cats/Eval$FlatMap.value')
f(26,24994,536,1,'cats/Eval$.cats$Eval$$$evaluate')
f(27,24994,536,1,'cats/Eval$.loop$1')
f(28,24994,186,1,'cats/Eval$$anon$2$$Lambda$57.0x0000000800d935f0.apply')
f(29,24994,186,1,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2')
f(30,24994,181,1,'cats/Eval$$anon$1$$Lambda$53.0x0000000800d96b38.apply')
f(31,24994,181,1,'cats/Eval$$anon$1.$init$$$anonfun$1')
f(32,24994,89,2,'cats.Eval$$anon$2')
f(32,25083,92,1,'cats/Eval$$anon$2.<init>')
f(33,25083,92,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(34,25083,92,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(35,25083,92,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(36,25083,92,2,'cats.Eval$$anon$2$$Lambda$57+0x0000000800d935f0')
f(30,25175,5,1,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply')
f(31,25175,5,1,'cats/data/Chain$.loop$4$$anonfun$3')
f(32,25175,3,1,'cats/effect/IO$$anon$2.map2Eval')
f(33,25175,3,1,'cats/effect/IO$$anon$2.map2Eval')
f(34,25175,1,1,'cats/Eval$.now')
f(35,25175,1,1,'cats/Now$.apply')
f(36,25175,1,2,'cats.Now')
f(34,25176,1,1,'cats/effect/IO.flatMap')
f(35,25176,1,1,'cats/effect/IO$FlatMap$.apply')
f(36,25176,1,2,'cats.effect.IO$FlatMap')
f(34,25177,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(35,25177,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(36,25177,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(37,25177,1,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(32,25178,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(33,25178,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(34,25178,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(35,25178,2,2,'cats.data.Chain$$$Lambda$58+0x0000000800d938b0')
f(28,25180,79,1,'cats/Eval$Many$.apply')
f(29,25180,79,2,'cats.Eval$Many')
f(28,25259,12,1,'cats/data/Chain$$$Lambda$46.0x0000000800d8fc20.apply')
f(29,25259,12,1,'cats/data/Chain$.$anonfun$2')
f(30,25259,12,1,'cats/data/Chain$.loop$4')
f(31,25259,4,1,'cats/Eval$.defer')
f(32,25259,4,2,'cats.Eval$$anon$5')
f(31,25263,2,1,'cats/Eval.map')
f(32,25263,2,1,'cats/Eval.flatMap')
f(33,25263,2,2,'cats.Eval$$anon$3')
f(31,25265,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(32,25265,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(33,25265,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(34,25265,1,2,'cats.data.Chain$$$Lambda$50+0x0000000800d95d88')
f(32,25266,2,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d92000.newInvokeSpecial')
f(33,25266,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(34,25266,2,2,'cats.data.Chain$$$Lambda$49+0x0000000800d95ac8')
f(31,25268,3,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d91c00.linkToTargetMethod')
f(32,25268,3,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d91400.newInvokeSpecial')
f(33,25268,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(34,25268,3,2,'cats.data.Chain$$$Lambda$47+0x0000000800d94300')
f(28,25271,2,1,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply')
f(29,25271,2,1,'cats/data/Chain$.loop$4$$anonfun$1')
f(30,25271,1,1,'cats/effect/IO$$anon$2.map2Eval')
f(31,25271,1,1,'cats/effect/IO$$anon$2.map2Eval')
f(32,25271,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(33,25271,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(34,25271,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(35,25271,1,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(30,25272,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(31,25272,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(32,25272,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(33,25272,1,2,'cats.data.Chain$$$Lambda$54+0x0000000800d97348')
f(28,25273,257,1,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply')
f(29,25273,257,1,'cats/data/Chain$.loop$4$$anonfun$3')
f(30,25273,207,1,'cats/effect/IO$$anon$2.map2Eval')
f(31,25273,207,1,'cats/effect/IO$$anon$2.map2Eval')
f(32,25273,53,1,'cats/Eval$.now')
f(33,25273,53,1,'cats/Now$.apply')
f(34,25273,53,2,'cats.Now')
f(32,25326,82,1,'cats/effect/IO.flatMap')
f(33,25326,82,1,'cats/effect/IO$FlatMap$.apply')
f(34,25326,82,2,'cats.effect.IO$FlatMap')
f(32,25408,72,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(33,25408,72,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(34,25408,72,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(35,25408,72,2,'cats.effect.IO$$anon$2$$Lambda$55+0x0000000800d978f8')
f(30,25480,50,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(31,25480,50,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(32,25480,50,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(33,25480,50,2,'cats.data.Chain$$$Lambda$58+0x0000000800d938b0')
f(25,25530,1703,1,'cats/data/Chain$.loop$4')
f(26,25530,157,1,'cats/Eval.flatMap')
f(27,25530,77,2,'cats.Eval$$anon$1')
f(27,25607,80,1,'cats/Eval$$anon$1.<init>')
f(28,25607,80,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(29,25607,80,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(30,25607,80,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(31,25607,80,2,'cats.Eval$$anon$1$$Lambda$53+0x0000000800d96b38')
f(26,25687,1453,1,'cats/data/Chain$.loop$4')
f(27,25687,276,1,'cats/Eval$.defer')
f(28,25687,276,2,'cats.Eval$$anon$5')
f(27,25963,107,1,'cats/Eval$.later')
f(28,25963,107,2,'cats.Later')
f(27,26070,149,1,'cats/Eval.map')
f(28,26070,90,1,'cats/Eval.flatMap')
f(29,26070,90,2,'cats.Eval$$anon$3')
f(28,26160,59,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(29,26160,59,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(30,26160,59,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(31,26160,59,2,'cats.Eval$$Lambda$51+0x0000000800d96158')
f(27,26219,761,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(28,26219,111,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(29,26219,111,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(30,26219,111,2,'cats.data.Chain$$$Lambda$50+0x0000000800d95d88')
f(28,26330,650,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d92000.newInvokeSpecial')
f(29,26330,650,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(30,26330,650,2,'cats.data.Chain$$$Lambda$49+0x0000000800d95ac8')
f(27,26980,160,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d91c00.linkToTargetMethod')
f(28,26980,160,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d91400.newInvokeSpecial')
f(29,26980,160,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(30,26980,160,2,'cats.data.Chain$$$Lambda$47+0x0000000800d94300')
f(26,27140,92,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(27,27140,92,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(28,27140,92,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(29,27140,92,2,'cats.data.Chain$$$Lambda$52+0x0000000800d96528')
f(26,27232,1,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d90c00.linkToTargetMethod')
f(27,27232,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d90400.newInvokeSpecial')
f(28,27232,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(29,27232,1,2,'cats.data.Chain$$$Lambda$46+0x0000000800d8fc20')
f(24,27233,1,1,'cats/effect/IO$$anon$2.map')
f(25,27233,1,1,'cats/effect/IO$$anon$2.map')
f(26,27233,1,1,'cats/effect/IO.map')
f(27,27233,1,1,'cats/effect/IO$Map$.apply')
f(28,27233,1,2,'cats.effect.IO$Map')
f(24,27234,202,1,'scala/collection/mutable/AbstractBuffer.$plus$plus$eq')
f(25,27234,202,1,'scala/collection/mutable/Growable.$plus$plus$eq$')
f(26,27234,202,1,'scala/collection/mutable/Growable.$plus$plus$eq')
f(27,27234,202,1,'scala/collection/mutable/ArrayBuffer.addAll')
f(28,27234,202,1,'scala/collection/mutable/ArrayBuffer.addAll')
f(29,27234,202,1,'scala/collection/mutable/Growable.addAll$')
f(30,27234,202,1,'scala/collection/mutable/Growable.addAll')
f(31,27234,202,1,'scala/collection/mutable/ArrayBuffer.addOne')
f(32,27234,202,1,'scala/collection/mutable/ArrayBuffer.addOne')
f(33,27234,202,1,'scala/collection/mutable/ArrayBuffer.ensureAdditionalSize')
f(34,27234,202,1,'scala/collection/mutable/ArrayBuffer$.scala$collection$mutable$ArrayBuffer$$ensureSize')
f(35,27234,200,2,'java.lang.Object[]')
f(35,27434,2,5,'java.lang.Object[]')
f(24,27436,1,1,'scala/collection/mutable/ArrayBuffer$.apply')
f(25,27436,1,1,'scala/collection/IterableFactory.apply$')
f(26,27436,1,1,'scala/collection/IterableFactory.apply')
f(27,27436,1,1,'scala/collection/mutable/ArrayBuffer$.from')
f(28,27436,1,1,'scala/collection/mutable/ArrayBuffer$.from')
f(29,27436,1,2,'scala.collection.mutable.ArrayBuffer')
f(16,27437,586,1,'scala/collection/AbstractIterable.toList')
f(17,27437,586,1,'scala/collection/IterableOnceOps.toList$')
f(18,27437,586,1,'scala/collection/IterableOnceOps.toList')
f(19,27437,586,1,'scala/collection/immutable/List.prependedAll')
f(20,27437,585,2,'scala.collection.immutable.$colon$colon')
f(20,28022,1,1,'scala/collection/immutable/Vector.iterator')
f(21,28022,1,2,'scala.collection.immutable.NewVectorIterator')
f(16,28023,732,1,'scala/collection/immutable/Range.map')
f(17,28023,584,1,'kyo/bench/CollectAllBench$$Lambda$39.0x0000000800cbdc48.apply')
f(18,28023,584,1,'kyo/bench/CollectAllBench.$anonfun$adapted$2')
f(19,28023,584,1,'kyo/bench/CollectAllBench.$anonfun$3')
f(20,28023,584,1,'cats/effect/IO$.apply')
f(21,28023,584,1,'cats/effect/IO$.delay')
f(22,28023,584,1,'cats/effect/IO$Delay$.apply')
f(23,28023,584,2,'cats.effect.IO$Delay')
f(17,28607,3,1,'scala/collection/SeqFactory$Delegate.newBuilder')
f(18,28607,3,1,'scala/collection/immutable/Vector$.newBuilder')
f(19,28607,3,1,'scala/collection/immutable/Vector$.newBuilder')
f(20,28607,3,1,'scala/collection/immutable/VectorBuilder.<init>')
f(21,28607,3,2,'java.lang.Object[]')
f(17,28610,140,1,'scala/collection/immutable/VectorBuilder.addOne')
f(18,28610,140,1,'scala/collection/immutable/VectorBuilder.addOne')
f(19,28610,140,1,'scala/collection/immutable/VectorBuilder.advance')
f(20,28610,140,1,'scala/collection/immutable/VectorBuilder.advance1')
f(21,28610,4,2,'java.lang.Object[][]')
f(21,28614,136,2,'java.lang.Object[]')
f(17,28750,5,1,'scala/collection/immutable/VectorBuilder.result')
f(18,28750,5,1,'scala/collection/immutable/VectorBuilder.result')
f(19,28750,5,1,'java/util/Arrays.copyOfRange')
f(20,28750,5,2,'java.lang.Object[][]')
f(1,28755,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,28755,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,28755,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,28755,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,28755,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,28755,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,28755,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,28755,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,28755,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,28755,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,28755,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,28755,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,28755,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,28755,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,28755,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,28755,1,2,'java.lang.Object[]')
f(7,28756,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,28756,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,28756,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,28759,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,28759,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,28759,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,28759,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,28759,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,28759,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,28764,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,28764,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,28764,3,1,'java/lang/ClassLoader.loadClass')
f(10,28764,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,28764,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,28764,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,28764,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,28764,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,28764,1,1,'java/security/CodeSource.<init>')
f(16,28764,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,28764,1,1,'java/lang/StringBuilder.append')
f(18,28764,1,1,'java/lang/AbstractStringBuilder.append')
f(19,28764,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,28764,1,1,'java/util/Arrays.copyOf')
f(21,28764,1,2,'byte[]')
f(15,28765,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,28765,1,1,'java/util/Arrays.copyOf')
f(17,28765,1,5,'byte[]')
f(14,28766,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,28766,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,28766,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,28766,1,1,'java/net/URL.<init>')
f(18,28766,1,1,'java/net/URL.<init>')
f(19,28766,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,28766,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,28766,1,1,'java/lang/StringBuilder.toString')
f(22,28766,1,1,'java/lang/StringLatin1.newString')
f(23,28766,1,2,'java.lang.String')
f(9,28767,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,28767,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,28767,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,28767,11,1,'java/io/ObjectStreamClass.lookup')
f(13,28767,11,1,'java/io/ObjectStreamClass.<init>')
f(14,28767,11,1,'java/security/AccessController.doPrivileged')
f(15,28767,11,1,'java/security/AccessController.executePrivileged')
f(16,28767,11,1,'java/io/ObjectStreamClass$2.run')
f(17,28767,11,1,'java/io/ObjectStreamClass$2.run')
f(18,28767,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,28767,2,1,'java/lang/Class.getDeclaredMethod')
f(20,28767,1,1,'java/lang/Class.methodToString')
f(21,28767,1,1,'java/lang/StringBuilder.append')
f(22,28767,1,1,'java/lang/AbstractStringBuilder.append')
f(23,28767,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,28767,1,1,'java/util/Arrays.copyOf')
f(25,28767,1,2,'byte[]')
f(20,28768,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,28768,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,28768,1,1,'java/lang/Exception.<init>')
f(23,28768,1,1,'java/lang/Throwable.<init>')
f(24,28768,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,28768,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,28768,1,2,'short[]')
f(18,28769,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,28769,3,1,'java/lang/Class.getDeclaredMethod')
f(20,28769,2,1,'java/lang/Class.methodToString')
f(21,28769,1,1,'java/lang/StringBuilder.append')
f(22,28769,1,1,'java/lang/AbstractStringBuilder.append')
f(23,28769,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,28769,1,1,'java/util/Arrays.copyOf')
f(25,28769,1,2,'byte[]')
f(21,28770,1,1,'java/lang/StringBuilder.toString')
f(22,28770,1,1,'java/lang/StringLatin1.newString')
f(23,28770,1,1,'java/util/Arrays.copyOfRange')
f(24,28770,1,2,'byte[]')
f(20,28771,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,28771,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,28771,1,1,'java/lang/Exception.<init>')
f(23,28771,1,1,'java/lang/Throwable.<init>')
f(24,28771,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,28771,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,28771,1,5,'long[]')
f(18,28772,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,28772,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,28772,1,1,'java/lang/Class.getDeclaredField')
f(21,28772,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,28772,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,28772,1,1,'java/lang/Exception.<init>')
f(24,28772,1,1,'java/lang/Throwable.<init>')
f(25,28772,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,28772,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,28772,1,2,'long[]')
f(18,28773,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,28773,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,28773,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,28773,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,28773,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,28773,1,1,'java/security/AccessController.doPrivileged')
f(24,28773,1,1,'java/security/AccessController.executePrivileged')
f(25,28773,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,28773,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,28773,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,28773,1,1,'java/security/AccessController.doPrivileged')
f(29,28773,1,1,'java/security/AccessController.executePrivileged')
f(30,28773,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,28773,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,28773,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,28773,1,1,'java/lang/ClassLoader.<init>')
f(34,28773,1,1,'java/lang/ClassLoader.<init>')
f(35,28773,1,1,'java/lang/ClassLoader.nameAndId')
f(36,28773,1,1,'java/lang/StringBuilder.<init>')
f(37,28773,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,28773,1,2,'byte[]')
f(23,28774,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,28774,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,28774,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,28774,1,2,'byte[]')
f(23,28775,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,28775,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,28775,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,28775,1,2,'byte[]')
f(23,28776,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,28776,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,28776,1,1,'java/lang/String.replace')
f(26,28776,1,1,'java/lang/StringLatin1.replace')
f(27,28776,1,2,'java.lang.String')
f(23,28777,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,28777,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,462,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1Policy::record_collection_pause_end(double, bool)')
f(12,0,1,4,'G1Policy::update_survival_estimates_for_next_collection()')
f(1,1,4,3,'[unknown_Java]')
f(2,1,1,6,'cats/Eval$$anon$2.start',0,1,0)
f(2,2,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(2,4,1,6,'cats/effect/IO$Map.tag',0,1,0)
f(1,5,321,1,'cats/effect/unsafe/WorkerThread.run')
f(2,6,314,1,'cats/effect/IOFiber.run')
f(3,6,245,1,'cats/effect/IOFiber.autoCedeR')
f(4,6,245,1,'cats/effect/IOFiber.runLoop')
f(5,10,7,2,'cats/effect/ArrayStack.push',7,0,0)
f(6,14,3,2,'cats/effect/ArrayStack.checkAndGrow',3,0,0)
f(5,17,59,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(6,17,59,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(7,17,47,1,'cats/Eval$Defer.value')
f(8,19,45,1,'cats/Eval$.cats$Eval$$$evaluate',6,0,0)
f(9,19,39,1,'cats/Eval$.loop$1')
f(10,22,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(11,22,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(12,22,1,4,'MemAllocator::allocate() const')
f(13,22,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(14,22,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(15,22,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(16,22,1,4,'MutatorAllocRegion::retire(bool)')
f(17,22,1,4,'G1MonitoringSupport::update_eden_size()')
f(18,22,1,3,'pthread_mutex_lock')
f(10,23,24,2,'cats/Eval$$anon$2$$Lambda$57.0x0000000800d935f0.apply',24,0,0)
f(11,23,24,2,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2',24,0,0)
f(12,23,6,2,'cats/Eval$$anon$1$$Lambda$53.0x0000000800d96b38.apply',6,0,0)
f(13,23,6,2,'cats/Eval$$anon$1.$init$$$anonfun$1',6,0,0)
f(14,23,6,2,'cats/Eval$$anon$2.<init>',6,0,0)
f(12,29,18,2,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply',18,0,0)
f(13,29,18,2,'cats/data/Chain$.loop$4$$anonfun$3',18,0,0)
f(14,29,18,2,'cats/effect/IO$$anon$2.map2Eval',18,0,0)
f(15,37,10,2,'cats/effect/IO$$anon$2.map2Eval',10,0,0)
f(16,37,1,2,'cats/Eval$.now',1,0,0)
f(17,37,1,2,'cats/Now$.apply',1,0,0)
f(18,37,1,2,'cats/Now.<init>',1,0,0)
f(19,37,1,2,'cats/Eval$Leaf.<init>',1,0,0)
f(20,37,1,2,'cats/Eval.<init>',1,0,0)
f(16,38,9,2,'cats/effect/IO.flatMap',9,0,0)
f(17,38,9,2,'cats/effect/IO$FlatMap$.apply',9,0,0)
f(18,38,9,2,'cats/effect/IO$FlatMap.<init>',9,0,0)
f(19,38,9,2,'cats/effect/IO.<init>',9,0,0)
f(20,38,9,2,'cats/effect/IOPlatform.<init>',9,0,0)
f(10,47,11,2,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply',11,0,0)
f(11,47,11,2,'cats/data/Chain$.loop$4$$anonfun$1',11,0,0)
f(12,49,9,2,'cats/effect/IO$$anon$2.map2Eval',9,0,0)
f(13,50,8,2,'cats/effect/IO$$anon$2.map2Eval',8,0,0)
f(9,58,6,2,'cats/Eval$Ident$.apply',6,0,0)
f(7,64,12,1,'cats/Later.value')
f(8,70,1,2,'cats/data/Chain$$$Lambda$47.0x0000000800d94300.apply',1,0,0)
f(9,70,1,2,'cats/data/Chain$.$anonfun$1',1,0,0)
f(10,70,1,2,'cats/kernel/instances/StaticMethods$WrappedIndexedSeq.apply',1,0,0)
f(11,70,1,2,'scala/collection/mutable/ArrayBuffer.apply',1,0,0)
f(8,71,4,2,'scala/runtime/LazyVals$.CAS',4,0,0)
f(9,71,4,2,'sun/misc/Unsafe.compareAndSwapLong',4,0,0)
f(8,75,1,2,'scala/runtime/LazyVals$.setFlag',1,0,0)
f(9,75,1,2,'scala/runtime/LazyVals$.CAS',1,0,0)
f(10,75,1,2,'sun/misc/Unsafe.compareAndSwapLong',1,0,0)
f(5,76,3,6,'cats/effect/IO$Delay.tag',0,3,0)
f(5,79,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(5,81,1,6,'cats/effect/IO$Map.tag',0,1,0)
f(5,82,2,2,'cats/effect/IOFiber.rescheduleFiber',1,0,0)
f(6,83,1,1,'cats/effect/unsafe/WorkStealingThreadPool.reschedule')
f(5,84,130,1,'cats/effect/IOFiber.succeeded')
f(6,93,2,1,'cats/data/Chain$$$Lambda$56.0x0000000800d93000.apply')
f(6,95,4,2,'cats/effect/ArrayStack.pop',4,0,0)
f(6,99,4,2,'cats/effect/ByteStack$.pop',4,0,0)
f(7,102,1,2,'cats/effect/ByteStack$.peek',1,0,0)
f(6,103,9,1,'cats/effect/IO$$$Lambda$112.0x0000000800dc1ed8.apply')
f(7,107,5,2,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1',5,0,0)
f(8,107,5,2,'cats/data/Chain$$$Lambda$54.0x0000000800d97348.apply',5,0,0)
f(9,107,5,2,'cats/data/Chain$.loop$4$$anonfun$1$$anonfun$1',5,0,0)
f(10,107,5,2,'scala/collection/immutable/List.$colon$colon',5,0,0)
f(11,111,1,2,'scala/collection/immutable/$colon$colon.<init>',1,0,0)
f(6,112,13,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(7,112,13,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,112,13,1,'cats/Eval$FlatMap.value')
f(9,113,12,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,113,12,1,'cats/Eval$.loop$1')
f(11,114,1,2,'cats/Eval$$anon$2$$Lambda$57.0x0000000800d935f0.apply',1,0,0)
f(12,114,1,2,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2',1,0,0)
f(13,114,1,2,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply',1,0,0)
f(14,114,1,2,'cats/data/Chain$.loop$4$$anonfun$3',1,0,0)
f(15,114,1,2,'cats/effect/IO$$anon$2.map2Eval',1,0,0)
f(16,114,1,2,'cats/effect/IO$$anon$2.map2Eval',1,0,0)
f(17,114,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(18,114,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(11,115,1,2,'cats/Eval$$anon$3.start',1,0,0)
f(11,116,1,2,'cats/Eval$Many$.apply',1,0,0)
f(12,116,1,2,'cats/Eval$Many.<init>',1,0,0)
f(11,117,5,2,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply',2,0,0)
f(12,118,4,2,'cats/data/Chain$.loop$4$$anonfun$1',4,0,0)
f(13,118,4,2,'cats/effect/IO$$anon$2.map2Eval',4,0,0)
f(14,119,3,2,'cats/effect/IO$$anon$2.map2Eval',3,0,0)
f(15,120,2,2,'cats/effect/IO.flatMap',2,0,0)
f(16,120,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(11,122,2,3,'itable stub')
f(11,124,1,3,'vtable stub')
f(6,125,17,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,125,17,1,'cats/effect/IOFiber.done')
f(8,125,17,1,'cats/effect/CallbackStack.apply')
f(9,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(10,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(11,125,17,1,'cats/effect/IO$$Lambda$108.0x0000000800dbd7a0.applyVoid')
f(12,125,17,1,'cats/effect/IO.$anonfun$6')
f(13,125,17,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,125,17,1,'cats/effect/kernel/Outcome.fold$')
f(15,125,17,1,'cats/effect/kernel/Outcome.fold')
f(16,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(17,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(18,125,17,1,'cats/effect/IO$$Lambda$117.0x0000000800dc56d8.applyVoid')
f(19,125,17,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(21,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(22,125,17,1,'cats/effect/IO$$Lambda$107.0x0000000800dbf720.applyVoid')
f(23,125,17,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(25,125,17,1,'scala/runtime/function/JProcedure1.apply')
f(26,125,17,1,'cats/effect/IOPlatform$$Lambda$104.0x0000000800dbec50.applyVoid')
f(27,125,17,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,125,17,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,125,17,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,125,17,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,125,17,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,125,17,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,125,17,1,'jdk/internal/misc/Unsafe.unpark')
f(34,125,1,3,'Unsafe_Unpark')
f(35,125,1,4,'ThreadsListHandle::ThreadsListHandle(Thread*)')
f(34,126,16,3,'pthread_cond_signal')
f(35,127,15,5,'entry_SYSCALL_64_after_hwframe')
f(36,127,15,5,'do_syscall_64')
f(37,128,13,5,'__x64_sys_futex')
f(38,128,13,5,'do_futex')
f(39,128,13,5,'futex_wake')
f(40,129,1,5,'get_futex_key')
f(40,130,11,5,'wake_up_q')
f(41,130,11,5,'_raw_spin_unlock_irqrestore')
f(37,141,1,5,'syscall_enter_from_user_mode')
f(6,142,41,1,'cats/instances/ListInstances$$anon$1$$Lambda$59.0x0000000800d92800.apply')
f(7,142,41,1,'cats/instances/ListInstances.cats$instances$ListInstances$$anon$1$$_$traverse$$anonfun$1')
f(8,142,41,1,'cats/data/Chain.toList')
f(9,142,41,1,'cats/data/Chain$ChainIterator.toList')
f(10,142,41,1,'scala/collection/IterableOnceOps.toList$')
f(11,142,41,1,'scala/collection/IterableOnceOps.toList')
f(12,142,41,1,'scala/collection/immutable/List.prependedAll')
f(13,144,1,2,'cats/data/Chain$ChainIterator.hasNext',1,0,0)
f(14,144,1,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.hasNext',1,0,0)
f(13,145,22,1,'cats/data/Chain$ChainIterator.next')
f(14,146,21,2,'cats/data/Chain$ChainIterator.go$3',20,0,0)
f(15,157,9,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.next',9,0,0)
f(15,166,1,1,'scala/collection/immutable/List.iterator')
f(16,166,1,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator$')
f(17,166,1,1,'scala/collection/StrictOptimizedLinearSeqOps.iterator')
f(13,167,8,2,'scala/collection/immutable/$colon$colon.<init>',8,0,0)
f(14,171,4,2,'scala/runtime/Statics.releaseFence',4,0,0)
f(15,173,2,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d20000.invoke_MT',2,0,0)
f(16,173,2,2,'java/lang/invoke/Invokers.checkGenericType',2,0,0)
f(13,175,8,2,'scala/collection/immutable/NewVectorIterator.next',8,0,0)
f(14,181,2,2,'scala/collection/immutable/NewVectorIterator.advance',2,0,0)
f(6,183,10,3,'itable stub')
f(6,193,21,1,'kyo/bench/CollectAllBench$$Lambda$60.0x0000000800d92bc8.apply')
f(7,193,21,2,'kyo/bench/CollectAllBench.catsBench$$anonfun$1',19,0,0)
f(8,193,21,2,'scala/collection/AbstractIterable.sum',19,0,0)
f(9,193,21,2,'scala/collection/IterableOnceOps.sum$',19,0,0)
f(10,193,21,2,'scala/collection/IterableOnceOps.sum',19,0,0)
f(11,193,21,2,'scala/collection/AbstractIterable.reduce',19,0,0)
f(12,193,21,2,'scala/collection/IterableOnceOps.reduce$',19,0,0)
f(13,193,21,2,'scala/collection/IterableOnceOps.reduce',19,0,0)
f(14,193,21,2,'scala/collection/AbstractIterable.reduceLeft',19,0,0)
f(15,193,21,2,'scala/collection/IterableOnceOps.reduceLeft$',19,0,0)
f(16,193,21,2,'scala/collection/IterableOnceOps.reduceLeft',19,0,0)
f(17,193,18,2,'scala/collection/IterableOnceOps$$Lambda$114.0x0000000800dc4560.apply',16,0,0)
f(18,193,18,2,'scala/collection/IterableOnceOps.$anonfun$sum$1',16,0,0)
f(19,193,18,2,'scala/math/Numeric$IntIsIntegral$.plus',16,0,0)
f(20,193,17,2,'scala/runtime/BoxesRunTime.boxToInteger',15,0,0)
f(21,206,4,2,'java/lang/Integer.valueOf',2,0,0)
f(22,208,2,1,'java/lang/Integer.<init>')
f(23,208,2,1,'java/lang/Number.<init>')
f(20,210,1,2,'scala/runtime/BoxesRunTime.unboxToInt',1,0,0)
f(17,211,3,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.next',3,0,0)
f(5,214,24,2,'kyo/bench/CollectAllBench$$Lambda$42.0x0000000800d26078.apply',23,0,0)
f(6,237,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(7,237,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(8,237,1,4,'MemAllocator::allocate() const')
f(9,237,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(10,237,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(11,237,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(12,237,1,4,'VMThread::execute(VM_Operation*)')
f(13,237,1,4,'VMThread::wait_until_executed(VM_Operation*)')
f(5,238,13,3,'vtable stub')
f(3,251,69,1,'cats/effect/IOFiber.execR')
f(4,251,69,1,'cats/effect/IOFiber.runLoop')
f(5,255,4,2,'cats/effect/ArrayStack.push',4,0,0)
f(6,257,2,2,'cats/effect/ArrayStack.checkAndGrow',2,0,0)
f(5,259,19,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply',1,0,0)
f(6,259,19,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1',1,0,0)
f(7,259,15,1,'cats/Eval$Defer.value')
f(8,261,13,1,'cats/Eval$.cats$Eval$$$evaluate')
f(9,261,13,1,'cats/Eval$.loop$1')
f(10,261,9,2,'cats/Eval$$anon$2$$Lambda$57.0x0000000800d935f0.apply',9,0,0)
f(11,261,9,2,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2',9,0,0)
f(12,261,2,2,'cats/Eval$$anon$1$$Lambda$53.0x0000000800d96b38.apply',2,0,0)
f(13,261,2,2,'cats/Eval$$anon$1.$init$$$anonfun$1',2,0,0)
f(14,261,2,2,'cats/Eval$$anon$2.<init>',2,0,0)
f(15,262,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(12,263,7,2,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply',7,0,0)
f(13,263,7,2,'cats/data/Chain$.loop$4$$anonfun$3',7,0,0)
f(14,263,7,2,'cats/effect/IO$$anon$2.map2Eval',7,0,0)
f(15,264,6,2,'cats/effect/IO$$anon$2.map2Eval',6,0,0)
f(16,264,6,2,'cats/effect/IO.flatMap',6,0,0)
f(17,264,6,2,'cats/effect/IO$FlatMap$.apply',6,0,0)
f(18,264,6,2,'cats/effect/IO$FlatMap.<init>',6,0,0)
f(19,264,6,2,'cats/effect/IO.<init>',6,0,0)
f(20,265,5,2,'cats/effect/IOPlatform.<init>',5,0,0)
f(10,270,4,2,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply',4,0,0)
f(11,270,4,2,'cats/data/Chain$.loop$4$$anonfun$1',4,0,0)
f(12,270,3,2,'cats/effect/IO$$anon$2.map2Eval',3,0,0)
f(13,270,3,2,'cats/effect/IO$$anon$2.map2Eval',3,0,0)
f(14,272,1,2,'cats/Eval$.now',1,0,0)
f(15,272,1,2,'cats/Now$.apply',1,0,0)
f(16,272,1,2,'cats/Now.<init>',1,0,0)
f(17,272,1,2,'cats/Eval$Leaf.<init>',1,0,0)
f(18,272,1,2,'cats/Eval.<init>',1,0,0)
f(12,273,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(13,273,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(7,274,3,1,'cats/Later.value')
f(8,276,1,2,'cats/data/Chain$$$Lambda$47.0x0000000800d94300.apply',1,0,0)
f(9,276,1,2,'cats/data/Chain$.$anonfun$1',1,0,0)
f(10,276,1,2,'cats/kernel/instances/StaticMethods$WrappedIndexedSeq.apply',1,0,0)
f(11,276,1,2,'scala/collection/mutable/ArrayBuffer.apply',1,0,0)
f(7,277,1,3,'vtable stub')
f(5,278,1,6,'cats/effect/IO$Delay.tag',0,1,0)
f(5,279,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(5,281,1,6,'cats/effect/IO$Map.tag',0,1,0)
f(5,282,21,1,'cats/effect/IOFiber.succeeded')
f(6,287,1,2,'cats/effect/ArrayStack.pop',1,0,0)
f(6,288,1,1,'cats/effect/IO$$$Lambda$112.0x0000000800dc1ed8.apply')
f(7,288,1,2,'cats/effect/IO$.map2Eval$$anonfun$1$$anonfun$1',1,0,0)
f(8,288,1,2,'cats/data/Chain$$$Lambda$54.0x0000000800d97348.apply',1,0,0)
f(6,289,10,1,'cats/effect/IO$$anon$2$$Lambda$55.0x0000000800d978f8.apply')
f(7,289,10,1,'cats/effect/IO$.cats$effect$IO$$anon$2$$_$map2Eval$$anonfun$1')
f(8,289,10,1,'cats/Eval$FlatMap.value')
f(9,289,10,1,'cats/Eval$.cats$Eval$$$evaluate')
f(10,289,10,1,'cats/Eval$.loop$1')
f(11,289,1,1,'cats/Eval$$Lambda$51.0x0000000800d96158.apply')
f(12,289,1,1,'cats/Eval.map$$anonfun$1')
f(13,289,1,1,'cats/Now$.apply')
f(14,289,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(15,289,1,4,'AccessInternal::PostRuntimeDispatch<G1BarrierSet::AccessBarrier<598116ul, G1BarrierSet>, (AccessInternal::BarrierType)2, 598116ul>::oop_access_barrier(void*)')
f(11,290,3,2,'cats/Eval$$anon$2$$Lambda$57.0x0000000800d935f0.apply',3,0,0)
f(12,290,3,2,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2',3,0,0)
f(13,290,3,2,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply',3,0,0)
f(14,290,3,2,'cats/data/Chain$.loop$4$$anonfun$3',3,0,0)
f(15,290,3,2,'cats/effect/IO$$anon$2.map2Eval',3,0,0)
f(16,291,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(17,291,2,2,'cats/effect/IO.flatMap',2,0,0)
f(18,291,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(19,292,1,2,'cats/effect/IO$FlatMap.<init>',1,0,0)
f(11,293,3,2,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply',1,0,0)
f(12,294,2,2,'cats/data/Chain$.loop$4$$anonfun$1',2,0,0)
f(13,294,1,2,'cats/effect/IO$$anon$2.map2Eval',1,0,0)
f(13,295,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(14,295,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(15,295,1,2,'cats/data/Chain$$$Lambda$54.0x0000000800d97348.<init>',1,0,0)
f(16,295,1,2,'java/lang/Object.<init>',1,0,0)
f(11,296,3,3,'itable stub')
f(6,299,4,3,'itable stub')
f(5,303,13,2,'kyo/bench/CollectAllBench$$Lambda$42.0x0000000800d26078.apply',13,0,0)
f(5,316,4,3,'vtable stub')
f(2,320,1,1,'cats/effect/unsafe/ScalQueue.poll')
f(3,320,1,1,'java/util/concurrent/ConcurrentLinkedQueue.poll')
f(4,320,1,1,'java/util/concurrent/ConcurrentLinkedQueue$Node.casItem')
f(5,320,1,1,'java/lang/invoke/VarHandleGuards.guard_LLL_Z')
f(6,320,1,1,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet')
f(2,321,1,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,321,1,2,'cats/effect/unsafe/ScalQueue.poll',1,0,0)
f(2,322,4,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,322,4,1,'java/util/concurrent/locks/LockSupport.park')
f(4,322,4,1,'jdk/internal/misc/Unsafe.park')
f(5,322,1,3,'Unsafe_Park')
f(5,323,3,3,'[unknown]')
f(6,323,3,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,323,3,5,'entry_SYSCALL_64_after_hwframe')
f(8,323,3,5,'do_syscall_64')
f(9,323,3,5,'__x64_sys_futex')
f(10,323,3,5,'do_futex')
f(11,323,3,5,'futex_wait')
f(12,323,3,5,'futex_wait_queue_me')
f(13,323,3,5,'schedule')
f(14,323,3,5,'__schedule')
f(15,324,2,5,'finish_task_switch.isra.0')
f(1,326,136,1,'java/lang/Thread.run')
f(2,326,136,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,326,136,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,326,136,1,'java/util/concurrent/FutureTask.run')
f(5,326,136,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,326,136,1,'java/util/concurrent/FutureTask.run')
f(7,326,136,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,326,136,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,326,136,1,'java/lang/reflect/Method.invoke')
f(10,326,136,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,326,136,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,326,136,1,'kyo/bench/jmh_generated/CollectAllBench_syncCats_jmhTest.syncCats_Throughput')
f(13,326,136,1,'kyo/bench/jmh_generated/CollectAllBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,326,136,1,'kyo/bench/Bench.syncCats',17,0,0)
f(15,326,28,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,326,28,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,326,19,1,'cats/effect/IO.unsafeRunAsync')
f(18,326,19,1,'cats/effect/IO.unsafeRunFiber')
f(19,326,1,1,'cats/effect/IOFiber.<init>')
f(19,327,17,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,327,17,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,327,17,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,327,17,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,327,17,1,'jdk/internal/misc/Unsafe.unpark')
f(24,327,1,3,'Unsafe_Unpark')
f(24,328,16,3,'pthread_cond_signal')
f(25,328,16,5,'entry_SYSCALL_64_after_hwframe')
f(26,328,16,5,'do_syscall_64')
f(27,328,16,5,'__x64_sys_futex')
f(28,328,16,5,'do_futex')
f(29,329,15,5,'futex_wake')
f(30,330,14,5,'wake_up_q')
f(31,330,14,5,'_raw_spin_unlock_irqrestore')
f(19,344,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(20,344,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800dbcc00.newInvokeSpecial',1,0,0)
f(17,345,9,1,'scala/concurrent/package$.blocking')
f(18,345,9,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,345,9,1,'cats/effect/IOPlatform$$Lambda$111.0x0000000800dc15e8.apply')
f(20,345,9,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,345,9,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,345,9,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,345,1,3,'clock_gettime')
f(24,345,1,3,'[vdso]')
f(23,346,8,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,346,8,1,'jdk/internal/misc/Unsafe.park')
f(25,346,1,3,'Unsafe_Park')
f(26,346,1,4,'Parker::park(bool, long)')
f(25,347,7,3,'[unknown]')
f(26,347,7,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,347,7,5,'entry_SYSCALL_64_after_hwframe')
f(28,347,7,5,'do_syscall_64')
f(29,347,6,5,'__x64_sys_futex')
f(30,347,6,5,'do_futex')
f(31,347,6,5,'futex_wait')
f(32,347,6,5,'futex_wait_queue_me')
f(33,347,6,5,'schedule')
f(34,347,6,5,'__schedule')
f(35,347,6,5,'finish_task_switch.isra.0')
f(29,353,1,5,'syscall_exit_to_user_mode')
f(30,353,1,5,'exit_to_user_mode_prepare')
f(31,353,1,5,'exit_to_user_mode_loop')
f(15,354,108,1,'kyo/bench/CollectAllBench.catsBench',17,0,0)
f(16,359,64,1,'cats/Traverse$ToTraverseOps$$anon$3.sequence')
f(17,359,64,1,'cats/Traverse$Ops.sequence$')
f(18,359,64,1,'cats/Traverse$Ops.sequence')
f(19,359,64,1,'cats/instances/ListInstances$$anon$1.sequence')
f(20,359,64,1,'cats/Traverse.sequence$',14,0,0)
f(21,359,64,1,'cats/Traverse.sequence',14,0,0)
f(22,359,64,1,'cats/instances/ListInstances$$anon$1.traverse',14,0,0)
f(23,359,64,1,'cats/instances/ListInstances$$anon$1.traverse',14,0,0)
f(24,359,48,1,'cats/data/Chain$.traverseViaChain')
f(25,359,8,1,'cats/Eval$FlatMap.value')
f(26,359,8,1,'cats/Eval$.cats$Eval$$$evaluate')
f(27,359,8,1,'cats/Eval$.loop$1')
f(28,359,1,1,'cats/Eval$$anon$2$$Lambda$57.0x0000000800d935f0.apply')
f(29,359,1,2,'cats/Eval.cats$Eval$$anon$2$$_$$lessinit$greater$$anonfun$2',1,0,0)
f(28,360,2,2,'cats/data/Chain$$$Lambda$49.0x0000000800d95ac8.apply',2,0,0)
f(29,360,2,2,'cats/data/Chain$.loop$4$$anonfun$1',2,0,0)
f(30,360,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(31,360,2,2,'cats/effect/IO$$anon$2.map2Eval',2,0,0)
f(32,360,1,2,'cats/Eval$.now',1,0,0)
f(33,360,1,2,'cats/Now$.apply',1,0,0)
f(34,360,1,2,'cats/Now.<init>',1,0,0)
f(35,360,1,2,'cats/Eval$Leaf.<init>',1,0,0)
f(36,360,1,2,'cats/Eval.<init>',1,0,0)
f(32,361,1,2,'cats/effect/IO.flatMap',1,0,0)
f(33,361,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(34,361,1,2,'cats/effect/IO$FlatMap.<init>',1,0,0)
f(35,361,1,2,'cats/effect/IO.<init>',1,0,0)
f(36,361,1,2,'cats/effect/IOPlatform.<init>',1,0,0)
f(28,362,2,1,'cats/data/Chain$$$Lambda$52.0x0000000800d96528.apply')
f(29,363,1,2,'cats/data/Chain$.loop$4$$anonfun$3',1,0,0)
f(30,363,1,2,'cats/effect/IO$$anon$2.map2Eval',1,0,0)
f(28,364,3,3,'itable stub')
f(25,367,40,1,'cats/data/Chain$.loop$4')
f(26,367,1,2,'cats/Eval$.defer',1,0,0)
f(27,367,1,2,'cats/Eval$$anon$5.<init>',1,0,0)
f(28,367,1,2,'cats/Eval$Defer.<init>',1,0,0)
f(26,368,5,2,'cats/Eval$.later',5,0,0)
f(27,371,2,2,'cats/Later.<init>',2,0,0)
f(26,373,10,2,'cats/Eval.map',10,0,0)
f(27,375,5,2,'cats/Eval.flatMap',5,0,0)
f(27,380,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(28,380,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(29,380,2,2,'cats/Eval$$Lambda$51.0x0000000800d96158.<init>',2,0,0)
f(29,382,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(26,383,21,1,'cats/data/Chain$.loop$4')
f(27,387,13,2,'cats/Eval.flatMap',13,0,0)
f(28,387,13,2,'cats/Eval$$anon$1.<init>',13,0,0)
f(27,400,2,2,'cats/Eval.map',2,0,0)
f(28,401,1,2,'cats/Eval.flatMap',1,0,0)
f(27,402,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(27,403,1,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d91c00.linkToTargetMethod',1,0,0)
f(28,403,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d91400.newInvokeSpecial',1,0,0)
f(26,404,3,2,'cats/kernel/instances/StaticMethods$WrappedIndexedSeq.apply',3,0,0)
f(24,407,5,2,'scala/collection/mutable/AbstractBuffer.$plus$plus$eq',3,0,0)
f(25,407,5,2,'scala/collection/mutable/Growable.$plus$plus$eq$',3,0,0)
f(26,407,5,2,'scala/collection/mutable/Growable.$plus$plus$eq',3,0,0)
f(27,407,5,2,'scala/collection/mutable/ArrayBuffer.addAll',3,0,0)
f(28,407,5,2,'scala/collection/mutable/ArrayBuffer.addAll',3,0,0)
f(29,407,1,4,'OptoRuntime::new_array_C(Klass*, int, JavaThread*)')
f(30,407,1,4,'InstanceKlass::allocate_objArray(int, int, JavaThread*)')
f(31,407,1,4,'MemAllocator::allocate() const')
f(32,407,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(33,407,1,4,'G1CardTable::g1_mark_as_young(MemRegion const&)')
f(29,408,4,2,'scala/collection/mutable/Growable.addAll$',3,0,0)
f(30,408,4,2,'scala/collection/mutable/Growable.addAll',3,0,0)
f(31,408,1,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.hasNext',1,0,0)
f(32,408,1,3,'jint_disjoint_arraycopy')
f(31,409,2,2,'scala/collection/immutable/List.iterator',2,0,0)
f(32,410,1,2,'scala/collection/StrictOptimizedLinearSeqOps.iterator$',1,0,0)
f(33,410,1,2,'scala/collection/StrictOptimizedLinearSeqOps.iterator',1,0,0)
f(31,411,1,1,'scala/collection/mutable/ArrayBuffer.addOne')
f(32,411,1,1,'scala/collection/mutable/ArrayBuffer.addOne')
f(33,411,1,1,'scala/collection/mutable/ArrayBuffer.ensureAdditionalSize')
f(34,411,1,1,'scala/collection/mutable/ArrayBuffer$.scala$collection$mutable$ArrayBuffer$$ensureSize')
f(35,411,1,1,'scala/collection/mutable/ArrayBuffer$.resizeUp')
f(36,411,1,1,'java/lang/Math.max')
f(24,412,9,2,'scala/collection/mutable/ArrayBuffer$.apply',9,0,0)
f(25,412,9,2,'scala/collection/IterableFactory.apply$',9,0,0)
f(26,412,9,2,'scala/collection/IterableFactory.apply',9,0,0)
f(27,413,8,2,'scala/collection/mutable/ArrayBuffer$.from',8,0,0)
f(28,414,7,2,'scala/collection/mutable/ArrayBuffer$.from',7,0,0)
f(29,414,2,2,'scala/collection/immutable/ArraySeq.copyToArray',2,0,0)
f(29,416,3,2,'scala/collection/mutable/ArrayBuffer$.scala$collection$mutable$ArrayBuffer$$ensureSize',3,0,0)
f(30,417,2,2,'scala/collection/mutable/ArrayBuffer$.resizeUp',2,0,0)
f(31,418,1,2,'java/lang/Math.max',1,0,0)
f(29,419,2,2,'scala/collection/mutable/ArrayBuffer.<init>',2,0,0)
f(30,419,2,2,'scala/collection/mutable/AbstractBuffer.<init>',2,0,0)
f(31,419,2,2,'scala/collection/mutable/AbstractSeq.<init>',2,0,0)
f(24,421,2,2,'scala/runtime/ScalaRunTime$.genericWrapArray',2,0,0)
f(25,421,2,2,'scala/collection/immutable/ArraySeq$.unsafeWrapArray',2,0,0)
f(16,423,24,1,'scala/collection/AbstractIterable.toList')
f(17,423,24,1,'scala/collection/IterableOnceOps.toList$')
f(18,423,24,1,'scala/collection/IterableOnceOps.toList')
f(19,423,24,1,'scala/collection/immutable/List.prependedAll')
f(20,428,6,2,'cats/data/Chain$ChainIterator.hasNext',6,0,0)
f(21,428,6,2,'scala/collection/StrictOptimizedLinearSeqOps$$anon$1.hasNext',6,0,0)
f(20,434,6,2,'scala/collection/immutable/$colon$colon.<init>',6,0,0)
f(21,439,1,2,'scala/runtime/Statics.releaseFence',1,0,0)
f(22,439,1,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d20000.invoke_MT',1,0,0)
f(20,440,7,2,'scala/collection/immutable/NewVectorIterator.next',7,0,0)
f(21,443,4,2,'scala/collection/immutable/NewVectorIterator.advance',4,0,0)
f(16,447,13,2,'scala/collection/immutable/Range.map',10,0,0)
f(17,447,10,2,'scala/collection/SeqFactory$Delegate.newBuilder',10,0,0)
f(18,449,8,2,'scala/collection/immutable/Vector$.newBuilder',8,0,0)
f(19,449,8,2,'scala/collection/immutable/Vector$.newBuilder',8,0,0)
f(20,449,8,2,'scala/collection/immutable/VectorBuilder.<init>',8,0,0)
f(17,457,3,1,'scala/collection/immutable/VectorBuilder.addOne')
f(18,457,3,1,'scala/collection/immutable/VectorBuilder.addOne')
f(19,457,3,1,'scala/collection/immutable/VectorBuilder.advance')
f(20,457,3,1,'scala/collection/immutable/VectorBuilder.advance1')
f(16,460,2,2,'scala/runtime/RichInt$.until$extension',2,0,0)
f(17,460,2,2,'scala/collection/immutable/Range$Exclusive.<init>',2,0,0)
f(18,460,2,2,'scala/collection/immutable/Range.<init>',2,0,0)
f(19,460,2,2,'scala/collection/immutable/Range.longLength',2,0,0)
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,29945,3,'all')
f(1,0,27566,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,27566,1,'cats/effect/IOFiber.run')
f(3,0,1,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,0,1,1,'cats/effect/IOFiber.succeeded')
f(5,0,1,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,0,1,1,'cats/effect/IOFiber.done')
f(7,0,1,1,'cats/effect/IO$.pure')
f(8,0,1,1,'cats/effect/IO$Pure$.apply')
f(9,0,1,2,'cats.effect.IO$Pure')
f(3,1,26639,1,'cats/effect/IOFiber.autoCedeR')
f(4,1,26639,1,'cats/effect/IOFiber.runLoop')
f(5,1,2385,2,'cats.effect.IOFiber$$anon$1')
f(5,2386,8821,1,'cats/effect/IOFiber.succeeded')
f(6,2386,1,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,2386,1,1,'cats/effect/IO$.pure')
f(8,2386,1,1,'cats/effect/IO$Pure$.apply')
f(9,2386,1,2,'cats.effect.IO$Pure')
f(6,2387,8820,1,'kyo/bench/CountdownLatchBench$$Lambda$102.0x0000000800d77438.apply')
f(7,2387,8820,1,'kyo/bench/CountdownLatchBench.iterate$1$$anonfun$1')
f(8,2387,8820,1,'kyo/bench/CountdownLatchBench.iterate$1')
f(9,2387,2568,1,'cats/effect/IO.flatMap')
f(10,2387,2568,1,'cats/effect/IO$FlatMap$.apply')
f(11,2387,2568,2,'cats.effect.IO$FlatMap')
f(9,4955,4010,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release')
f(10,4955,2499,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,4955,2499,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,4955,2499,1,'cats/effect/IO$.uncancelable')
f(13,4955,2499,1,'cats/effect/IO$Uncancelable$.apply')
f(14,4955,2499,2,'cats.effect.IO$Uncancelable')
f(10,7454,1511,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,7454,1511,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,7454,1511,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,7454,1511,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$101+0x0000000800d77068')
f(9,8965,2242,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,8965,2242,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74000.newInvokeSpecial')
f(11,8965,2242,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,8965,2242,2,'kyo.bench.CountdownLatchBench$$Lambda$102+0x0000000800d77438')
f(5,11207,6188,1,'cats/effect/kernel/SyncRef$$Lambda$108.0x0000000800d78000.apply')
f(6,11207,6188,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,11207,6188,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,11207,6188,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$106.0x0000000800d74800.apply')
f(9,11207,6188,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1$$anonfun$1')
f(10,11207,1136,1,'cats/effect/IO$$anon$2.unit')
f(11,11207,1136,1,'cats/Applicative.unit$')
f(12,11207,1136,1,'cats/Applicative.unit')
f(13,11207,1136,1,'cats/effect/IO$$anon$2.pure')
f(14,11207,1136,1,'cats/effect/IO$$anon$2.pure')
f(15,11207,1136,1,'cats/effect/IO$.pure')
f(16,11207,1136,1,'cats/effect/IO$Pure$.apply')
f(17,11207,1136,2,'cats.effect.IO$Pure')
f(10,12343,2357,1,'cats/effect/std/CountDownLatch$Awaiting$.apply')
f(11,12343,2357,2,'cats.effect.std.CountDownLatch$Awaiting')
f(10,14700,2695,1,'scala/Tuple2$.apply')
f(11,14700,2695,2,'scala.Tuple2')
f(5,17395,9245,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$101.0x0000000800d77068.apply')
f(6,17395,9245,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1')
f(7,17395,5305,1,'cats/effect/kernel/SyncRef.modify')
f(8,17395,2871,1,'cats/effect/IO$$anon$2.delay')
f(9,17395,2871,1,'cats/effect/IO$$anon$2.delay')
f(10,17395,2871,1,'cats/effect/IO$.apply')
f(11,17395,2871,1,'cats/effect/IO$.delay')
f(12,17395,2871,1,'cats/effect/IO$Delay$.apply')
f(13,17395,2871,2,'cats.effect.IO$Delay')
f(8,20266,2434,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,20266,2434,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,20266,2434,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,20266,2434,2,'cats.effect.kernel.SyncRef$$Lambda$108+0x0000000800d78000')
f(7,22700,2414,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,22700,2414,1,'cats/effect/IO$$anon$2.flatten')
f(9,22700,2414,1,'cats/FlatMap.flatten$')
f(10,22700,2414,1,'cats/FlatMap.flatten')
f(11,22700,2414,1,'cats/effect/IO$$anon$2.flatMap')
f(12,22700,2414,1,'cats/effect/IO$$anon$2.flatMap')
f(13,22700,2414,1,'cats/effect/IO.flatMap')
f(14,22700,2414,1,'cats/effect/IO$FlatMap$.apply')
f(15,22700,2414,2,'cats.effect.IO$FlatMap')
f(7,25114,1526,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,25114,1526,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,25114,1526,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,25114,1526,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$106+0x0000000800d74800')
f(3,26640,42,1,'cats/effect/IOFiber.cedeR')
f(4,26640,39,1,'cats/effect/IOFiber.runLoop')
f(5,26640,1,2,'cats.effect.ContState')
f(5,26641,5,2,'cats.effect.IOFiber')
f(5,26646,1,1,'cats/effect/IO$EvalOn$.apply')
f(6,26646,1,2,'cats.effect.IO$EvalOn')
f(5,26647,22,1,'cats/effect/IODeferred$$anon$1$$Lambda$113.0x0000000800d7a788.apply')
f(6,26647,22,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1$$anonfun$1')
f(7,26647,22,1,'cats/effect/IO$.apply')
f(8,26647,22,1,'cats/effect/IO$.delay')
f(9,26647,22,1,'cats/effect/IO$Delay$.apply')
f(10,26647,22,2,'cats.effect.IO$Delay')
f(5,26669,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$114.0x0000000800d7ab58.apply')
f(6,26669,1,1,'cats/effect/IODeferred$$anon$1.$anonfun$1')
f(7,26669,1,1,'cats/effect/IO$.apply')
f(8,26669,1,1,'cats/effect/IO$.delay')
f(9,26669,1,1,'cats/effect/IO$Delay$.apply')
f(10,26669,1,2,'cats.effect.IO$Delay')
f(5,26670,3,1,'cats/effect/IOFiber.<init>')
f(6,26670,1,1,'cats/effect/ArrayStack$.apply')
f(7,26670,1,2,'cats.effect.ArrayStack')
f(6,26671,1,1,'cats/effect/IO$.async')
f(7,26671,1,1,'cats/effect/IO$IOCont$.apply')
f(8,26671,1,2,'cats.effect.IO$IOCont')
f(6,26672,1,1,'cats/effect/IO$.uncancelable')
f(7,26672,1,1,'cats/effect/IO$Uncancelable$.apply')
f(8,26672,1,2,'cats.effect.IO$Uncancelable')
f(5,26673,3,1,'cats/effect/IOFiber.succeeded')
f(6,26673,2,1,'kyo/bench/CountdownLatchBench$$Lambda$103.0x0000000800d77a28.apply')
f(7,26673,2,1,'kyo/bench/CountdownLatchBench.catsBench$$anonfun$1$$anonfun$1')
f(8,26673,2,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.await')
f(9,26673,2,1,'cats/effect/kernel/SyncRef.get')
f(10,26673,2,1,'cats/effect/IO$$anon$2.delay')
f(11,26673,2,1,'cats/effect/IO$$anon$2.delay')
f(12,26673,2,1,'cats/effect/IO$.apply')
f(13,26673,2,1,'cats/effect/IO$.delay')
f(14,26673,2,1,'cats/effect/IO$Delay$.apply')
f(15,26673,2,2,'cats.effect.IO$Delay')
f(6,26675,1,1,'kyo/bench/CountdownLatchBench$$Lambda$98.0x0000000800d735d8.apply')
f(7,26675,1,1,'kyo/bench/CountdownLatchBench.catsBench$$anonfun$1')
f(8,26675,1,1,'kyo/bench/CountdownLatchBench.iterate$1')
f(9,26675,1,1,'cats/effect/IO.flatMap')
f(10,26675,1,1,'cats/effect/IO$FlatMap$.apply')
f(11,26675,1,2,'cats.effect.IO$FlatMap')
f(5,26676,1,1,'cats/effect/std/CountDownLatch$$$Lambda$100.0x0000000800d767c8.apply')
f(6,26676,1,1,'cats/effect/std/CountDownLatch$.apply$$anonfun$1$$anonfun$1')
f(7,26676,1,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch')
f(5,26677,2,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$105.0x0000000800d75a30.apply')
f(6,26677,2,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.await$$anonfun$1')
f(7,26677,2,1,'cats/effect/IODeferred.get')
f(8,26677,2,1,'cats/effect/IODeferred.get')
f(9,26677,2,1,'cats/effect/IO$.defer')
f(10,26677,1,1,'cats/effect/IO$.delay')
f(11,26677,1,1,'cats/effect/IO$Delay$.apply')
f(12,26677,1,2,'cats.effect.IO$Delay')
f(10,26678,1,1,'cats/effect/IO.flatten')
f(11,26678,1,1,'cats/effect/IO.flatMap')
f(12,26678,1,1,'cats/effect/IO$FlatMap$.apply')
f(13,26678,1,2,'cats.effect.IO$FlatMap')
f(4,26679,3,1,'cats/effect/IOFiber.succeeded')
f(5,26679,3,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8d350.apply')
f(6,26679,3,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,26679,3,1,'kyo/bench/CountdownLatchBench.catsBench')
f(8,26679,3,1,'cats/effect/std/CountDownLatch$.apply')
f(9,26679,2,1,'cats/effect/std/CountDownLatch$State$.initial')
f(10,26679,2,1,'cats/Functor$ToFunctorOps$$anon$4.map')
f(11,26679,2,1,'cats/Functor$Ops.map$')
f(12,26679,2,1,'cats/Functor$Ops.map')
f(13,26679,2,1,'cats/effect/IO$$anon$2.map')
f(14,26679,2,1,'cats/effect/IO$$anon$2.map')
f(15,26679,2,1,'cats/effect/IO.map')
f(16,26679,2,1,'cats/effect/IO$Map$.apply')
f(17,26679,2,2,'cats.effect.IO$Map')
f(9,26681,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,26681,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,26681,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,26681,1,2,'cats.effect.std.CountDownLatch$$$Lambda$97+0x0000000800d73208')
f(3,26682,884,1,'cats/effect/IOFiber.execR')
f(4,26682,9,1,'cats/effect/ArrayStack.init')
f(5,26682,9,2,'java.lang.Object[]')
f(4,26691,358,1,'cats/effect/ByteStack$.create')
f(5,26691,358,2,'int[]')
f(4,27049,517,1,'cats/effect/IOFiber.runLoop')
f(5,27049,48,2,'cats.effect.IOFiber$$anon$1')
f(5,27097,168,1,'cats/effect/IOFiber.succeeded')
f(6,27097,168,1,'kyo/bench/CountdownLatchBench$$Lambda$102.0x0000000800d77438.apply')
f(7,27097,168,1,'kyo/bench/CountdownLatchBench.iterate$1$$anonfun$1')
f(8,27097,168,1,'kyo/bench/CountdownLatchBench.iterate$1')
f(9,27097,46,1,'cats/effect/IO.flatMap')
f(10,27097,46,1,'cats/effect/IO$FlatMap$.apply')
f(11,27097,46,2,'cats.effect.IO$FlatMap')
f(9,27143,84,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release')
f(10,27143,48,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,27143,48,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,27143,48,1,'cats/effect/IO$.uncancelable')
f(13,27143,48,1,'cats/effect/IO$Uncancelable$.apply')
f(14,27143,48,2,'cats.effect.IO$Uncancelable')
f(10,27191,36,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,27191,36,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,27191,36,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,27191,36,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$101+0x0000000800d77068')
f(9,27227,38,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,27227,38,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74000.newInvokeSpecial')
f(11,27227,38,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,27227,38,2,'kyo.bench.CountdownLatchBench$$Lambda$102+0x0000000800d77438')
f(5,27265,129,1,'cats/effect/kernel/SyncRef$$Lambda$108.0x0000000800d78000.apply')
f(6,27265,129,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,27265,129,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,27265,129,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$106.0x0000000800d74800.apply')
f(9,27265,129,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1$$anonfun$1')
f(10,27265,29,1,'cats/effect/IO$$anon$2.unit')
f(11,27265,29,1,'cats/Applicative.unit$')
f(12,27265,29,1,'cats/Applicative.unit')
f(13,27265,29,1,'cats/effect/IO$$anon$2.pure')
f(14,27265,29,1,'cats/effect/IO$$anon$2.pure')
f(15,27265,29,1,'cats/effect/IO$.pure')
f(16,27265,29,1,'cats/effect/IO$Pure$.apply')
f(17,27265,29,2,'cats.effect.IO$Pure')
f(10,27294,44,1,'cats/effect/std/CountDownLatch$Awaiting$.apply')
f(11,27294,44,2,'cats.effect.std.CountDownLatch$Awaiting')
f(10,27338,56,1,'scala/Tuple2$.apply')
f(11,27338,56,2,'scala.Tuple2')
f(5,27394,172,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$101.0x0000000800d77068.apply')
f(6,27394,172,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1')
f(7,27394,94,1,'cats/effect/kernel/SyncRef.modify')
f(8,27394,47,1,'cats/effect/IO$$anon$2.delay')
f(9,27394,47,1,'cats/effect/IO$$anon$2.delay')
f(10,27394,47,1,'cats/effect/IO$.apply')
f(11,27394,47,1,'cats/effect/IO$.delay')
f(12,27394,47,1,'cats/effect/IO$Delay$.apply')
f(13,27394,47,2,'cats.effect.IO$Delay')
f(8,27441,47,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,27441,47,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,27441,47,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,27441,47,2,'cats.effect.kernel.SyncRef$$Lambda$108+0x0000000800d78000')
f(7,27488,41,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,27488,41,1,'cats/effect/IO$$anon$2.flatten')
f(9,27488,41,1,'cats/FlatMap.flatten$')
f(10,27488,41,1,'cats/FlatMap.flatten')
f(11,27488,41,1,'cats/effect/IO$$anon$2.flatMap')
f(12,27488,41,1,'cats/effect/IO$$anon$2.flatMap')
f(13,27488,41,1,'cats/effect/IO.flatMap')
f(14,27488,41,1,'cats/effect/IO$FlatMap$.apply')
f(15,27488,41,2,'cats.effect.IO$FlatMap')
f(7,27529,37,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,27529,37,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,27529,37,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,27529,37,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$106+0x0000000800d74800')
f(1,27566,1,2,'java.lang.String')
f(1,27567,2355,1,'java/lang/Thread.run')
f(2,27567,2355,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,27567,2355,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,27567,2355,1,'java/util/concurrent/FutureTask.run')
f(5,27567,2355,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,27567,2355,1,'java/util/concurrent/FutureTask.run')
f(7,27567,2355,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,27567,2355,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,27567,2355,1,'java/lang/reflect/Method.invoke')
f(10,27567,2355,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,27567,2355,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,27567,2355,1,'kyo/bench/jmh_generated/CountdownLatchBench_forkCats_jmhTest.forkCats_Throughput')
f(13,27567,2355,1,'kyo/bench/jmh_generated/CountdownLatchBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,27567,2355,1,'kyo/bench/Bench.forkCats')
f(15,27567,97,1,'cats/effect/IO.flatMap')
f(16,27567,97,1,'cats/effect/IO$FlatMap$.apply')
f(17,27567,97,2,'cats.effect.IO$FlatMap')
f(15,27664,2102,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,27664,2000,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,27664,1266,1,'cats/effect/IO.unsafeRunAsync')
f(18,27664,1048,1,'cats/effect/IO.unsafeRunFiber')
f(19,27664,188,2,'cats.effect.IOFiber')
f(19,27852,19,5,'cats.effect.IOFiber')
f(19,27871,603,1,'cats/effect/IOFiber.<init>')
f(20,27871,208,1,'cats/effect/ArrayStack$.apply')
f(21,27871,208,2,'cats.effect.ArrayStack')
f(20,28079,7,1,'cats/effect/CallbackStack$.apply')
f(21,28079,7,2,'cats.effect.CallbackStack')
f(20,28086,200,1,'cats/effect/IO$.async')
f(21,28086,110,2,'cats.effect.IO$$anon$3')
f(21,28196,90,1,'cats/effect/IO$IOCont$.apply')
f(22,28196,90,2,'cats.effect.IO$IOCont')
f(20,28286,177,1,'cats/effect/IO$.uncancelable')
f(21,28286,177,1,'cats/effect/IO$Uncancelable$.apply')
f(22,28286,177,2,'cats.effect.IO$Uncancelable')
f(20,28463,11,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,28463,11,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,28463,11,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,28463,11,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d59368')
f(19,28474,113,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,28474,113,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,28474,113,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,28474,113,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,28474,113,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,28587,125,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,28587,125,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial')
f(21,28587,125,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,28587,125,2,'cats.effect.IO$$Lambda$90+0x0000000800d58530')
f(18,28712,218,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,28712,218,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,28712,218,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,28712,12,2,'cats.effect.IO$$Lambda$87+0x0000000800d55408')
f(21,28724,87,2,'cats.effect.IO$$Lambda$88+0x0000000800d556c8')
f(21,28811,119,2,'cats.effect.IO$$Lambda$89+0x0000000800d55ad0')
f(17,28930,110,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,29040,112,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,29040,112,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,29040,112,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,29040,112,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d55000')
f(17,29152,432,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,29152,432,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,29152,92,2,'java.lang.Object[]')
f(19,29244,139,2,'java.util.concurrent.locks.ReentrantLock')
f(19,29383,82,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,29383,82,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,29465,119,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,29465,119,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,29465,119,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,29584,30,1,'scala/concurrent/package$.blocking')
f(18,29584,30,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,29584,30,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5a338.apply')
f(20,29584,30,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,29584,30,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,29584,30,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,29584,30,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,29614,50,1,'scala/util/Either.fold')
f(18,29614,50,1,'cats/effect/IOPlatform$$Lambda$123.0x0000000800d81950.apply')
f(19,29614,50,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,29614,50,1,'scala/Some$.apply')
f(21,29614,50,2,'scala.Some')
f(16,29664,102,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,29664,102,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,29664,102,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,29664,102,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,29664,102,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,29664,102,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,29664,102,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,29664,102,2,'scala.concurrent.duration.FiniteDuration')
f(15,29766,156,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,29766,156,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,29766,156,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,29766,156,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8d350')
f(1,29922,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,29922,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,29922,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,29922,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,29922,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,29922,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,29922,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,29922,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,29922,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,29922,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,29922,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,29922,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,29922,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,29922,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,29922,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,29922,1,2,'java.lang.Object[]')
f(7,29923,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,29923,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,29923,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,29926,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,29926,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,29926,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,29926,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,29926,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,29926,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,29931,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,29931,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,29931,3,1,'java/lang/ClassLoader.loadClass')
f(10,29931,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,29931,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,29931,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,29931,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,29931,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,29931,1,1,'java/security/CodeSource.<init>')
f(16,29931,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,29931,1,1,'java/lang/StringBuilder.append')
f(18,29931,1,1,'java/lang/AbstractStringBuilder.append')
f(19,29931,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,29931,1,1,'java/util/Arrays.copyOf')
f(21,29931,1,2,'byte[]')
f(15,29932,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,29932,1,1,'java/util/Arrays.copyOf')
f(17,29932,1,5,'byte[]')
f(14,29933,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,29933,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,29933,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,29933,1,1,'java/net/URL.<init>')
f(18,29933,1,1,'java/net/URL.<init>')
f(19,29933,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,29933,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,29933,1,1,'java/lang/StringBuilder.toString')
f(22,29933,1,1,'java/lang/StringLatin1.newString')
f(23,29933,1,2,'java.lang.String')
f(9,29934,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,29934,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,29934,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,29934,11,1,'java/io/ObjectStreamClass.lookup')
f(13,29934,11,1,'java/io/ObjectStreamClass.<init>')
f(14,29934,11,1,'java/security/AccessController.doPrivileged')
f(15,29934,11,1,'java/security/AccessController.executePrivileged')
f(16,29934,11,1,'java/io/ObjectStreamClass$2.run')
f(17,29934,11,1,'java/io/ObjectStreamClass$2.run')
f(18,29934,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,29934,2,1,'java/lang/Class.getDeclaredMethod')
f(20,29934,1,1,'java/lang/Class.methodToString')
f(21,29934,1,1,'java/lang/StringBuilder.append')
f(22,29934,1,1,'java/lang/AbstractStringBuilder.append')
f(23,29934,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,29934,1,1,'java/util/Arrays.copyOf')
f(25,29934,1,2,'byte[]')
f(20,29935,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,29935,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,29935,1,1,'java/lang/Exception.<init>')
f(23,29935,1,1,'java/lang/Throwable.<init>')
f(24,29935,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,29935,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,29935,1,2,'short[]')
f(18,29936,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,29936,3,1,'java/lang/Class.getDeclaredMethod')
f(20,29936,2,1,'java/lang/Class.methodToString')
f(21,29936,1,1,'java/lang/StringBuilder.append')
f(22,29936,1,1,'java/lang/AbstractStringBuilder.append')
f(23,29936,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,29936,1,1,'java/util/Arrays.copyOf')
f(25,29936,1,2,'byte[]')
f(21,29937,1,1,'java/lang/StringBuilder.toString')
f(22,29937,1,1,'java/lang/StringLatin1.newString')
f(23,29937,1,1,'java/util/Arrays.copyOfRange')
f(24,29937,1,2,'byte[]')
f(20,29938,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,29938,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,29938,1,1,'java/lang/Exception.<init>')
f(23,29938,1,1,'java/lang/Throwable.<init>')
f(24,29938,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,29938,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,29938,1,5,'long[]')
f(18,29939,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,29939,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,29939,1,1,'java/lang/Class.getDeclaredField')
f(21,29939,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,29939,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,29939,1,1,'java/lang/Exception.<init>')
f(24,29939,1,1,'java/lang/Throwable.<init>')
f(25,29939,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,29939,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,29939,1,2,'long[]')
f(18,29940,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,29940,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,29940,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,29940,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,29940,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,29940,1,1,'java/security/AccessController.doPrivileged')
f(24,29940,1,1,'java/security/AccessController.executePrivileged')
f(25,29940,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,29940,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,29940,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,29940,1,1,'java/security/AccessController.doPrivileged')
f(29,29940,1,1,'java/security/AccessController.executePrivileged')
f(30,29940,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,29940,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,29940,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,29940,1,1,'java/lang/ClassLoader.<init>')
f(34,29940,1,1,'java/lang/ClassLoader.<init>')
f(35,29940,1,1,'java/lang/ClassLoader.nameAndId')
f(36,29940,1,1,'java/lang/StringBuilder.<init>')
f(37,29940,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,29940,1,2,'byte[]')
f(23,29941,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,29941,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,29941,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,29941,1,2,'byte[]')
f(23,29942,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,29942,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,29942,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,29942,1,2,'byte[]')
f(23,29943,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,29943,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,29943,1,1,'java/lang/String.replace')
f(26,29943,1,1,'java/lang/StringLatin1.replace')
f(27,29943,1,2,'java.lang.String')
f(23,29944,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,29944,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 656px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(41);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,493,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1CollectedHeap::post_evacuate_collection_set(G1EvacuationInfo&, G1RedirtyCardsQueueSet*, G1ParScanThreadStateSet*)')
f(12,0,1,4,'G1Allocator::release_gc_alloc_regions(G1EvacuationInfo&)')
f(13,0,1,4,'G1AllocRegion::release()')
f(14,0,1,4,'G1GCAllocRegion::retire(bool)')
f(15,0,1,4,'G1CollectedHeap::retire_gc_alloc_region(HeapRegion*, unsigned long, G1HeapRegionAttr)')
f(1,1,9,3,'[unknown_Java]')
f(2,1,4,6,'cats/effect/IO$FlatMap.tag',0,4,0)
f(2,5,2,6,'cats/effect/IO$Pure.tag',0,2,0)
f(2,7,3,6,'cats/effect/IO$Uncancelable.tag',0,3,0)
f(1,10,479,1,'cats/effect/unsafe/WorkerThread.run')
f(2,10,470,1,'cats/effect/IOFiber.run')
f(3,10,2,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,10,2,1,'cats/effect/IOFiber.succeeded')
f(5,10,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,10,2,1,'cats/effect/IOFiber.done')
f(7,10,2,1,'cats/effect/CallbackStack.apply')
f(8,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(9,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(10,10,2,1,'cats/effect/IO$$Lambda$90.0x0000000800d58530.applyVoid')
f(11,10,2,1,'cats/effect/IO.$anonfun$6')
f(12,10,2,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(13,10,2,1,'cats/effect/kernel/Outcome.fold$')
f(14,10,2,1,'cats/effect/kernel/Outcome.fold')
f(15,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(16,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(17,10,2,1,'cats/effect/IO$$Lambda$121.0x0000000800d80ea8.applyVoid')
f(18,10,2,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(19,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(20,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(21,10,2,1,'cats/effect/IO$$Lambda$89.0x0000000800d55ad0.applyVoid')
f(22,10,2,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(23,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(24,10,2,1,'scala/runtime/function/JProcedure1.apply')
f(25,10,2,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d55000.applyVoid')
f(26,10,2,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(27,10,2,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(28,10,1,2,'java/util/concurrent/ArrayBlockingQueue.enqueue',1,0,0)
f(29,10,1,2,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal',1,0,0)
f(30,10,1,2,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal',1,0,0)
f(31,10,1,2,'java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.getAndUnsetStatus',1,0,0)
f(32,10,1,2,'jdk/internal/misc/Unsafe.getAndBitwiseAndInt',1,0,0)
f(28,11,1,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(29,11,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(30,11,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(31,11,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(32,11,1,1,'jdk/internal/misc/Unsafe.unpark')
f(33,11,1,3,'pthread_cond_signal')
f(34,11,1,5,'entry_SYSCALL_64_after_hwframe')
f(35,11,1,5,'do_syscall_64')
f(36,11,1,5,'__x64_sys_futex')
f(37,11,1,5,'do_futex')
f(38,11,1,5,'futex_wake')
f(39,11,1,5,'wake_up_q')
f(40,11,1,5,'_raw_spin_unlock_irqrestore')
f(3,12,448,1,'cats/effect/IOFiber.autoCedeR')
f(4,12,448,1,'cats/effect/IOFiber.runLoop')
f(5,102,2,2,'cats/effect/ArrayStack.push',2,0,0)
f(5,104,16,2,'cats/effect/IO$.apply',16,0,0)
f(6,110,10,2,'cats/effect/IO$.delay',10,0,0)
f(7,118,1,2,'cats/effect/IO$Delay$.apply',1,0,0)
f(8,118,1,2,'cats/effect/IO$Delay.<init>',1,0,0)
f(7,119,1,2,'cats/effect/Thunk$.asFunction0',1,0,0)
f(5,120,9,6,'cats/effect/IO$Delay.tag',0,9,0)
f(5,129,29,6,'cats/effect/IO$FlatMap.tag',0,29,0)
f(5,158,8,6,'cats/effect/IO$Pure.tag',0,8,0)
f(5,166,9,6,'cats/effect/IO$Uncancelable.tag',0,9,0)
f(5,175,2,1,'cats/effect/IODeferred$$Lambda$117.0x0000000800d7d800.apply')
f(6,175,2,1,'cats/effect/IODeferred.complete$$anonfun$1')
f(7,175,2,1,'cats/effect/CallbackStack.apply')
f(8,175,2,1,'scala/runtime/function/JProcedure1.apply')
f(9,175,2,1,'scala/runtime/function/JProcedure1.apply')
f(10,175,2,1,'cats/effect/IOFiber$$Lambda$111.0x0000000800d78f90.applyVoid')
f(11,175,2,1,'cats/effect/IOFiber.$anonfun$2')
f(12,175,2,1,'cats/effect/IOFiber.stateLoop$1')
f(13,175,2,1,'cats/effect/IOFiber.loop$1')
f(14,175,2,1,'cats/effect/IOFiber.scheduleFiber')
f(15,175,2,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(16,175,2,1,'cats/effect/unsafe/WorkerThread.schedule')
f(17,175,2,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(18,175,2,1,'java/util/concurrent/locks/LockSupport.unpark')
f(19,175,2,1,'jdk/internal/misc/Unsafe.unpark')
f(20,175,2,3,'pthread_cond_signal')
f(21,175,2,5,'entry_SYSCALL_64_after_hwframe')
f(22,175,2,5,'do_syscall_64')
f(23,175,2,5,'__x64_sys_futex')
f(24,175,2,5,'do_futex')
f(25,175,2,5,'futex_wake')
f(26,176,1,5,'wake_up_q')
f(27,176,1,5,'_raw_spin_unlock_irqrestore')
f(5,177,73,2,'cats/effect/IOFiber.rescheduleFiber',73,0,0)
f(6,177,73,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',73,0,0)
f(7,190,60,2,'cats/effect/unsafe/WorkerThread.reschedule',60,0,0)
f(8,238,12,2,'cats/effect/unsafe/LocalQueue.isEmpty',12,0,0)
f(9,241,9,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',9,0,0)
f(10,246,4,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.accessCheck',4,0,0)
f(5,250,127,1,'cats/effect/IOFiber.succeeded')
f(6,349,1,2,'cats/effect/ArrayStack.pop',1,0,0)
f(6,350,7,2,'cats/effect/ByteStack$.pop',7,0,0)
f(7,351,6,2,'cats/effect/ByteStack$.peek',6,0,0)
f(6,357,20,2,'kyo/bench/CountdownLatchBench$$Lambda$102.0x0000000800d77438.apply',19,0,0)
f(7,359,18,2,'kyo/bench/CountdownLatchBench.iterate$1$$anonfun$1',17,0,0)
f(8,359,18,2,'kyo/bench/CountdownLatchBench.iterate$1',17,0,0)
f(9,359,8,2,'cats/effect/IO.flatMap',7,0,0)
f(10,359,8,2,'cats/effect/IO$FlatMap$.apply',7,0,0)
f(11,366,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(12,366,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(13,366,1,4,'MemAllocator::Allocation::notify_allocation_jfr_sampler()')
f(9,367,5,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release',5,0,0)
f(10,369,2,2,'cats/effect/IO$$anon$2.uncancelable',2,0,0)
f(11,369,2,2,'cats/effect/IO$$anon$2.uncancelable',2,0,0)
f(12,369,2,2,'cats/effect/IO$.uncancelable',2,0,0)
f(13,369,2,2,'cats/effect/IO$Uncancelable$.apply',2,0,0)
f(10,371,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(11,371,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(12,371,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(9,372,5,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',5,0,0)
f(10,372,5,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74000.newInvokeSpecial',5,0,0)
f(11,372,3,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',3,0,0)
f(11,375,2,2,'kyo/bench/CountdownLatchBench$$Lambda$102.0x0000000800d77438.<init>',2,0,0)
f(5,377,14,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$101.0x0000000800d77068.apply',14,0,0)
f(6,377,14,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1',14,0,0)
f(7,382,9,2,'cats/effect/kernel/SyncRef.modify',9,0,0)
f(8,382,9,2,'cats/effect/IO$$anon$2.delay',9,0,0)
f(9,383,8,2,'cats/effect/IO$$anon$2.delay',8,0,0)
f(10,385,6,2,'cats/effect/IO$.apply',6,0,0)
f(11,385,6,2,'cats/effect/IO$.delay',6,0,0)
f(12,390,1,2,'cats/effect/Thunk$.asFunction0',1,0,0)
f(5,391,44,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',44,0,0)
f(6,429,6,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',6,0,0)
f(7,429,3,2,'cats/effect/IOFiber$$Lambda$111.0x0000000800d78f90.<init>',3,0,0)
f(7,432,3,2,'cats/effect/IOFiber$$Lambda$116.0x0000000800d7f860.<init>',3,0,0)
f(8,433,2,2,'java/lang/Object.<init>',2,0,0)
f(5,435,25,3,'vtable stub')
f(3,460,2,1,'cats/effect/IOFiber.cedeR')
f(4,460,2,1,'cats/effect/IOFiber.runLoop')
f(5,461,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(3,462,18,1,'cats/effect/IOFiber.execR')
f(4,462,1,1,'cats/effect/ArrayStack.init')
f(4,463,17,1,'cats/effect/IOFiber.runLoop')
f(5,466,1,6,'cats/effect/IO$Delay.tag',0,1,0)
f(5,467,1,6,'cats/effect/IO$Uncancelable.tag',0,1,0)
f(5,468,7,2,'cats/effect/IOFiber.rescheduleFiber',7,0,0)
f(6,468,7,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',7,0,0)
f(7,470,5,2,'cats/effect/unsafe/WorkerThread.reschedule',5,0,0)
f(8,471,4,2,'cats/effect/unsafe/LocalQueue.isEmpty',4,0,0)
f(9,471,4,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',4,0,0)
f(10,474,1,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.accessCheck',1,0,0)
f(5,475,1,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$101.0x0000000800d77068.apply',1,0,0)
f(6,475,1,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1',1,0,0)
f(7,475,1,2,'cats/effect/kernel/SyncRef.modify',1,0,0)
f(8,475,1,2,'cats/effect/IO$$anon$2.delay',1,0,0)
f(5,476,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(5,479,1,3,'vtable stub')
f(2,480,1,1,'cats/effect/unsafe/ScalQueue.poll')
f(3,480,1,1,'java/util/concurrent/ThreadLocalRandom.nextInt')
f(4,480,1,1,'java/util/Random.nextInt')
f(5,480,1,1,'java/util/concurrent/ThreadLocalRandom.next')
f(6,480,1,1,'java/util/concurrent/ThreadLocalRandom.nextInt')
f(2,481,1,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,481,1,2,'cats/effect/unsafe/ScalQueue.poll',1,0,0)
f(2,482,7,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,482,7,1,'java/util/concurrent/locks/LockSupport.park')
f(4,482,7,1,'jdk/internal/misc/Unsafe.park')
f(5,482,1,3,'Unsafe_Park')
f(6,482,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,482,1,5,'entry_SYSCALL_64_after_hwframe')
f(8,482,1,5,'do_syscall_64')
f(9,482,1,5,'__x64_sys_futex')
f(10,482,1,5,'do_futex')
f(11,482,1,5,'futex_wake')
f(12,482,1,5,'get_futex_key')
f(5,483,6,3,'[unknown]')
f(6,483,6,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,484,5,5,'entry_SYSCALL_64_after_hwframe')
f(8,484,5,5,'do_syscall_64')
f(9,484,4,5,'__x64_sys_futex')
f(10,484,4,5,'do_futex')
f(11,484,4,5,'futex_wait')
f(12,484,4,5,'futex_wait_queue_me')
f(13,484,4,5,'schedule')
f(14,485,3,5,'__schedule')
f(15,485,3,5,'finish_task_switch.isra.0')
f(9,488,1,5,'syscall_exit_to_user_mode')
f(10,488,1,5,'exit_to_user_mode_prepare')
f(11,488,1,5,'exit_to_user_mode_loop')
f(1,489,4,1,'java/lang/Thread.run')
f(2,489,4,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,489,4,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,489,4,1,'java/util/concurrent/FutureTask.run')
f(5,489,4,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,489,4,1,'java/util/concurrent/FutureTask.run')
f(7,489,4,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,489,4,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,489,4,1,'java/lang/reflect/Method.invoke')
f(10,489,4,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,489,4,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,489,4,1,'kyo/bench/jmh_generated/CountdownLatchBench_forkCats_jmhTest.forkCats_Throughput')
f(13,489,4,1,'kyo/bench/jmh_generated/CountdownLatchBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,489,4,1,'kyo/bench/Bench.forkCats')
f(15,489,4,1,'cats/effect/IOPlatform.unsafeRunSync',1,0,0)
f(16,489,4,1,'cats/effect/IOPlatform.unsafeRunTimed',1,0,0)
f(17,489,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(18,489,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(17,490,3,1,'scala/concurrent/package$.blocking')
f(18,490,3,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,490,3,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5a338.apply')
f(20,490,3,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,490,3,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,490,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,490,3,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,490,3,1,'jdk/internal/misc/Unsafe.park')
f(25,490,3,3,'[unknown]')
f(26,490,3,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,490,3,5,'entry_SYSCALL_64_after_hwframe')
f(28,490,3,5,'do_syscall_64')
f(29,490,3,5,'__x64_sys_futex')
f(30,490,3,5,'do_futex')
f(31,490,3,5,'futex_wait')
f(32,490,3,5,'futex_wait_queue_me')
f(33,490,3,5,'schedule')
f(34,490,3,5,'__schedule')
f(35,490,3,5,'finish_task_switch.isra.0')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,34668,3,'all')
f(1,0,31718,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,31718,1,'cats/effect/IOFiber.run')
f(3,0,2,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,0,2,1,'cats/effect/IOFiber.succeeded')
f(5,0,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,0,2,1,'cats/effect/IOFiber.done')
f(7,0,2,1,'cats/effect/CallbackStack.apply')
f(8,0,2,1,'scala/runtime/function/JProcedure1.apply')
f(9,0,2,1,'scala/runtime/function/JProcedure1.apply')
f(10,0,2,1,'cats/effect/IO$$Lambda$94.0x0000000800d70530.applyVoid')
f(11,0,2,1,'cats/effect/IO.$anonfun$6')
f(12,0,1,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(13,0,1,1,'cats/effect/kernel/Outcome.fold$')
f(14,0,1,1,'cats/effect/kernel/Outcome.fold')
f(15,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(16,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(17,0,1,1,'cats/effect/IO$$Lambda$120.0x0000000800d806c8.applyVoid')
f(18,0,1,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(19,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(20,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(21,0,1,1,'cats/effect/IO$$Lambda$93.0x0000000800d6dad0.applyVoid')
f(22,0,1,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(23,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(24,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(25,0,1,1,'cats/effect/IOPlatform$$Lambda$90.0x0000000800d6d000.applyVoid')
f(26,0,1,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(27,0,1,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(28,0,1,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(29,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(30,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(31,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(32,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(33,0,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(12,1,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(13,1,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(14,1,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(15,1,1,2,'cats.effect.IO$$Lambda$118+0x0000000800d80000')
f(3,2,30623,1,'cats/effect/IOFiber.autoCedeR')
f(4,2,30623,1,'cats/effect/IOFiber.runLoop')
f(5,2,2707,2,'cats.effect.IOFiber$$anon$1')
f(5,2709,10209,1,'cats/effect/IOFiber.succeeded')
f(6,2709,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,2709,2,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,2709,2,2,'cats.effect.kernel.Outcome$Succeeded')
f(6,2711,10207,1,'kyo/bench/CountdownLatchBench$$Lambda$101.0x0000000800d765f8.apply')
f(7,2711,10207,1,'kyo/bench/CountdownLatchBench.iterate$1$$anonfun$1')
f(8,2711,10207,1,'kyo/bench/CountdownLatchBench.iterate$1')
f(9,2711,2881,1,'cats/effect/IO.flatMap')
f(10,2711,2881,1,'cats/effect/IO$FlatMap$.apply')
f(11,2711,2881,2,'cats.effect.IO$FlatMap')
f(9,5592,4668,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release')
f(10,5592,2737,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,5592,2737,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,5592,2737,1,'cats/effect/IO$.uncancelable')
f(13,5592,2737,1,'cats/effect/IO$Uncancelable$.apply')
f(14,5592,2737,2,'cats.effect.IO$Uncancelable')
f(10,8329,1931,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,8329,1931,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,8329,1931,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,8329,1931,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$100+0x0000000800d76228')
f(9,10260,2658,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,10260,2658,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800ca4000.newInvokeSpecial')
f(11,10260,2658,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,10260,2658,2,'kyo.bench.CountdownLatchBench$$Lambda$101+0x0000000800d765f8')
f(5,12918,7282,1,'cats/effect/kernel/SyncRef$$Lambda$108.0x0000000800d75a58.apply')
f(6,12918,7282,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,12918,7282,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,12918,7282,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$106.0x0000000800d753c8.apply')
f(9,12918,7282,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1$$anonfun$1')
f(10,12918,1637,1,'cats/effect/IO$$anon$2.unit')
f(11,12918,1637,1,'cats/Applicative.unit$')
f(12,12918,1637,1,'cats/Applicative.unit')
f(13,12918,1637,1,'cats/effect/IO$$anon$2.pure')
f(14,12918,1637,1,'cats/effect/IO$$anon$2.pure')
f(15,12918,1637,1,'cats/effect/IO$.pure')
f(16,12918,1637,1,'cats/effect/IO$Pure$.apply')
f(17,12918,1637,2,'cats.effect.IO$Pure')
f(10,14555,2762,1,'cats/effect/std/CountDownLatch$Awaiting$.apply')
f(11,14555,2762,2,'cats.effect.std.CountDownLatch$Awaiting')
f(10,17317,2883,1,'scala/Tuple2$.apply')
f(11,17317,2883,2,'scala.Tuple2')
f(5,20200,10425,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$100.0x0000000800d76228.apply')
f(6,20200,10425,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1')
f(7,20200,5686,1,'cats/effect/kernel/SyncRef.modify')
f(8,20200,3091,1,'cats/effect/IO$$anon$2.delay')
f(9,20200,3091,1,'cats/effect/IO$$anon$2.delay')
f(10,20200,3091,1,'cats/effect/IO$.apply')
f(11,20200,3091,1,'cats/effect/IO$.delay')
f(12,20200,3091,1,'cats/effect/IO$Delay$.apply')
f(13,20200,3091,2,'cats.effect.IO$Delay')
f(8,23291,2595,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,23291,2595,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,23291,2595,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,23291,2595,2,'cats.effect.kernel.SyncRef$$Lambda$108+0x0000000800d75a58')
f(7,25886,2789,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,25886,2789,1,'cats/effect/IO$$anon$2.flatten')
f(9,25886,2789,1,'cats/FlatMap.flatten$')
f(10,25886,2789,1,'cats/FlatMap.flatten')
f(11,25886,2789,1,'cats/effect/IO$$anon$2.flatMap')
f(12,25886,2789,1,'cats/effect/IO$$anon$2.flatMap')
f(13,25886,2789,1,'cats/effect/IO.flatMap')
f(14,25886,2789,1,'cats/effect/IO$FlatMap$.apply')
f(15,25886,2789,2,'cats.effect.IO$FlatMap')
f(7,28675,1950,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,28675,1950,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,28675,1950,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,28675,1950,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$106+0x0000000800d753c8')
f(3,30625,1093,1,'cats/effect/IOFiber.execR')
f(4,30625,2,1,'cats/effect/ArrayStack.init')
f(5,30625,2,2,'java.lang.Object[]')
f(4,30627,429,1,'cats/effect/ByteStack$.create')
f(5,30627,429,2,'int[]')
f(4,31056,662,1,'cats/effect/IOFiber.runLoop')
f(5,31056,62,2,'cats.effect.IOFiber$$anon$1')
f(5,31118,1,2,'cats.effect.IOFiber')
f(5,31119,1,1,'cats/effect/IO$$$Lambda$39.0x0000000800ca0a88.apply')
f(6,31119,1,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,31119,1,1,'cats/effect/IODeferred.<init>')
f(8,31119,1,1,'cats/effect/CallbackStack$.apply')
f(9,31119,1,2,'cats.effect.CallbackStack')
f(5,31120,1,1,'cats/effect/IO$$$Lambda$98.0x0000000800d735a0.apply')
f(6,31120,1,1,'cats/effect/IO$.ref$$anonfun$1')
f(7,31120,1,1,'cats/effect/kernel/Ref$.unsafe')
f(8,31120,1,2,'cats.effect.kernel.SyncRef')
f(5,31121,1,1,'cats/effect/IO$.apply')
f(6,31121,1,1,'cats/effect/IO$.delay')
f(7,31121,1,1,'cats/effect/IO$Delay$.apply')
f(8,31121,1,2,'cats.effect.IO$Delay')
f(5,31122,2,1,'cats/effect/IODeferred$$anon$1$$Lambda$112.0x0000000800d79fc8.apply')
f(6,31122,2,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1$$anonfun$1')
f(7,31122,1,1,'cats/effect/IO$.apply')
f(8,31122,1,1,'cats/effect/IO$.delay')
f(9,31122,1,1,'cats/effect/IO$Delay$.apply')
f(10,31122,1,2,'cats.effect.IO$Delay')
f(7,31123,1,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d7c800.linkToTargetMethod')
f(8,31123,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7c400.newInvokeSpecial')
f(9,31123,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,31123,1,2,'cats.effect.IODeferred$$anon$1$$Lambda$113+0x0000000800d7a398')
f(5,31124,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$113.0x0000000800d7a398.apply')
f(6,31124,1,1,'cats/effect/IODeferred$$anon$1.$anonfun$1')
f(7,31124,1,1,'cats/effect/IO$.apply')
f(8,31124,1,1,'cats/effect/IO$.delay')
f(9,31124,1,1,'cats/effect/IO$Delay$.apply')
f(10,31124,1,2,'cats.effect.IO$Delay')
f(5,31125,1,1,'cats/effect/IODeferred$$anon$1.apply')
f(6,31125,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,31125,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,31125,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,31125,1,2,'cats.effect.IODeferred$$anon$1$$Lambda$111+0x0000000800d792f8')
f(5,31126,4,1,'cats/effect/IOFiber.<init>')
f(6,31126,1,1,'cats/effect/ArrayStack$.apply')
f(7,31126,1,2,'cats.effect.ArrayStack')
f(6,31127,1,1,'cats/effect/CallbackStack$.apply')
f(7,31127,1,2,'cats.effect.CallbackStack')
f(6,31128,1,1,'cats/effect/IO$.async')
f(7,31128,1,2,'cats.effect.IO$$anon$3')
f(6,31129,1,1,'cats/effect/IO$.uncancelable')
f(7,31129,1,1,'cats/effect/IO$Uncancelable$.apply')
f(8,31129,1,2,'cats.effect.IO$Uncancelable')
f(5,31130,204,1,'cats/effect/IOFiber.succeeded')
f(6,31130,4,1,'cats/effect/std/CountDownLatch$$$Lambda$42.0x0000000800ca2008.apply')
f(7,31130,4,1,'cats/effect/std/CountDownLatch$.apply$$anonfun$1')
f(8,31130,3,1,'cats/effect/IO$$anon$2.ref')
f(9,31130,3,1,'cats/effect/IO$$anon$2.ref')
f(10,31130,3,1,'cats/effect/IO$.ref')
f(11,31130,1,1,'cats/effect/IO$.apply')
f(12,31130,1,1,'cats/effect/IO$.delay')
f(13,31130,1,1,'cats/effect/IO$Delay$.apply')
f(14,31130,1,2,'cats.effect.IO$Delay')
f(11,31131,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(12,31131,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(13,31131,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(14,31131,2,2,'cats.effect.IO$$$Lambda$98+0x0000000800d735a0')
f(8,31133,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,31133,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,31133,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,31133,1,2,'cats.effect.std.CountDownLatch$$$Lambda$99+0x0000000800d73860')
f(6,31134,198,1,'kyo/bench/CountdownLatchBench$$Lambda$101.0x0000000800d765f8.apply')
f(7,31134,198,1,'kyo/bench/CountdownLatchBench.iterate$1$$anonfun$1')
f(8,31134,198,1,'kyo/bench/CountdownLatchBench.iterate$1')
f(9,31134,48,1,'cats/effect/IO.flatMap')
f(10,31134,48,1,'cats/effect/IO$FlatMap$.apply')
f(11,31134,48,2,'cats.effect.IO$FlatMap')
f(9,31182,90,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release')
f(10,31182,49,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,31182,49,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,31182,49,1,'cats/effect/IO$.uncancelable')
f(13,31182,49,1,'cats/effect/IO$Uncancelable$.apply')
f(14,31182,49,2,'cats.effect.IO$Uncancelable')
f(10,31231,41,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,31231,41,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,31231,41,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,31231,41,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$100+0x0000000800d76228')
f(9,31272,60,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,31272,60,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800ca4000.newInvokeSpecial')
f(11,31272,60,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,31272,60,2,'kyo.bench.CountdownLatchBench$$Lambda$101+0x0000000800d765f8')
f(6,31332,2,1,'kyo/bench/CountdownLatchBench$$Lambda$102.0x0000000800d76be8.apply')
f(7,31332,2,1,'kyo/bench/CountdownLatchBench.catsBench$$anonfun$1$$anonfun$1')
f(8,31332,2,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.await')
f(9,31332,2,1,'cats/effect/kernel/SyncRef.get')
f(10,31332,2,1,'cats/effect/IO$$anon$2.delay')
f(11,31332,2,1,'cats/effect/IO$$anon$2.delay')
f(12,31332,2,1,'cats/effect/IO$.apply')
f(13,31332,2,1,'cats/effect/IO$.delay')
f(14,31332,2,1,'cats/effect/IO$Delay$.apply')
f(15,31332,2,2,'cats.effect.IO$Delay')
f(5,31334,146,1,'cats/effect/kernel/SyncRef$$Lambda$108.0x0000000800d75a58.apply')
f(6,31334,146,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,31334,146,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,31334,146,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$106.0x0000000800d753c8.apply')
f(9,31334,146,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1$$anonfun$1')
f(10,31334,29,1,'cats/effect/IO$$anon$2.unit')
f(11,31334,29,1,'cats/Applicative.unit$')
f(12,31334,29,1,'cats/Applicative.unit')
f(13,31334,29,1,'cats/effect/IO$$anon$2.pure')
f(14,31334,29,1,'cats/effect/IO$$anon$2.pure')
f(15,31334,29,1,'cats/effect/IO$.pure')
f(16,31334,29,1,'cats/effect/IO$Pure$.apply')
f(17,31334,29,2,'cats.effect.IO$Pure')
f(10,31363,53,1,'cats/effect/std/CountDownLatch$Awaiting$.apply')
f(11,31363,53,2,'cats.effect.std.CountDownLatch$Awaiting')
f(10,31416,64,1,'scala/Tuple2$.apply')
f(11,31416,64,2,'scala.Tuple2')
f(5,31480,226,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$100.0x0000000800d76228.apply')
f(6,31480,226,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1')
f(7,31480,119,1,'cats/effect/kernel/SyncRef.modify')
f(8,31480,55,1,'cats/effect/IO$$anon$2.delay')
f(9,31480,55,1,'cats/effect/IO$$anon$2.delay')
f(10,31480,55,1,'cats/effect/IO$.apply')
f(11,31480,55,1,'cats/effect/IO$.delay')
f(12,31480,55,1,'cats/effect/IO$Delay$.apply')
f(13,31480,55,2,'cats.effect.IO$Delay')
f(8,31535,64,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,31535,64,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,31535,64,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,31535,64,2,'cats.effect.kernel.SyncRef$$Lambda$108+0x0000000800d75a58')
f(7,31599,53,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,31599,53,1,'cats/effect/IO$$anon$2.flatten')
f(9,31599,53,1,'cats/FlatMap.flatten$')
f(10,31599,53,1,'cats/FlatMap.flatten')
f(11,31599,53,1,'cats/effect/IO$$anon$2.flatMap')
f(12,31599,53,1,'cats/effect/IO$$anon$2.flatMap')
f(13,31599,53,1,'cats/effect/IO.flatMap')
f(14,31599,53,1,'cats/effect/IO$FlatMap$.apply')
f(15,31599,53,2,'cats.effect.IO$FlatMap')
f(7,31652,54,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,31652,54,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,31652,54,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,31652,54,2,'cats.effect.std.CountDownLatch$ConcurrentCountDownLatch$$Lambda$106+0x0000000800d753c8')
f(5,31706,1,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$104.0x0000000800d779e8.apply')
f(6,31706,1,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.await$$anonfun$1')
f(7,31706,1,1,'cats/effect/IODeferred.get')
f(8,31706,1,1,'cats/effect/IODeferred.get')
f(9,31706,1,1,'cats/effect/IO$.defer')
f(10,31706,1,1,'cats/effect/IO$.delay')
f(11,31706,1,1,'cats/effect/IO$Delay$.apply')
f(12,31706,1,2,'cats.effect.IO$Delay')
f(5,31707,11,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(6,31707,11,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(7,31707,11,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(8,31707,11,2,'cats.effect.IOFiber$$Lambda$115+0x0000000800d7f060')
f(1,31718,1,2,'java.lang.String')
f(1,31719,2926,1,'java/lang/Thread.run')
f(2,31719,2926,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,31719,2926,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,31719,2926,1,'java/util/concurrent/FutureTask.run')
f(5,31719,2926,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,31719,2926,1,'java/util/concurrent/FutureTask.run')
f(7,31719,2926,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,31719,2926,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,31719,2926,1,'java/lang/reflect/Method.invoke')
f(10,31719,2926,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,31719,2926,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,31719,2926,1,'kyo/bench/jmh_generated/CountdownLatchBench_syncCats_jmhTest.syncCats_Throughput')
f(13,31719,2925,1,'kyo/bench/jmh_generated/CountdownLatchBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,31719,2925,1,'kyo/bench/Bench.syncCats')
f(15,31719,2170,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,31719,2164,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,31719,1190,1,'cats/effect/IO.unsafeRunAsync')
f(18,31719,1111,1,'cats/effect/IO.unsafeRunFiber')
f(19,31719,191,5,'cats.effect.IOFiber')
f(19,31910,854,1,'cats/effect/IOFiber.<init>')
f(20,31910,686,1,'cats/effect/ArrayStack$.apply')
f(21,31910,686,2,'cats.effect.ArrayStack')
f(20,32596,55,1,'cats/effect/IO$.async')
f(21,32596,30,2,'cats.effect.IO$$anon$3')
f(21,32626,25,1,'cats/effect/IO$IOCont$.apply')
f(22,32626,25,2,'cats.effect.IO$IOCont')
f(20,32651,22,1,'cats/effect/IO$.uncancelable')
f(21,32651,22,1,'cats/effect/IO$Uncancelable$.apply')
f(22,32651,22,2,'cats.effect.IO$Uncancelable')
f(20,32673,91,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,32673,91,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,32673,91,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,32673,65,2,'cats.effect.IOFiber$$Lambda$95+0x0000000800d71368')
f(23,32738,26,2,'cats.effect.IOFiber$$Lambda$96+0x0000000800d71958')
f(19,32764,66,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,32764,66,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74400.newInvokeSpecial')
f(21,32764,66,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,32764,66,2,'cats.effect.IO$$Lambda$94+0x0000000800d70530')
f(18,32830,79,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,32830,79,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,32830,79,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,32830,24,2,'cats.effect.IO$$Lambda$91+0x0000000800d6d408')
f(21,32854,28,2,'cats.effect.IO$$Lambda$92+0x0000000800d6d6c8')
f(21,32882,27,2,'cats.effect.IO$$Lambda$93+0x0000000800d6dad0')
f(17,32909,26,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,32935,20,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,32935,20,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,32935,20,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,32935,20,2,'cats.effect.IOPlatform$$Lambda$90+0x0000000800d6d000')
f(17,32955,762,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,32955,762,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,32955,66,2,'java.lang.Object[]')
f(19,33021,80,2,'java.util.concurrent.locks.ReentrantLock')
f(19,33101,561,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,33101,561,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,33662,55,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,33662,55,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,33662,55,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,33717,47,1,'scala/concurrent/package$.blocking')
f(18,33717,47,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,33717,47,1,'cats/effect/IOPlatform$$Lambda$97.0x0000000800d72338.apply')
f(20,33717,47,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,33717,47,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,33717,47,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,33717,47,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,33764,119,1,'scala/util/Either.fold')
f(18,33764,119,1,'cats/effect/IOPlatform$$Lambda$122.0x0000000800d81170.apply')
f(19,33764,119,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,33764,119,1,'scala/Some$.apply')
f(21,33764,119,2,'scala.Some')
f(16,33883,6,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,33883,6,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,33883,6,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,33883,6,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,33883,6,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,33883,6,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,33883,6,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,33883,6,2,'scala.concurrent.duration.FiniteDuration')
f(15,33889,755,1,'kyo/bench/CountdownLatchBench.catsBench')
f(16,33889,31,1,'cats/effect/IO.flatMap')
f(17,33889,31,1,'cats/effect/IO$FlatMap$.apply')
f(18,33889,31,2,'cats.effect.IO$FlatMap')
f(16,33920,696,1,'cats/effect/std/CountDownLatch$.apply')
f(17,33920,23,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(18,33920,23,1,'cats/FlatMap$Ops.flatMap$')
f(19,33920,23,1,'cats/FlatMap$Ops.flatMap')
f(20,33920,23,1,'cats/effect/IO$$anon$2.flatMap')
f(21,33920,23,1,'cats/effect/IO$$anon$2.flatMap')
f(22,33920,23,1,'cats/effect/IO.flatMap')
f(23,33920,23,1,'cats/effect/IO$FlatMap$.apply')
f(24,33920,23,2,'cats.effect.IO$FlatMap')
f(17,33943,602,1,'cats/effect/std/CountDownLatch$State$.initial')
f(18,33943,1,1,'cats/Functor$ToFunctorOps$$anon$4.map')
f(19,33943,1,1,'cats/Functor$Ops.map$')
f(20,33943,1,1,'cats/Functor$Ops.map')
f(21,33943,1,1,'cats/effect/IO$$anon$2.map')
f(22,33943,1,1,'cats/effect/IO$$anon$2.map')
f(23,33943,1,1,'cats/effect/IO.map')
f(24,33943,1,1,'cats/effect/IO$Map$.apply')
f(25,33943,1,2,'cats.effect.IO$Map')
f(18,33944,75,1,'cats/effect/IO$$anon$2.deferred')
f(19,33944,75,1,'cats/effect/IO$$anon$2.deferred')
f(20,33944,75,1,'cats/effect/IO$.deferred')
f(21,33944,1,1,'cats/effect/IO$.apply')
f(22,33944,1,1,'cats/effect/IO$.delay')
f(23,33944,1,1,'cats/effect/IO$Delay$.apply')
f(24,33944,1,2,'cats.effect.IO$Delay')
f(21,33945,74,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(22,33945,74,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(23,33945,74,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(24,33945,74,2,'cats.effect.IO$$$Lambda$39+0x0000000800ca0a88')
f(18,34019,526,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,34019,526,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800ca4000.newInvokeSpecial')
f(20,34019,526,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,34019,526,2,'cats.effect.std.CountDownLatch$State$$$Lambda$41+0x0000000800ca17b8')
f(17,34545,71,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,34545,71,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,34545,71,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,34545,71,2,'cats.effect.std.CountDownLatch$$$Lambda$42+0x0000000800ca2008')
f(16,34616,28,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,34616,28,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,34616,28,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,34616,28,2,'kyo.bench.CountdownLatchBench$$Lambda$43+0x0000000800ca25f8')
f(13,34644,1,2,'org.openjdk.jmh.results.RawResults')
f(1,34645,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,34645,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,34645,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,34645,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,34645,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,34645,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,34645,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,34645,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,34645,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,34645,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,34645,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,34645,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,34645,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,34645,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,34645,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,34645,1,2,'java.lang.Object[]')
f(7,34646,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,34646,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,34646,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,34649,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,34649,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,34649,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,34649,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,34649,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,34649,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,34654,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,34654,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,34654,3,1,'java/lang/ClassLoader.loadClass')
f(10,34654,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,34654,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,34654,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,34654,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,34654,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,34654,1,1,'java/security/CodeSource.<init>')
f(16,34654,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,34654,1,1,'java/lang/StringBuilder.append')
f(18,34654,1,1,'java/lang/AbstractStringBuilder.append')
f(19,34654,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,34654,1,1,'java/util/Arrays.copyOf')
f(21,34654,1,2,'byte[]')
f(15,34655,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,34655,1,1,'java/util/Arrays.copyOf')
f(17,34655,1,5,'byte[]')
f(14,34656,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,34656,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,34656,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,34656,1,1,'java/net/URL.<init>')
f(18,34656,1,1,'java/net/URL.<init>')
f(19,34656,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,34656,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,34656,1,1,'java/lang/StringBuilder.toString')
f(22,34656,1,1,'java/lang/StringLatin1.newString')
f(23,34656,1,2,'java.lang.String')
f(9,34657,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,34657,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,34657,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,34657,11,1,'java/io/ObjectStreamClass.lookup')
f(13,34657,11,1,'java/io/ObjectStreamClass.<init>')
f(14,34657,11,1,'java/security/AccessController.doPrivileged')
f(15,34657,11,1,'java/security/AccessController.executePrivileged')
f(16,34657,11,1,'java/io/ObjectStreamClass$2.run')
f(17,34657,11,1,'java/io/ObjectStreamClass$2.run')
f(18,34657,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,34657,2,1,'java/lang/Class.getDeclaredMethod')
f(20,34657,1,1,'java/lang/Class.methodToString')
f(21,34657,1,1,'java/lang/StringBuilder.append')
f(22,34657,1,1,'java/lang/AbstractStringBuilder.append')
f(23,34657,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,34657,1,1,'java/util/Arrays.copyOf')
f(25,34657,1,2,'byte[]')
f(20,34658,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,34658,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,34658,1,1,'java/lang/Exception.<init>')
f(23,34658,1,1,'java/lang/Throwable.<init>')
f(24,34658,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,34658,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,34658,1,2,'short[]')
f(18,34659,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,34659,3,1,'java/lang/Class.getDeclaredMethod')
f(20,34659,2,1,'java/lang/Class.methodToString')
f(21,34659,1,1,'java/lang/StringBuilder.append')
f(22,34659,1,1,'java/lang/AbstractStringBuilder.append')
f(23,34659,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,34659,1,1,'java/util/Arrays.copyOf')
f(25,34659,1,2,'byte[]')
f(21,34660,1,1,'java/lang/StringBuilder.toString')
f(22,34660,1,1,'java/lang/StringLatin1.newString')
f(23,34660,1,1,'java/util/Arrays.copyOfRange')
f(24,34660,1,2,'byte[]')
f(20,34661,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,34661,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,34661,1,1,'java/lang/Exception.<init>')
f(23,34661,1,1,'java/lang/Throwable.<init>')
f(24,34661,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,34661,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,34661,1,5,'long[]')
f(18,34662,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,34662,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,34662,1,1,'java/lang/Class.getDeclaredField')
f(21,34662,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,34662,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,34662,1,1,'java/lang/Exception.<init>')
f(24,34662,1,1,'java/lang/Throwable.<init>')
f(25,34662,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,34662,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,34662,1,2,'long[]')
f(18,34663,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,34663,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,34663,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,34663,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,34663,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,34663,1,1,'java/security/AccessController.doPrivileged')
f(24,34663,1,1,'java/security/AccessController.executePrivileged')
f(25,34663,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,34663,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,34663,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,34663,1,1,'java/security/AccessController.doPrivileged')
f(29,34663,1,1,'java/security/AccessController.executePrivileged')
f(30,34663,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,34663,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,34663,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,34663,1,1,'java/lang/ClassLoader.<init>')
f(34,34663,1,1,'java/lang/ClassLoader.<init>')
f(35,34663,1,1,'java/lang/ClassLoader.nameAndId')
f(36,34663,1,1,'java/lang/StringBuilder.<init>')
f(37,34663,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,34663,1,2,'byte[]')
f(23,34664,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,34664,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,34664,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,34664,1,2,'byte[]')
f(23,34665,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,34665,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,34665,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,34665,1,2,'byte[]')
f(23,34666,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,34666,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,34666,1,1,'java/lang/String.replace')
f(26,34666,1,1,'java/lang/StringLatin1.replace')
f(27,34666,1,2,'java.lang.String')
f(23,34667,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,34667,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 656px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(41);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,494,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1CollectedHeap::post_evacuate_collection_set(G1EvacuationInfo&, G1RedirtyCardsQueueSet*, G1ParScanThreadStateSet*)')
f(12,0,1,4,'void WeakProcessor::weak_oops_do<G1STWIsAliveClosure, G1KeepAliveClosure>(WorkGang*, G1STWIsAliveClosure*, G1KeepAliveClosure*, WeakProcessorTimes*)')
f(13,0,1,4,'WorkGang::run_task(AbstractGangTask*, unsigned int, bool)')
f(14,0,1,3,'sem_post')
f(15,0,1,5,'entry_SYSCALL_64_after_hwframe')
f(16,0,1,5,'do_syscall_64')
f(17,0,1,5,'__x64_sys_futex')
f(18,0,1,5,'do_futex')
f(19,0,1,5,'futex_wake')
f(20,0,1,5,'wake_up_q')
f(21,0,1,5,'_raw_spin_unlock_irqrestore')
f(1,1,8,3,'[unknown_Java]')
f(2,1,2,6,'cats/effect/IO$Delay.tag',0,2,0)
f(2,3,4,6,'cats/effect/IO$FlatMap.tag',0,4,0)
f(2,7,1,6,'cats/effect/IO$Pure.tag',0,1,0)
f(2,8,1,6,'cats/effect/IO$Uncancelable.tag',0,1,0)
f(1,9,481,1,'cats/effect/unsafe/WorkerThread.run')
f(2,9,475,1,'cats/effect/IOFiber.run',1,0,0)
f(3,9,4,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,9,4,1,'cats/effect/IOFiber.succeeded')
f(5,9,4,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,9,4,1,'cats/effect/IOFiber.done')
f(7,9,4,1,'cats/effect/CallbackStack.apply')
f(8,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(9,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(10,9,4,1,'cats/effect/IO$$Lambda$94.0x0000000800d70530.applyVoid')
f(11,9,4,1,'cats/effect/IO.$anonfun$6')
f(12,9,4,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(13,9,4,1,'cats/effect/kernel/Outcome.fold$')
f(14,9,4,1,'cats/effect/kernel/Outcome.fold')
f(15,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(16,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(17,9,4,1,'cats/effect/IO$$Lambda$120.0x0000000800d806c8.applyVoid')
f(18,9,4,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(19,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(20,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(21,9,4,1,'cats/effect/IO$$Lambda$93.0x0000000800d6dad0.applyVoid')
f(22,9,4,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(23,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(24,9,4,1,'scala/runtime/function/JProcedure1.apply')
f(25,10,3,1,'cats/effect/IOPlatform$$Lambda$90.0x0000000800d6d000.applyVoid')
f(26,10,3,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(27,10,3,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(28,10,3,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(29,10,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(30,10,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(31,10,3,1,'java/util/concurrent/locks/LockSupport.unpark')
f(32,10,3,1,'jdk/internal/misc/Unsafe.unpark')
f(33,10,3,3,'pthread_cond_signal')
f(34,10,3,5,'entry_SYSCALL_64_after_hwframe')
f(35,10,3,5,'do_syscall_64')
f(36,10,3,5,'__x64_sys_futex')
f(37,10,3,5,'do_futex')
f(38,10,3,5,'futex_wake')
f(39,10,3,5,'wake_up_q')
f(40,10,3,5,'_raw_spin_unlock_irqrestore')
f(3,13,461,1,'cats/effect/IOFiber.autoCedeR')
f(4,13,461,1,'cats/effect/IOFiber.runLoop')
f(5,89,55,2,'cats/effect/ArrayStack.push',55,0,0)
f(6,106,38,2,'cats/effect/ArrayStack.checkAndGrow',38,0,0)
f(5,144,2,2,'cats/effect/ByteStack$.push',2,0,0)
f(5,146,24,2,'cats/effect/IO$.apply',24,0,0)
f(6,147,23,2,'cats/effect/IO$.delay',23,0,0)
f(7,164,2,2,'cats/effect/IO$Delay$.apply',2,0,0)
f(7,166,4,2,'cats/effect/tracing/TracingPlatform.calculateTracingEvent',4,0,0)
f(5,170,13,6,'cats/effect/IO$Delay.tag',0,13,0)
f(5,183,22,6,'cats/effect/IO$FlatMap.tag',0,22,0)
f(5,205,8,6,'cats/effect/IO$Pure.tag',0,8,0)
f(5,213,15,6,'cats/effect/IO$Uncancelable.tag',0,15,0)
f(5,228,4,1,'cats/effect/IODeferred$$Lambda$116.0x0000000800d7f7f0.apply')
f(6,229,3,1,'cats/effect/IODeferred.complete$$anonfun$1')
f(7,229,3,1,'cats/effect/CallbackStack.apply')
f(8,229,3,1,'scala/runtime/function/JProcedure1.apply')
f(9,229,3,1,'scala/runtime/function/JProcedure1.apply')
f(10,229,3,1,'cats/effect/IOFiber$$Lambda$110.0x0000000800d785d0.applyVoid')
f(11,229,3,1,'cats/effect/IOFiber.$anonfun$2')
f(12,229,3,1,'cats/effect/IOFiber.stateLoop$1')
f(13,229,3,1,'cats/effect/IOFiber.loop$1')
f(14,229,3,1,'cats/effect/IOFiber.scheduleFiber')
f(15,229,3,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(16,229,3,2,'cats/effect/unsafe/WorkerThread.schedule',1,0,0)
f(17,229,1,2,'cats/effect/unsafe/LocalQueue.enqueue',1,0,0)
f(17,230,2,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(18,230,2,1,'java/util/concurrent/locks/LockSupport.unpark')
f(19,230,2,1,'jdk/internal/misc/Unsafe.unpark')
f(20,230,2,3,'pthread_cond_signal')
f(21,230,2,5,'entry_SYSCALL_64_after_hwframe')
f(22,230,2,5,'do_syscall_64')
f(23,230,2,5,'__x64_sys_futex')
f(24,230,2,5,'do_futex')
f(25,230,2,5,'futex_wake')
f(26,230,2,5,'wake_up_q')
f(27,230,2,5,'_raw_spin_unlock_irqrestore')
f(5,232,62,2,'cats/effect/IOFiber.rescheduleFiber',62,0,0)
f(6,236,58,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',58,0,0)
f(7,238,7,2,'cats/effect/unsafe/WorkerThread.isOwnedBy',7,0,0)
f(7,245,49,2,'cats/effect/unsafe/WorkerThread.reschedule',49,0,0)
f(8,272,22,2,'cats/effect/unsafe/LocalQueue.isEmpty',22,0,0)
f(9,289,5,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',5,0,0)
f(10,291,3,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.accessCheck',3,0,0)
f(5,294,114,1,'cats/effect/IOFiber.succeeded')
f(6,371,4,2,'cats/effect/ArrayStack.pop',4,0,0)
f(6,375,18,2,'cats/effect/ByteStack$.pop',18,0,0)
f(7,381,12,2,'cats/effect/ByteStack$.peek',12,0,0)
f(6,393,15,2,'kyo/bench/CountdownLatchBench$$Lambda$101.0x0000000800d765f8.apply',15,0,0)
f(7,395,13,2,'kyo/bench/CountdownLatchBench.iterate$1$$anonfun$1',13,0,0)
f(8,395,13,2,'kyo/bench/CountdownLatchBench.iterate$1',13,0,0)
f(9,395,7,2,'cats/effect/IO.flatMap',7,0,0)
f(10,395,7,2,'cats/effect/IO$FlatMap$.apply',7,0,0)
f(11,401,1,2,'cats/effect/IO$FlatMap.<init>',1,0,0)
f(9,402,4,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release',4,0,0)
f(10,404,1,2,'cats/effect/IO$$anon$2.uncancelable',1,0,0)
f(11,404,1,2,'cats/effect/IO$$anon$2.uncancelable',1,0,0)
f(12,404,1,2,'cats/effect/IO$.uncancelable',1,0,0)
f(13,404,1,2,'cats/effect/IO$Uncancelable$.apply',1,0,0)
f(10,405,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(11,405,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(12,405,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(9,406,2,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',2,0,0)
f(10,406,2,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800ca4000.newInvokeSpecial',2,0,0)
f(11,406,2,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',2,0,0)
f(5,408,27,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$100.0x0000000800d76228.apply',26,0,0)
f(6,408,27,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1',26,0,0)
f(7,409,22,2,'cats/effect/kernel/SyncRef.modify',22,0,0)
f(8,417,9,2,'cats/effect/IO$$anon$2.delay',9,0,0)
f(9,417,9,2,'cats/effect/IO$$anon$2.delay',9,0,0)
f(10,417,9,2,'cats/effect/IO$.apply',9,0,0)
f(11,417,9,2,'cats/effect/IO$.delay',9,0,0)
f(12,417,6,2,'cats/effect/IO$Delay$.apply',6,0,0)
f(13,417,6,2,'cats/effect/IO$Delay.<init>',6,0,0)
f(14,417,6,2,'cats/effect/IO.<init>',6,0,0)
f(15,417,6,2,'cats/effect/IOPlatform.<init>',6,0,0)
f(12,423,2,2,'cats/effect/Thunk$.asFunction0',2,0,0)
f(13,424,1,2,'cats/effect/Thunk$$$Lambda$40.0x0000000800ca0f50.apply',1,0,0)
f(12,425,1,2,'cats/effect/tracing/TracingPlatform.calculateTracingEvent',1,0,0)
f(8,426,5,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',5,0,0)
f(9,426,5,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',5,0,0)
f(10,429,2,2,'cats/effect/kernel/SyncRef$$Lambda$107.0x0000000800d75798.<init>',2,0,0)
f(7,431,4,2,'cats/syntax/FlattenOps$.flatten$extension',3,0,0)
f(8,432,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(9,432,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(10,432,1,4,'MemAllocator::allocate() const')
f(11,432,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(12,432,1,4,'ThreadLocalAllocBuffer::retire_before_allocation()')
f(13,432,1,4,'CollectedHeap::fill_with_dummy_object(HeapWordImpl**, HeapWordImpl**, bool)')
f(8,433,2,2,'cats/effect/IO$$anon$2.flatten',2,0,0)
f(9,434,1,2,'cats/FlatMap.flatten$',1,0,0)
f(10,434,1,2,'cats/FlatMap.flatten',1,0,0)
f(11,434,1,2,'cats/effect/IO$$anon$2.flatMap',1,0,0)
f(12,434,1,2,'cats/effect/IO$$anon$2.flatMap',1,0,0)
f(5,435,8,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',8,0,0)
f(6,435,8,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',8,0,0)
f(7,435,8,2,'cats/effect/IOFiber$$Lambda$110.0x0000000800d785d0.<init>',8,0,0)
f(5,443,7,2,'java/util/concurrent/atomic/AtomicReference.compareAndSet',7,0,0)
f(6,443,7,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',7,0,0)
f(7,443,2,2,'java/lang/invoke/VarForm.getMemberName',2,0,0)
f(7,445,5,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',5,0,0)
f(5,450,24,3,'vtable stub')
f(3,474,10,1,'cats/effect/IOFiber.execR',1,0,0)
f(4,475,9,1,'cats/effect/IOFiber.runLoop')
f(5,477,1,2,'cats/effect/ArrayStack.push',1,0,0)
f(6,477,1,2,'cats/effect/ArrayStack.checkAndGrow',1,0,0)
f(5,478,1,6,'cats/effect/IO$Pure.tag',0,1,0)
f(5,479,1,1,'cats/effect/IOFiber.scheduleFiber')
f(6,479,1,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(7,479,1,1,'cats/effect/unsafe/WorkerThread.schedule')
f(8,479,1,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(9,479,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(10,479,1,1,'jdk/internal/misc/Unsafe.unpark')
f(11,479,1,3,'pthread_cond_signal')
f(12,479,1,5,'entry_SYSCALL_64_after_hwframe')
f(13,479,1,5,'do_syscall_64')
f(14,479,1,5,'__x64_sys_futex')
f(15,479,1,5,'do_futex')
f(16,479,1,5,'futex_wake')
f(17,479,1,5,'wake_up_q')
f(18,479,1,5,'_raw_spin_unlock_irqrestore')
f(5,480,1,1,'cats/effect/IOFiber.succeeded')
f(5,481,1,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$100.0x0000000800d76228.apply',1,0,0)
f(6,481,1,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.release$$anonfun$1',1,0,0)
f(7,481,1,2,'cats/effect/kernel/SyncRef.modify',1,0,0)
f(8,481,1,2,'cats/effect/IO$$anon$2.delay',1,0,0)
f(9,481,1,2,'cats/effect/IO$$anon$2.delay',1,0,0)
f(10,481,1,2,'cats/effect/IO$.apply',1,0,0)
f(11,481,1,2,'cats/effect/IO$.delay',1,0,0)
f(12,481,1,2,'cats/effect/IO$Delay$.apply',1,0,0)
f(13,481,1,2,'cats/effect/IO$Delay.<init>',1,0,0)
f(14,481,1,2,'cats/effect/IO.<init>',1,0,0)
f(15,481,1,2,'cats/effect/IOPlatform.<init>',1,0,0)
f(5,482,1,1,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch$$Lambda$104.0x0000000800d779e8.apply')
f(6,482,1,2,'cats/effect/std/CountDownLatch$ConcurrentCountDownLatch.await$$anonfun$1',1,0,0)
f(7,482,1,2,'cats/effect/IODeferred.get',1,0,0)
f(8,482,1,2,'cats/effect/IODeferred.get',1,0,0)
f(9,482,1,2,'cats/effect/IO$.defer',1,0,0)
f(10,482,1,2,'cats/effect/IO$.delay',1,0,0)
f(11,482,1,2,'cats/effect/IO$Delay$.apply',1,0,0)
f(5,483,1,3,'vtable stub')
f(2,484,6,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,484,6,1,'java/util/concurrent/locks/LockSupport.park')
f(4,484,6,1,'jdk/internal/misc/Unsafe.park')
f(5,484,2,3,'Unsafe_Park')
f(6,484,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,484,1,5,'entry_SYSCALL_64_after_hwframe')
f(8,484,1,5,'do_syscall_64')
f(9,484,1,5,'syscall_enter_from_user_mode')
f(6,485,1,3,'pthread_mutex_unlock')
f(5,486,4,3,'[unknown]')
f(6,486,3,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,486,3,5,'entry_SYSCALL_64_after_hwframe')
f(8,486,3,5,'do_syscall_64')
f(9,486,3,5,'__x64_sys_futex')
f(10,486,3,5,'do_futex')
f(11,486,3,5,'futex_wait')
f(12,486,3,5,'futex_wait_queue_me')
f(13,486,3,5,'schedule')
f(14,486,3,5,'__schedule')
f(15,486,3,5,'finish_task_switch.isra.0')
f(6,489,1,3,'pthread_cond_wait')
f(1,490,4,1,'java/lang/Thread.run')
f(2,490,4,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,490,4,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,490,4,1,'java/util/concurrent/FutureTask.run')
f(5,490,4,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,490,4,1,'java/util/concurrent/FutureTask.run')
f(7,490,4,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,490,4,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,490,4,1,'java/lang/reflect/Method.invoke')
f(10,490,4,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,490,4,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,490,4,1,'kyo/bench/jmh_generated/CountdownLatchBench_syncCats_jmhTest.syncCats_Throughput')
f(13,490,4,1,'kyo/bench/jmh_generated/CountdownLatchBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,490,4,1,'kyo/bench/Bench.syncCats')
f(15,490,4,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,490,4,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,490,1,1,'cats/effect/IO.unsafeRunAsync')
f(18,490,1,1,'cats/effect/IO.unsafeRunFiber')
f(19,490,1,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,490,1,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,490,1,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,490,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,490,1,1,'jdk/internal/misc/Unsafe.unpark')
f(24,490,1,3,'pthread_cond_signal')
f(25,490,1,5,'entry_SYSCALL_64_after_hwframe')
f(26,490,1,5,'do_syscall_64')
f(27,490,1,5,'__x64_sys_futex')
f(28,490,1,5,'do_futex')
f(29,490,1,5,'futex_wake')
f(30,490,1,5,'wake_up_q')
f(31,490,1,5,'_raw_spin_unlock_irqrestore')
f(17,491,3,1,'scala/concurrent/package$.blocking')
f(18,491,3,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,491,3,1,'cats/effect/IOPlatform$$Lambda$97.0x0000000800d72130.apply')
f(20,491,3,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,491,3,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,491,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,491,1,3,'clock_gettime')
f(24,491,1,3,'[vdso]')
f(23,492,2,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,492,2,1,'jdk/internal/misc/Unsafe.park')
f(25,492,2,3,'[unknown]')
f(26,492,2,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,492,2,5,'entry_SYSCALL_64_after_hwframe')
f(28,492,2,5,'do_syscall_64')
f(29,492,2,5,'__x64_sys_futex')
f(30,492,2,5,'do_futex')
f(31,492,2,5,'futex_wait')
f(32,492,2,5,'futex_wait_queue_me')
f(33,492,2,5,'schedule')
f(34,492,2,5,'__schedule')
f(35,492,2,5,'finish_task_switch.isra.0')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,44105,3,'all')
f(1,0,39536,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,39536,1,'cats/effect/IOFiber.run')
f(3,0,36955,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,36955,1,'cats/effect/IOFiber.runLoop')
f(5,0,36936,1,'cats/effect/IOFiber.next$2')
f(6,0,36936,1,'kyo/bench/DeepBindBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,0,36936,1,'kyo/bench/DeepBindBench.loop$2$$anonfun$1')
f(8,0,36936,1,'kyo/bench/DeepBindBench.loop$2')
f(9,0,18402,1,'cats/effect/IO.flatMap')
f(10,0,18402,1,'cats/effect/IO$FlatMap$.apply')
f(11,0,18402,2,'cats.effect.IO$FlatMap')
f(9,18402,18534,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,18402,18534,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial')
f(11,18402,18534,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,18402,18534,2,'kyo.bench.DeepBindBench$$Lambda$94+0x0000000800d5e4f0')
f(5,36936,19,1,'cats/effect/IOFiber.succeeded')
f(6,36936,19,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,36936,3,1,'cats/effect/IO$.pure')
f(8,36936,3,1,'cats/effect/IO$Pure$.apply')
f(9,36936,3,2,'cats.effect.IO$Pure')
f(7,36939,14,1,'cats/effect/IOFiber.done')
f(8,36939,13,1,'cats/effect/CallbackStack.apply')
f(9,36939,13,1,'scala/runtime/function/JProcedure1.apply')
f(10,36939,13,1,'scala/runtime/function/JProcedure1.apply')
f(11,36939,13,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,36939,13,1,'cats/effect/IO.$anonfun$6')
f(13,36939,5,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,36939,5,1,'cats/effect/kernel/Outcome.fold$')
f(15,36939,5,1,'cats/effect/kernel/Outcome.fold')
f(16,36939,5,1,'scala/runtime/function/JProcedure1.apply')
f(17,36939,5,1,'scala/runtime/function/JProcedure1.apply')
f(18,36939,5,1,'cats/effect/IO$$Lambda$97.0x0000000800d5f488.applyVoid')
f(19,36939,5,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,36939,5,1,'scala/runtime/function/JProcedure1.apply')
f(21,36939,5,1,'scala/runtime/function/JProcedure1.apply')
f(22,36939,5,1,'cats/effect/IO$$Lambda$89.0x0000000800d55408.applyVoid')
f(23,36939,5,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,36939,3,1,'scala/runtime/function/JProcedure1.apply')
f(25,36939,3,1,'scala/runtime/function/JProcedure1.apply')
f(26,36939,3,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57838.applyVoid')
f(27,36939,3,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,36939,3,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,36939,3,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,36939,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,36939,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,36939,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,36939,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,36939,3,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(24,36942,2,1,'scala/util/Right$.apply')
f(25,36942,2,2,'scala.util.Right')
f(13,36944,8,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,36944,8,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,36944,8,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,36944,3,2,'cats.effect.IO$$Lambda$95+0x0000000800d5edc0')
f(16,36947,2,2,'cats.effect.IO$$Lambda$96+0x0000000800d5f080')
f(16,36949,3,2,'cats.effect.IO$$Lambda$97+0x0000000800d5f488')
f(8,36952,1,1,'cats/effect/IO$.pure')
f(9,36952,1,1,'cats/effect/IO$Pure$.apply')
f(10,36952,1,2,'cats.effect.IO$Pure')
f(7,36953,2,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,36953,2,2,'cats.effect.kernel.Outcome$Succeeded')
f(3,36955,2052,1,'cats/effect/IOFiber.cedeR')
f(4,36955,2047,1,'cats/effect/IOFiber.runLoop')
f(5,36955,2047,1,'cats/effect/IOFiber.next$2')
f(6,36955,2047,1,'kyo/bench/DeepBindBench$$Lambda$94.0x0000000800d5e4f0.apply')
f(7,36955,2047,1,'kyo/bench/DeepBindBench.loop$2$$anonfun$1')
f(8,36955,2047,1,'kyo/bench/DeepBindBench.loop$2')
f(9,36955,1075,1,'cats/effect/IO.flatMap')
f(10,36955,1075,1,'cats/effect/IO$FlatMap$.apply')
f(11,36955,1075,2,'cats.effect.IO$FlatMap')
f(9,38030,972,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,38030,972,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial')
f(11,38030,972,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,38030,972,2,'kyo.bench.DeepBindBench$$Lambda$94+0x0000000800d5e4f0')
f(4,39002,5,1,'cats/effect/IOFiber.succeeded')
f(5,39002,5,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8cd58.apply')
f(6,39002,5,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,39002,5,1,'kyo/bench/DeepBindBench.catsBench')
f(8,39002,5,1,'kyo/bench/DeepBindBench.loop$2')
f(9,39002,5,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,39002,5,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial')
f(11,39002,5,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,39002,5,2,'kyo.bench.DeepBindBench$$Lambda$94+0x0000000800d5e4f0')
f(3,39007,529,1,'cats/effect/IOFiber.execR')
f(4,39007,7,1,'cats/effect/ArrayStack.init')
f(5,39007,7,2,'java.lang.Object[]')
f(4,39014,522,1,'cats/effect/ByteStack$.create')
f(5,39014,522,2,'int[]')
f(1,39536,1,2,'java.lang.String')
f(1,39537,4545,1,'java/lang/Thread.run')
f(2,39537,4545,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,39537,4545,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,39537,4545,1,'java/util/concurrent/FutureTask.run')
f(5,39537,4545,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,39537,4545,1,'java/util/concurrent/FutureTask.run')
f(7,39537,4545,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,39537,4545,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,39537,4545,1,'java/lang/reflect/Method.invoke')
f(10,39537,4545,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,39537,4545,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,39537,4545,1,'kyo/bench/jmh_generated/DeepBindBench_forkCats_jmhTest.forkCats_Throughput')
f(13,39537,4545,1,'kyo/bench/jmh_generated/DeepBindBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,39537,4545,1,'kyo/bench/Bench.forkCats')
f(15,39537,199,1,'cats/effect/IO.flatMap')
f(16,39537,199,1,'cats/effect/IO$FlatMap$.apply')
f(17,39537,199,2,'cats.effect.IO$FlatMap')
f(15,39736,4197,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,39736,4033,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,39736,2316,1,'cats/effect/IO.unsafeRunAsync')
f(18,39736,1982,1,'cats/effect/IO.unsafeRunFiber')
f(19,39736,455,2,'cats.effect.IOFiber')
f(19,40191,1202,1,'cats/effect/IOFiber.<init>')
f(20,40191,289,1,'cats/effect/ArrayStack$.apply')
f(21,40191,289,2,'cats.effect.ArrayStack')
f(20,40480,215,1,'cats/effect/CallbackStack$.apply')
f(21,40480,215,2,'cats.effect.CallbackStack')
f(20,40695,233,1,'cats/effect/IO$.async')
f(21,40695,61,2,'cats.effect.IO$$anon$3')
f(21,40756,172,1,'cats/effect/IO$IOCont$.apply')
f(22,40756,172,2,'cats.effect.IO$IOCont')
f(20,40928,191,1,'cats/effect/IO$.uncancelable')
f(21,40928,191,1,'cats/effect/IO$Uncancelable$.apply')
f(22,40928,191,2,'cats.effect.IO$Uncancelable')
f(20,41119,274,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,41119,274,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,41119,274,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,41119,163,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5cc30')
f(23,41282,111,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d220')
f(19,41393,152,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,41393,152,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,41393,152,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,41393,152,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,41393,152,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,41545,173,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,41545,173,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58400.newInvokeSpecial')
f(21,41545,173,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,41545,173,2,'cats.effect.IO$$Lambda$90+0x0000000800d5c000')
f(18,41718,334,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,41718,334,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,41718,334,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,41718,135,2,'cats.effect.IO$$Lambda$87+0x0000000800d57c40')
f(21,41853,66,2,'cats.effect.IO$$Lambda$88+0x0000000800d55000')
f(21,41919,133,2,'cats.effect.IO$$Lambda$89+0x0000000800d55408')
f(17,42052,371,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,42423,131,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,42423,131,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,42423,131,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,42423,131,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d57838')
f(17,42554,841,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,42554,841,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,42554,157,2,'java.lang.Object[]')
f(19,42711,98,2,'java.util.concurrent.locks.ReentrantLock')
f(19,42809,170,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,42809,170,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,42979,416,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,42979,416,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,42979,416,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,43395,270,1,'scala/concurrent/package$.blocking')
f(18,43395,270,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,43395,270,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5d9f8.apply')
f(20,43395,270,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,43395,270,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,43395,270,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,43395,270,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,43665,104,1,'scala/util/Either.fold')
f(18,43665,104,1,'cats/effect/IOPlatform$$Lambda$99.0x0000000800d5a3c8.apply')
f(19,43665,104,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,43665,104,1,'scala/Some$.apply')
f(21,43665,104,2,'scala.Some')
f(16,43769,164,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,43769,164,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,43769,164,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,43769,164,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,43769,164,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,43769,164,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,43769,164,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,43769,164,2,'scala.concurrent.duration.FiniteDuration')
f(15,43933,149,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,43933,149,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,43933,149,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,43933,149,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8cd58')
f(1,44082,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,44082,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,44082,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,44082,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,44082,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,44082,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,44082,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,44082,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,44082,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,44082,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,44082,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,44082,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,44082,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,44082,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,44082,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,44082,1,2,'java.lang.Object[]')
f(7,44083,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,44083,2,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,44083,2,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,44085,1,2,'org.openjdk.jmh.infra.Control')
f(8,44086,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,44086,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,44086,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,44086,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,44086,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,44086,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,44091,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,44091,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,44091,3,1,'java/lang/ClassLoader.loadClass')
f(10,44091,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,44091,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,44091,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,44091,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,44091,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,44091,1,1,'java/security/CodeSource.<init>')
f(16,44091,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,44091,1,1,'java/lang/StringBuilder.append')
f(18,44091,1,1,'java/lang/AbstractStringBuilder.append')
f(19,44091,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,44091,1,1,'java/util/Arrays.copyOf')
f(21,44091,1,2,'byte[]')
f(15,44092,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,44092,1,1,'java/util/Arrays.copyOf')
f(17,44092,1,5,'byte[]')
f(14,44093,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,44093,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,44093,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,44093,1,1,'java/net/URL.<init>')
f(18,44093,1,1,'java/net/URL.<init>')
f(19,44093,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,44093,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,44093,1,1,'java/lang/StringBuilder.toString')
f(22,44093,1,1,'java/lang/StringLatin1.newString')
f(23,44093,1,2,'java.lang.String')
f(9,44094,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,44094,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,44094,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,44094,11,1,'java/io/ObjectStreamClass.lookup')
f(13,44094,11,1,'java/io/ObjectStreamClass.<init>')
f(14,44094,11,1,'java/security/AccessController.doPrivileged')
f(15,44094,11,1,'java/security/AccessController.executePrivileged')
f(16,44094,11,1,'java/io/ObjectStreamClass$2.run')
f(17,44094,11,1,'java/io/ObjectStreamClass$2.run')
f(18,44094,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,44094,2,1,'java/lang/Class.getDeclaredMethod')
f(20,44094,1,1,'java/lang/Class.methodToString')
f(21,44094,1,1,'java/lang/StringBuilder.append')
f(22,44094,1,1,'java/lang/AbstractStringBuilder.append')
f(23,44094,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,44094,1,1,'java/util/Arrays.copyOf')
f(25,44094,1,2,'byte[]')
f(20,44095,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,44095,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,44095,1,1,'java/lang/Exception.<init>')
f(23,44095,1,1,'java/lang/Throwable.<init>')
f(24,44095,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,44095,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,44095,1,2,'short[]')
f(18,44096,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,44096,3,1,'java/lang/Class.getDeclaredMethod')
f(20,44096,2,1,'java/lang/Class.methodToString')
f(21,44096,1,1,'java/lang/StringBuilder.append')
f(22,44096,1,1,'java/lang/AbstractStringBuilder.append')
f(23,44096,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,44096,1,1,'java/util/Arrays.copyOf')
f(25,44096,1,2,'byte[]')
f(21,44097,1,1,'java/lang/StringBuilder.toString')
f(22,44097,1,1,'java/lang/StringLatin1.newString')
f(23,44097,1,1,'java/util/Arrays.copyOfRange')
f(24,44097,1,2,'byte[]')
f(20,44098,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,44098,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,44098,1,1,'java/lang/Exception.<init>')
f(23,44098,1,1,'java/lang/Throwable.<init>')
f(24,44098,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,44098,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,44098,1,5,'long[]')
f(18,44099,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,44099,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,44099,1,1,'java/lang/Class.getDeclaredField')
f(21,44099,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,44099,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,44099,1,1,'java/lang/Exception.<init>')
f(24,44099,1,1,'java/lang/Throwable.<init>')
f(25,44099,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,44099,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,44099,1,2,'long[]')
f(18,44100,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,44100,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,44100,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,44100,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,44100,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,44100,1,1,'java/security/AccessController.doPrivileged')
f(24,44100,1,1,'java/security/AccessController.executePrivileged')
f(25,44100,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,44100,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,44100,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,44100,1,1,'java/security/AccessController.doPrivileged')
f(29,44100,1,1,'java/security/AccessController.executePrivileged')
f(30,44100,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,44100,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,44100,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,44100,1,1,'java/lang/ClassLoader.<init>')
f(34,44100,1,1,'java/lang/ClassLoader.<init>')
f(35,44100,1,1,'java/lang/ClassLoader.nameAndId')
f(36,44100,1,1,'java/lang/StringBuilder.<init>')
f(37,44100,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,44100,1,2,'byte[]')
f(23,44101,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,44101,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,44101,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,44101,1,2,'byte[]')
f(23,44102,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,44102,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,44102,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,44102,1,2,'byte[]')
f(23,44103,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,44103,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,44103,1,1,'java/lang/String.replace')
f(26,44103,1,1,'java/lang/StringLatin1.replace')
f(27,44103,1,2,'java.lang.String')
f(23,44104,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,44104,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,446,3,'all')
f(1,0,3,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,3,3,'thread_native_entry(Thread*)')
f(3,0,3,4,'Thread::call_run()')
f(4,0,1,4,'GangWorker::run()')
f(5,0,1,4,'GangWorker::loop()')
f(6,0,1,4,'G1EvacuateRegionsBaseTask::work(unsigned int)')
f(7,0,1,4,'G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned int)')
f(8,0,1,4,'G1RootProcessor::evacuate_roots(G1ParScanThreadState*, unsigned int)')
f(9,0,1,4,'G1RootProcessor::process_java_roots(G1RootClosures*, G1GCPhaseTimes*, unsigned int)')
f(10,0,1,4,'Threads::possibly_parallel_oops_do(bool, OopClosure*, CodeBlobClosure*)')
f(11,0,1,4,'JavaThread::oops_do_frames(OopClosure*, CodeBlobClosure*) [clone .part.0]')
f(12,0,1,4,'Method::bcp_from(unsigned char*) const')
f(4,1,2,4,'VMThread::run()')
f(5,1,2,4,'VMThread::inner_execute(VM_Operation*)')
f(6,1,2,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,1,2,4,'VM_Operation::evaluate()')
f(8,1,2,4,'VM_G1CollectForAllocation::doit()')
f(9,1,2,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,1,2,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,1,1,4,'G1CollectedHeap::post_evacuate_collection_set(G1EvacuationInfo&, G1RedirtyCardsQueueSet*, G1ParScanThreadStateSet*)')
f(12,1,1,4,'G1CollectedHeap::post_evacuate_cleanup_2(PreservedMarksSet*, G1RedirtyCardsQueueSet*, G1EvacuationInfo*, unsigned long const*)')
f(13,1,1,4,'G1PostEvacuateCollectionSetCleanupTask2::G1PostEvacuateCollectionSetCleanupTask2(PreservedMarksSet*, G1RedirtyCardsQueueSet*, G1EvacuationInfo*, unsigned long const*)')
f(14,1,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(11,2,1,4,'G1GCPhaseTimes::reset()')
f(1,3,409,1,'cats/effect/unsafe/WorkerThread.run')
f(2,6,386,1,'cats/effect/IOFiber.run',1,0,0)
f(3,7,364,1,'cats/effect/IOFiber.autoCedeR')
f(4,7,364,1,'cats/effect/IOFiber.runLoop')
f(5,206,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(6,206,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(7,206,1,4,'MemAllocator::allocate() const')
f(8,206,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(9,206,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(5,207,12,2,'cats/effect/IO$FlatMap.ioe',12,0,0)
f(5,219,1,2,'cats/effect/IO$Pure.value',1,0,0)
f(5,220,80,2,'cats/effect/IOFiber.next$2',79,0,0)
f(6,223,77,2,'kyo/bench/DeepBindBench$$Lambda$94.0x0000000800d5e4f0.apply',76,0,0)
f(7,250,50,2,'kyo/bench/DeepBindBench.loop$2$$anonfun$1',49,0,0)
f(8,250,50,2,'kyo/bench/DeepBindBench.loop$2',49,0,0)
f(9,250,29,2,'cats/effect/IO.flatMap',28,0,0)
f(10,250,29,2,'cats/effect/IO$FlatMap$.apply',28,0,0)
f(11,262,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(12,262,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(13,262,1,4,'MemAllocator::allocate() const')
f(14,262,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(11,263,16,2,'cats/effect/IO$FlatMap.<init>',16,0,0)
f(9,279,21,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',21,0,0)
f(10,279,21,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial',21,0,0)
f(11,279,19,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',19,0,0)
f(11,298,2,2,'kyo/bench/DeepBindBench$$Lambda$94.0x0000000800d5e4f0.<init>',2,0,0)
f(5,300,48,2,'cats/effect/IOFiber.rescheduleFiber',46,0,0)
f(6,346,2,1,'cats/effect/unsafe/WorkStealingThreadPool.reschedule')
f(7,347,1,2,'cats/effect/unsafe/WorkerThread.reschedule',1,0,0)
f(8,347,1,2,'cats/effect/unsafe/LocalQueue.isEmpty',1,0,0)
f(9,347,1,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',1,0,0)
f(5,348,1,2,'cats/effect/IOFiber.shouldFinalize',1,0,0)
f(5,349,22,1,'cats/effect/IOFiber.succeeded')
f(6,349,22,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,349,22,1,'cats/effect/IOFiber.done')
f(8,349,22,1,'cats/effect/CallbackStack.apply')
f(9,349,22,1,'scala/runtime/function/JProcedure1.apply')
f(10,349,22,1,'scala/runtime/function/JProcedure1.apply')
f(11,349,22,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,349,22,1,'cats/effect/IO.$anonfun$6')
f(13,349,22,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,349,22,1,'cats/effect/kernel/Outcome.fold$',1,0,0)
f(15,349,22,1,'cats/effect/kernel/Outcome.fold',1,0,0)
f(16,349,22,1,'scala/runtime/function/JProcedure1.apply',1,0,0)
f(17,349,22,1,'scala/runtime/function/JProcedure1.apply',1,0,0)
f(18,349,22,1,'cats/effect/IO$$Lambda$97.0x0000000800d5f488.applyVoid',1,0,0)
f(19,349,22,1,'cats/effect/IO.$anonfun$6$$anonfun$3',1,0,0)
f(20,349,1,2,'cats/effect/unsafe/StripedHashtable.remove',1,0,0)
f(21,349,1,2,'cats/effect/unsafe/ThreadSafeHashtable.remove',1,0,0)
f(20,350,21,1,'scala/runtime/function/JProcedure1.apply')
f(21,350,21,1,'scala/runtime/function/JProcedure1.apply')
f(22,350,21,1,'cats/effect/IO$$Lambda$89.0x0000000800d55408.applyVoid')
f(23,350,21,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,350,21,1,'scala/runtime/function/JProcedure1.apply')
f(25,350,21,1,'scala/runtime/function/JProcedure1.apply')
f(26,351,20,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57838.applyVoid')
f(27,351,20,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,351,20,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,351,20,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,351,20,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,351,20,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,351,20,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,351,20,1,'jdk/internal/misc/Unsafe.unpark')
f(34,351,1,3,'Unsafe_Unpark')
f(35,351,1,4,'ThreadsListHandle::~ThreadsListHandle()')
f(34,352,1,3,'__tls_get_addr')
f(34,353,18,3,'pthread_cond_signal')
f(35,354,17,5,'entry_SYSCALL_64_after_hwframe')
f(36,354,17,5,'do_syscall_64')
f(37,354,17,5,'__x64_sys_futex')
f(38,354,17,5,'do_futex')
f(39,354,17,5,'futex_wake')
f(40,354,17,5,'wake_up_q')
f(41,354,17,5,'_raw_spin_unlock_irqrestore')
f(3,371,19,1,'cats/effect/IOFiber.cedeR',1,0,0)
f(4,373,17,1,'cats/effect/IOFiber.runLoop')
f(5,382,6,2,'cats/effect/IOFiber.next$2',6,0,0)
f(6,383,5,2,'kyo/bench/DeepBindBench$$Lambda$94.0x0000000800d5e4f0.apply',5,0,0)
f(7,384,4,2,'kyo/bench/DeepBindBench.loop$2$$anonfun$1',4,0,0)
f(8,384,4,2,'kyo/bench/DeepBindBench.loop$2',4,0,0)
f(9,384,2,2,'cats/effect/IO.flatMap',2,0,0)
f(10,384,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(11,385,1,2,'cats/effect/IO$FlatMap.<init>',1,0,0)
f(9,386,2,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',2,0,0)
f(10,386,2,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial',2,0,0)
f(11,386,2,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',2,0,0)
f(5,388,2,2,'cats/effect/IOFiber.rescheduleFiber',2,0,0)
f(3,390,2,1,'cats/effect/IOFiber.execR')
f(4,391,1,1,'cats/effect/IOFiber.runLoop')
f(5,391,1,3,'vtable stub')
f(2,392,1,1,'cats/effect/unsafe/ScalQueue.poll')
f(3,392,1,1,'java/util/concurrent/ConcurrentLinkedQueue.poll')
f(2,393,19,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,393,19,1,'java/util/concurrent/locks/LockSupport.park')
f(4,393,19,1,'jdk/internal/misc/Unsafe.park')
f(5,393,4,3,'Unsafe_Park')
f(6,393,3,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,393,3,5,'entry_SYSCALL_64_after_hwframe')
f(8,393,1,5,'__x64_sys_futex')
f(8,394,2,5,'do_syscall_64')
f(9,394,2,5,'__x64_sys_futex')
f(10,394,2,5,'do_futex')
f(11,394,1,5,'futex_wake')
f(12,394,1,5,'get_futex_key')
f(11,395,1,5,'get_futex_key')
f(6,396,1,4,'Parker::park(bool, long)')
f(7,396,1,4,'HandshakeState::has_a_non_suspend_operation()')
f(8,396,1,4,'Mutex::lock_without_safepoint_check()')
f(5,397,15,3,'[unknown]')
f(6,397,15,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,398,14,5,'entry_SYSCALL_64_after_hwframe')
f(8,398,14,5,'do_syscall_64')
f(9,399,10,5,'__x64_sys_futex')
f(10,399,10,5,'do_futex')
f(11,399,10,5,'futex_wait')
f(12,399,10,5,'futex_wait_queue_me')
f(13,399,1,5,'rcu_all_qs')
f(13,400,9,5,'schedule')
f(14,400,9,5,'__schedule')
f(15,400,9,5,'finish_task_switch.isra.0')
f(9,409,3,5,'syscall_exit_to_user_mode')
f(10,409,3,5,'exit_to_user_mode_prepare')
f(11,409,3,5,'exit_to_user_mode_loop')
f(12,410,2,5,'__rseq_handle_notify_resume')
f(13,410,2,5,'rseq_ip_fixup')
f(14,410,2,5,'__get_user_8')
f(1,412,34,1,'java/lang/Thread.run')
f(2,412,34,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,412,34,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,412,33,1,'java/util/concurrent/FutureTask.run')
f(5,412,33,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,412,33,1,'java/util/concurrent/FutureTask.run')
f(7,412,33,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,412,33,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,412,33,1,'java/lang/reflect/Method.invoke')
f(10,412,33,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,412,33,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,412,33,1,'kyo/bench/jmh_generated/DeepBindBench_forkCats_jmhTest.forkCats_Throughput')
f(13,412,33,1,'kyo/bench/jmh_generated/DeepBindBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,412,33,1,'kyo/bench/Bench.forkCats')
f(15,412,33,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,412,33,1,'cats/effect/IOPlatform.unsafeRunTimed',2,0,0)
f(17,412,17,1,'cats/effect/IO.unsafeRunAsync',1,0,0)
f(18,412,16,1,'cats/effect/IO.unsafeRunFiber')
f(19,412,1,1,'cats/effect/unsafe/StripedHashtable.put')
f(20,412,1,1,'java/lang/System.identityHashCode')
f(21,412,1,3,'JVM_IHashCode')
f(22,412,1,4,'ObjectSynchronizer::FastHashCode(Thread*, oopDesc*)')
f(19,413,15,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,413,15,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,413,15,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,413,15,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,413,15,1,'jdk/internal/misc/Unsafe.unpark')
f(24,413,1,3,'Unsafe_Unpark')
f(24,414,14,3,'pthread_cond_signal')
f(25,417,11,5,'entry_SYSCALL_64_after_hwframe')
f(26,417,11,5,'do_syscall_64')
f(27,417,11,5,'__x64_sys_futex')
f(28,417,11,5,'do_futex')
f(29,417,11,5,'futex_wake')
f(30,417,2,5,'mark_wake_futex')
f(30,419,9,5,'wake_up_q')
f(31,419,9,5,'_raw_spin_unlock_irqrestore')
f(18,428,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(19,428,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(20,428,1,2,'cats/effect/IO$$Lambda$87.0x0000000800d57c40.<init>',1,0,0)
f(21,428,1,3,'clock_gettime@plt')
f(17,429,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(18,429,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(17,430,15,1,'scala/concurrent/package$.blocking')
f(18,430,15,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,430,15,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5dc00.apply')
f(20,430,15,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,430,15,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,430,15,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,430,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(23,431,14,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,431,14,1,'jdk/internal/misc/Unsafe.park')
f(25,431,2,3,'Unsafe_Park')
f(26,431,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,431,1,5,'entry_SYSCALL_64_after_hwframe')
f(28,431,1,5,'do_syscall_64')
f(29,431,1,5,'__x64_sys_futex')
f(30,431,1,5,'do_futex')
f(31,431,1,5,'futex_wake')
f(32,431,1,5,'get_futex_key')
f(26,432,1,3,'clock_gettime')
f(27,432,1,3,'[vdso]')
f(25,433,12,3,'[unknown]')
f(26,433,12,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,433,12,5,'entry_SYSCALL_64_after_hwframe')
f(28,433,12,5,'do_syscall_64')
f(29,434,10,5,'__x64_sys_futex')
f(30,434,10,5,'do_futex')
f(31,434,10,5,'futex_wait')
f(32,434,10,5,'futex_wait_queue_me')
f(33,434,10,5,'schedule')
f(34,434,10,5,'__schedule')
f(35,434,10,5,'finish_task_switch.isra.0')
f(29,444,1,5,'syscall_exit_to_user_mode')
f(30,444,1,5,'exit_to_user_mode_prepare')
f(31,444,1,5,'exit_to_user_mode_loop')
f(4,445,1,1,'java/util/concurrent/ThreadPoolExecutor.getTask')
f(5,445,1,1,'java/util/concurrent/LinkedBlockingQueue.take')
f(6,445,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await')
f(7,445,1,0,'java/util/concurrent/ForkJoinPool.managedBlock',0,0,1)
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 656px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(41);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,41714,3,'all')
f(1,0,37342,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,37342,1,'cats/effect/IOFiber.run')
f(3,0,34872,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,34872,1,'cats/effect/IOFiber.runLoop')
f(5,0,34858,1,'cats/effect/IOFiber.next$2')
f(6,0,34858,1,'kyo/bench/DeepBindBench$$Lambda$39.0x0000000800c8cd58.apply')
f(7,0,34858,1,'kyo/bench/DeepBindBench.loop$2$$anonfun$1')
f(8,0,34858,1,'kyo/bench/DeepBindBench.loop$2')
f(9,0,17367,1,'cats/effect/IO.flatMap')
f(10,0,17367,1,'cats/effect/IO$FlatMap$.apply')
f(11,0,17367,2,'cats.effect.IO$FlatMap')
f(9,17367,17491,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,17367,17491,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial')
f(11,17367,17491,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,17367,17491,2,'kyo.bench.DeepBindBench$$Lambda$39+0x0000000800c8cd58')
f(5,34858,14,1,'cats/effect/IOFiber.succeeded')
f(6,34858,14,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,34858,14,1,'cats/effect/IOFiber.done')
f(8,34858,11,1,'cats/effect/CallbackStack.apply')
f(9,34858,11,1,'scala/runtime/function/JProcedure1.apply')
f(10,34858,11,1,'scala/runtime/function/JProcedure1.apply')
f(11,34858,11,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,34858,11,1,'cats/effect/IO.$anonfun$6')
f(13,34858,4,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,34858,4,1,'cats/effect/kernel/Outcome.fold$')
f(15,34858,4,1,'cats/effect/kernel/Outcome.fold')
f(16,34858,4,1,'scala/runtime/function/JProcedure1.apply')
f(17,34858,4,1,'scala/runtime/function/JProcedure1.apply')
f(18,34858,4,1,'cats/effect/IO$$Lambda$96.0x0000000800d5f2c0.applyVoid')
f(19,34858,4,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,34858,4,1,'scala/runtime/function/JProcedure1.apply')
f(21,34858,4,1,'scala/runtime/function/JProcedure1.apply')
f(22,34858,4,1,'cats/effect/IO$$Lambda$89.0x0000000800d556c8.applyVoid')
f(23,34858,4,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,34858,2,1,'scala/runtime/function/JProcedure1.apply')
f(25,34858,2,1,'scala/runtime/function/JProcedure1.apply')
f(26,34858,2,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57a60.applyVoid')
f(27,34858,2,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,34858,2,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,34858,2,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,34858,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,34858,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,34858,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,34858,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,34858,2,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(24,34860,2,1,'scala/util/Right$.apply')
f(25,34860,2,2,'scala.util.Right')
f(13,34862,7,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,34862,7,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,34862,7,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,34862,1,2,'cats.effect.IO$$Lambda$94+0x0000000800d5ebf8')
f(16,34863,3,2,'cats.effect.IO$$Lambda$95+0x0000000800d5eeb8')
f(16,34866,3,2,'cats.effect.IO$$Lambda$96+0x0000000800d5f2c0')
f(8,34869,3,1,'cats/effect/IO$.pure')
f(9,34869,3,1,'cats/effect/IO$Pure$.apply')
f(10,34869,3,2,'cats.effect.IO$Pure')
f(3,34872,2470,1,'cats/effect/IOFiber.execR')
f(4,34872,13,1,'cats/effect/ArrayStack.init')
f(5,34872,13,2,'java.lang.Object[]')
f(4,34885,494,1,'cats/effect/ByteStack$.create')
f(5,34885,494,2,'int[]')
f(4,35379,1963,1,'cats/effect/IOFiber.runLoop')
f(5,35379,1963,1,'cats/effect/IOFiber.next$2')
f(6,35379,1963,1,'kyo/bench/DeepBindBench$$Lambda$39.0x0000000800c8cd58.apply')
f(7,35379,1963,1,'kyo/bench/DeepBindBench.loop$2$$anonfun$1')
f(8,35379,1963,1,'kyo/bench/DeepBindBench.loop$2')
f(9,35379,1008,1,'cats/effect/IO.flatMap')
f(10,35379,1008,1,'cats/effect/IO$FlatMap$.apply')
f(11,35379,1008,2,'cats.effect.IO$FlatMap')
f(9,36387,955,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,36387,955,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial')
f(11,36387,955,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,36387,955,2,'kyo.bench.DeepBindBench$$Lambda$39+0x0000000800c8cd58')
f(1,37342,1,2,'java.lang.String')
f(1,37343,4347,1,'java/lang/Thread.run')
f(2,37343,4347,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,37343,4347,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,37343,4347,1,'java/util/concurrent/FutureTask.run')
f(5,37343,4347,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,37343,4347,1,'java/util/concurrent/FutureTask.run')
f(7,37343,4347,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,37343,4347,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,37343,4347,1,'java/lang/reflect/Method.invoke')
f(10,37343,4347,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,37343,4347,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,37343,4347,1,'kyo/bench/jmh_generated/DeepBindBench_syncCats_jmhTest.syncCats_Throughput')
f(13,37343,4347,1,'kyo/bench/jmh_generated/DeepBindBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,37343,4347,1,'kyo/bench/Bench.syncCats')
f(15,37343,4048,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,37343,3851,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,37343,2200,1,'cats/effect/IO.unsafeRunAsync')
f(18,37343,1901,1,'cats/effect/IO.unsafeRunFiber')
f(19,37343,484,2,'cats.effect.IOFiber')
f(19,37827,1130,1,'cats/effect/IOFiber.<init>')
f(20,37827,269,1,'cats/effect/ArrayStack$.apply')
f(21,37827,269,2,'cats.effect.ArrayStack')
f(20,38096,186,1,'cats/effect/CallbackStack$.apply')
f(21,38096,186,2,'cats.effect.CallbackStack')
f(20,38282,223,1,'cats/effect/IO$.async')
f(21,38282,40,2,'cats.effect.IO$$anon$3')
f(21,38322,183,1,'cats/effect/IO$IOCont$.apply')
f(22,38322,183,2,'cats.effect.IO$IOCont')
f(20,38505,115,1,'cats/effect/IO$.uncancelable')
f(21,38505,115,1,'cats/effect/IO$Uncancelable$.apply')
f(22,38505,115,2,'cats.effect.IO$Uncancelable')
f(20,38620,337,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,38620,337,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,38620,337,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,38620,219,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5ce38')
f(23,38839,118,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d428')
f(19,38957,144,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,38957,144,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,38957,144,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,38957,144,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,38957,144,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,39101,143,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,39101,143,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58400.newInvokeSpecial')
f(21,39101,143,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,39101,143,2,'cats.effect.IO$$Lambda$90+0x0000000800d5c000')
f(18,39244,299,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,39244,299,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,39244,299,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,39244,77,2,'cats.effect.IO$$Lambda$87+0x0000000800d55000')
f(21,39321,90,2,'cats.effect.IO$$Lambda$88+0x0000000800d552c0')
f(21,39411,132,2,'cats.effect.IO$$Lambda$89+0x0000000800d556c8')
f(17,39543,341,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,39884,160,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,39884,160,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,39884,160,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,39884,160,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d57a60')
f(17,40044,787,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,40044,787,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,40044,188,2,'java.lang.Object[]')
f(19,40232,68,2,'java.util.concurrent.locks.ReentrantLock')
f(19,40300,176,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,40300,176,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,40476,355,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,40476,355,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,40476,355,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,40831,221,1,'scala/concurrent/package$.blocking')
f(18,40831,221,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,40831,221,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5dc00.apply')
f(20,40831,221,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,40831,221,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,40831,221,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,40831,221,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,41052,142,1,'scala/util/Either.fold')
f(18,41052,142,1,'cats/effect/IOPlatform$$Lambda$98.0x0000000800d5a3c8.apply')
f(19,41052,142,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,41052,142,1,'scala/Some$.apply')
f(21,41052,142,2,'scala.Some')
f(16,41194,197,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,41194,197,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,41194,197,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,41194,197,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,41194,197,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,41194,197,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,41194,197,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,41194,197,2,'scala.concurrent.duration.FiniteDuration')
f(15,41391,299,1,'kyo/bench/DeepBindBench.catsBench')
f(16,41391,299,1,'kyo/bench/DeepBindBench.loop$2')
f(17,41391,110,1,'cats/effect/IO.flatMap')
f(18,41391,110,1,'cats/effect/IO$FlatMap$.apply')
f(19,41391,110,2,'cats.effect.IO$FlatMap')
f(17,41501,189,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,41501,189,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial')
f(19,41501,189,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,41501,189,2,'kyo.bench.DeepBindBench$$Lambda$39+0x0000000800c8cd58')
f(1,41690,24,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,41690,24,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,41690,24,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,41690,24,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,41690,24,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,41690,24,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,41690,9,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,41690,1,2,'java.util.ArrayList')
f(8,41691,2,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,41691,2,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,41693,1,2,'org.openjdk.jmh.infra.Control')
f(8,41694,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,41694,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,41694,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,41694,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,41694,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,41694,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,41699,15,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,41699,15,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,41699,3,1,'java/lang/ClassLoader.loadClass')
f(10,41699,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,41699,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,41699,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,41699,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,41699,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,41699,1,1,'java/security/CodeSource.<init>')
f(16,41699,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,41699,1,1,'java/lang/StringBuilder.toString')
f(18,41699,1,1,'java/lang/StringLatin1.newString')
f(19,41699,1,1,'java/util/Arrays.copyOfRange')
f(20,41699,1,2,'byte[]')
f(15,41700,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,41700,1,1,'java/util/Arrays.copyOf')
f(17,41700,1,5,'byte[]')
f(14,41701,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,41701,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,41701,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,41701,1,1,'java/net/URL.<init>')
f(18,41701,1,1,'java/net/URL.<init>')
f(19,41701,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,41701,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,41701,1,1,'java/lang/StringBuilder.toString')
f(22,41701,1,1,'java/lang/StringLatin1.newString')
f(23,41701,1,1,'java/util/Arrays.copyOfRange')
f(24,41701,1,2,'byte[]')
f(9,41702,12,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,41702,12,1,'java/io/ObjectOutputStream.writeObject')
f(11,41702,12,1,'java/io/ObjectOutputStream.writeObject0')
f(12,41702,12,1,'java/io/ObjectStreamClass.lookup')
f(13,41702,12,1,'java/io/ObjectStreamClass.<init>')
f(14,41702,12,1,'java/security/AccessController.doPrivileged')
f(15,41702,12,1,'java/security/AccessController.executePrivileged')
f(16,41702,12,1,'java/io/ObjectStreamClass$2.run')
f(17,41702,12,1,'java/io/ObjectStreamClass$2.run')
f(18,41702,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,41702,2,1,'java/lang/Class.getDeclaredMethod')
f(20,41702,2,1,'java/lang/NoSuchMethodException.<init>')
f(21,41702,2,1,'java/lang/ReflectiveOperationException.<init>')
f(22,41702,2,1,'java/lang/Exception.<init>')
f(23,41702,2,1,'java/lang/Throwable.<init>')
f(24,41702,2,1,'java/lang/Throwable.fillInStackTrace')
f(25,41702,2,1,'java/lang/Throwable.fillInStackTrace')
f(26,41702,1,2,'int[]')
f(26,41703,1,2,'java.lang.Object[]')
f(18,41704,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,41704,3,1,'java/lang/Class.getDeclaredMethod')
f(20,41704,1,1,'java/lang/Class.methodToString')
f(21,41704,1,1,'java/lang/StringBuilder.append')
f(22,41704,1,1,'java/lang/AbstractStringBuilder.append')
f(23,41704,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,41704,1,1,'java/util/Arrays.copyOf')
f(25,41704,1,2,'byte[]')
f(20,41705,2,1,'java/lang/NoSuchMethodException.<init>')
f(21,41705,2,1,'java/lang/ReflectiveOperationException.<init>')
f(22,41705,2,1,'java/lang/Exception.<init>')
f(23,41705,2,1,'java/lang/Throwable.<init>')
f(24,41705,2,1,'java/lang/Throwable.fillInStackTrace')
f(25,41705,2,1,'java/lang/Throwable.fillInStackTrace')
f(26,41705,1,5,'long[]')
f(26,41706,1,2,'short[]')
f(18,41707,2,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,41707,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,41707,1,1,'java/lang/Class.getDeclaredField')
f(21,41707,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,41707,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,41707,1,1,'java/lang/Exception.<init>')
f(24,41707,1,1,'java/lang/Throwable.<init>')
f(25,41707,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,41707,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,41707,1,5,'long[]')
f(19,41708,1,1,'java/io/ObjectStreamClass.getDefaultSerialFields')
f(20,41708,1,1,'java/lang/Class.getDeclaredFields')
f(21,41708,1,1,'java/lang/Class.copyFields')
f(22,41708,1,1,'jdk/internal/reflect/ReflectionFactory.copyField')
f(23,41708,1,1,'java/lang/reflect/ReflectAccess.copyField')
f(24,41708,1,1,'java/lang/reflect/Field.copy')
f(25,41708,1,2,'java.lang.reflect.Field')
f(18,41709,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,41709,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,41709,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,41709,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,41709,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,41709,1,1,'java/security/AccessController.doPrivileged')
f(24,41709,1,1,'java/security/AccessController.executePrivileged')
f(25,41709,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,41709,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,41709,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,41709,1,1,'java/security/AccessController.doPrivileged')
f(29,41709,1,1,'java/security/AccessController.executePrivileged')
f(30,41709,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,41709,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,41709,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,41709,1,1,'java/lang/ClassLoader.<init>')
f(34,41709,1,1,'java/lang/ClassLoader.<init>')
f(35,41709,1,1,'java/lang/ClassLoader.nameAndId')
f(36,41709,1,1,'java/lang/StringBuilder.append')
f(37,41709,1,1,'java/lang/AbstractStringBuilder.append')
f(38,41709,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(39,41709,1,1,'java/util/Arrays.copyOf')
f(40,41709,1,2,'byte[]')
f(23,41710,2,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,41710,2,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,41710,1,1,'jdk/internal/reflect/ClassFileAssembler.emitByte')
f(26,41710,1,1,'jdk/internal/reflect/ByteVectorImpl.add')
f(27,41710,1,1,'jdk/internal/reflect/ByteVectorImpl.resize')
f(28,41710,1,5,'byte[]')
f(25,41711,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,41711,1,2,'byte[]')
f(23,41712,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,41712,1,5,'byte[]')
f(23,41713,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(24,41713,1,1,'jdk/internal/reflect/ClassFileAssembler.emitByte')
f(25,41713,1,1,'jdk/internal/reflect/ByteVectorImpl.add')
f(26,41713,1,1,'jdk/internal/reflect/ByteVectorImpl.resize')
f(27,41713,1,2,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,445,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'GCHeapLog::log_heap(CollectedHeap*, bool) [clone .part.0]')
f(12,0,1,4,'MetaspaceUtils::print_on(outputStream*)')
f(13,0,1,4,'MetaspaceUtils::get_statistics(Metaspace::MetadataType)')
f(14,0,1,4,'metaspace::VirtualSpaceList::vslist_nonclass()')
f(1,1,411,1,'cats/effect/unsafe/WorkerThread.run')
f(2,1,396,1,'cats/effect/IOFiber.run',1,0,0)
f(3,1,384,1,'cats/effect/IOFiber.autoCedeR')
f(4,1,384,1,'cats/effect/IOFiber.runLoop')
f(5,222,2,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(6,222,2,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(7,222,2,4,'MemAllocator::allocate() const')
f(8,222,1,4,'AllocTracer::send_allocation_in_new_tlab(Klass*, HeapWordImpl**, unsigned long, unsigned long, JavaThread*)')
f(9,222,1,4,'ObjectSampler::is_created()')
f(8,223,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(9,223,1,4,'G1Allocator::unsafe_max_tlab_alloc()')
f(5,224,11,2,'cats/effect/IO$FlatMap.ioe',11,0,0)
f(5,235,98,2,'cats/effect/IOFiber.next$2',94,0,0)
f(6,239,94,2,'kyo/bench/DeepBindBench$$Lambda$39.0x0000000800c8cd58.apply',90,0,0)
f(7,275,58,2,'kyo/bench/DeepBindBench.loop$2$$anonfun$1',54,0,0)
f(8,275,58,2,'kyo/bench/DeepBindBench.loop$2',54,0,0)
f(9,275,40,2,'cats/effect/IO.flatMap',36,0,0)
f(10,275,40,2,'cats/effect/IO$FlatMap$.apply',36,0,0)
f(11,303,1,4,'ClassLoaderData::holder_phantom() const')
f(11,304,3,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(12,304,3,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(13,304,1,4,'MemAllocator::Allocation::notify_allocation_jfr_sampler()')
f(13,305,2,4,'MemAllocator::allocate() const')
f(14,305,2,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(15,306,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(16,306,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(17,306,1,4,'G1AllocRegion::new_alloc_region_and_allocate(unsigned long, bool)')
f(18,306,1,4,'G1CollectedHeap::new_mutator_alloc_region(unsigned long, bool, unsigned int)')
f(19,306,1,4,'G1RemSetTrackingPolicy::update_at_allocate(HeapRegion*)')
f(20,306,1,4,'G1DirtyCardQueueSet::num_par_ids()')
f(11,307,8,2,'cats/effect/IO$FlatMap.<init>',8,0,0)
f(9,315,18,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',18,0,0)
f(10,315,18,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial',18,0,0)
f(11,315,11,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',11,0,0)
f(11,326,7,2,'kyo/bench/DeepBindBench$$Lambda$39.0x0000000800c8cd58.<init>',7,0,0)
f(5,333,2,1,'cats/effect/IOFiber.rescheduleFiber')
f(6,333,2,1,'cats/effect/unsafe/WorkStealingThreadPool.reschedule')
f(5,335,23,2,'cats/effect/IOFiber.shouldFinalize',23,0,0)
f(5,358,25,1,'cats/effect/IOFiber.succeeded')
f(6,359,24,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,359,24,1,'cats/effect/IOFiber.done')
f(8,359,24,1,'cats/effect/CallbackStack.apply')
f(9,359,24,1,'scala/runtime/function/JProcedure1.apply')
f(10,359,24,1,'scala/runtime/function/JProcedure1.apply')
f(11,359,24,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,359,24,1,'cats/effect/IO.$anonfun$6')
f(13,359,24,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,359,24,1,'cats/effect/kernel/Outcome.fold$',1,0,0)
f(15,359,24,1,'cats/effect/kernel/Outcome.fold',1,0,0)
f(16,359,24,1,'scala/runtime/function/JProcedure1.apply',1,0,0)
f(17,359,24,1,'scala/runtime/function/JProcedure1.apply',1,0,0)
f(18,359,24,1,'cats/effect/IO$$Lambda$96.0x0000000800d5f2c0.applyVoid',1,0,0)
f(19,359,24,1,'cats/effect/IO.$anonfun$6$$anonfun$3',1,0,0)
f(20,359,1,2,'cats/effect/unsafe/StripedHashtable.remove',1,0,0)
f(20,360,23,1,'scala/runtime/function/JProcedure1.apply')
f(21,360,23,1,'scala/runtime/function/JProcedure1.apply')
f(22,360,23,1,'cats/effect/IO$$Lambda$89.0x0000000800d556c8.applyVoid')
f(23,360,23,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,360,23,1,'scala/runtime/function/JProcedure1.apply')
f(25,360,23,1,'scala/runtime/function/JProcedure1.apply')
f(26,360,23,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57a60.applyVoid')
f(27,360,23,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,360,23,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,360,1,2,'java/util/concurrent/ArrayBlockingQueue.enqueue',1,0,0)
f(30,360,1,2,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal',1,0,0)
f(31,360,1,2,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal',1,0,0)
f(32,360,1,2,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue',1,0,0)
f(29,361,22,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,361,22,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,361,22,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,361,22,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,361,22,1,'jdk/internal/misc/Unsafe.unpark')
f(34,362,1,4,'ThreadsListHandle::~ThreadsListHandle()')
f(34,363,20,3,'pthread_cond_signal')
f(35,364,19,5,'entry_SYSCALL_64_after_hwframe')
f(36,364,19,5,'do_syscall_64')
f(37,364,18,5,'__x64_sys_futex')
f(38,364,18,5,'do_futex')
f(39,364,18,5,'futex_wake')
f(40,364,1,5,'mark_wake_futex')
f(40,365,17,5,'wake_up_q')
f(41,365,17,5,'_raw_spin_unlock_irqrestore')
f(37,382,1,5,'syscall_enter_from_user_mode')
f(5,383,2,2,'cats/effect/unsafe/IORuntime.cancelationCheckThreshold',2,0,0)
f(3,385,12,1,'cats/effect/IOFiber.execR',1,0,0)
f(4,386,11,1,'cats/effect/IOFiber.runLoop')
f(5,394,2,2,'cats/effect/IOFiber.next$2',2,0,0)
f(6,394,2,2,'kyo/bench/DeepBindBench$$Lambda$39.0x0000000800c8cd58.apply',2,0,0)
f(7,394,2,2,'kyo/bench/DeepBindBench.loop$2$$anonfun$1',2,0,0)
f(8,394,2,2,'kyo/bench/DeepBindBench.loop$2',2,0,0)
f(9,394,1,2,'cats/effect/IO.flatMap',1,0,0)
f(10,394,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(9,395,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(10,395,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial',1,0,0)
f(11,395,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(5,396,1,1,'cats/effect/IOFiber.rescheduleFiber')
f(6,396,1,1,'cats/effect/unsafe/WorkStealingThreadPool.reschedule')
f(2,397,1,2,'cats/effect/unsafe/LocalQueue.dequeue',1,0,0)
f(2,398,2,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,399,1,2,'cats/effect/unsafe/ScalQueue.poll',1,0,0)
f(4,399,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(5,399,1,2,'java/util/Random.nextInt',1,0,0)
f(6,399,1,2,'java/util/concurrent/ThreadLocalRandom.next',1,0,0)
f(2,400,12,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,400,12,1,'java/util/concurrent/locks/LockSupport.park')
f(4,400,12,1,'jdk/internal/misc/Unsafe.park')
f(5,400,1,3,'Unsafe_Park')
f(6,400,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,400,1,5,'entry_SYSCALL_64_after_hwframe')
f(8,400,1,5,'do_syscall_64')
f(9,400,1,5,'syscall_enter_from_user_mode')
f(5,401,11,3,'[unknown]')
f(6,401,11,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,401,11,5,'entry_SYSCALL_64_after_hwframe')
f(8,401,11,5,'do_syscall_64')
f(9,401,9,5,'__x64_sys_futex')
f(10,401,9,5,'do_futex')
f(11,401,9,5,'futex_wait')
f(12,401,9,5,'futex_wait_queue_me')
f(13,401,9,5,'schedule')
f(14,401,9,5,'__schedule')
f(15,401,9,5,'finish_task_switch.isra.0')
f(9,410,2,5,'syscall_enter_from_user_mode')
f(1,412,33,1,'java/lang/Thread.run')
f(2,412,33,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,412,33,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,412,33,1,'java/util/concurrent/FutureTask.run')
f(5,412,33,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,412,33,1,'java/util/concurrent/FutureTask.run')
f(7,412,33,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,412,33,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,412,33,1,'java/lang/reflect/Method.invoke')
f(10,412,33,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,412,33,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,412,33,1,'kyo/bench/jmh_generated/DeepBindBench_syncCats_jmhTest.syncCats_Throughput')
f(13,412,33,1,'kyo/bench/jmh_generated/DeepBindBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,412,33,1,'kyo/bench/Bench.syncCats')
f(15,412,33,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,412,33,1,'cats/effect/IOPlatform.unsafeRunTimed',2,0,0)
f(17,412,11,1,'cats/effect/IO.unsafeRunAsync',1,0,0)
f(18,412,11,1,'cats/effect/IO.unsafeRunFiber',1,0,0)
f(19,412,1,2,'cats/effect/unsafe/StripedHashtable.put',1,0,0)
f(20,412,1,2,'cats/effect/unsafe/ThreadSafeHashtable.put',1,0,0)
f(21,412,1,2,'cats/effect/unsafe/ThreadSafeHashtable.insert',1,0,0)
f(19,413,10,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,413,10,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,413,10,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,413,10,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,413,10,1,'jdk/internal/misc/Unsafe.unpark')
f(24,413,10,3,'pthread_cond_signal')
f(25,414,9,5,'entry_SYSCALL_64_after_hwframe')
f(26,414,9,5,'do_syscall_64')
f(27,414,8,5,'__x64_sys_futex')
f(28,414,8,5,'do_futex')
f(29,414,8,5,'futex_wake')
f(30,414,8,5,'wake_up_q')
f(31,414,8,5,'_raw_spin_unlock_irqrestore')
f(27,422,1,5,'syscall_exit_to_user_mode_prepare')
f(17,423,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(18,423,1,2,'java/util/concurrent/ArrayBlockingQueue.<init>',1,0,0)
f(17,424,21,1,'scala/concurrent/package$.blocking')
f(18,424,21,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,424,21,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5de08.apply')
f(20,424,21,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,424,21,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,424,21,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,424,21,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,424,21,1,'jdk/internal/misc/Unsafe.park')
f(25,424,1,4,'JavaThread::threadObj() const')
f(25,425,1,3,'Unsafe_Park')
f(26,425,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,425,1,5,'entry_SYSCALL_64_after_hwframe')
f(28,425,1,5,'do_syscall_64')
f(29,425,1,5,'syscall_enter_from_user_mode')
f(25,426,19,3,'[unknown]')
f(26,426,18,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,427,17,5,'entry_SYSCALL_64_after_hwframe')
f(28,427,17,5,'do_syscall_64')
f(29,427,15,5,'__x64_sys_futex')
f(30,427,14,5,'do_futex')
f(31,427,14,5,'futex_wait')
f(32,427,1,5,'__get_user_nocheck_4')
f(32,428,11,5,'futex_wait_queue_me')
f(33,428,11,5,'schedule')
f(34,428,11,5,'__schedule')
f(35,428,11,5,'finish_task_switch.isra.0')
f(32,439,2,5,'futex_wait_setup')
f(33,440,1,5,'hash_futex')
f(30,441,1,5,'get_timespec64')
f(29,442,1,5,'syscall_enter_from_user_mode')
f(29,443,1,5,'syscall_exit_to_user_mode')
f(30,443,1,5,'exit_to_user_mode_prepare')
f(31,443,1,5,'exit_to_user_mode_loop')
f(32,443,1,5,'mem_cgroup_handle_over_high')
f(26,444,1,3,'pthread_cond_timedwait')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,18666,3,'all')
f(1,0,17989,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,17989,1,'cats/effect/IOFiber.run')
f(3,0,17667,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,17667,1,'cats/effect/IOFiber.runLoop')
f(5,0,10803,1,'cats/effect/IOFiber.next$2')
f(6,0,10803,1,'kyo/bench/DeepBindMapBench$$Lambda$94.0x0000000800d5dec0.apply')
f(7,0,10803,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1')
f(8,0,809,1,'cats/effect/IO$.apply')
f(9,0,809,1,'cats/effect/IO$.delay')
f(10,0,809,1,'cats/effect/IO$Delay$.apply')
f(11,0,809,2,'cats.effect.IO$Delay')
f(8,809,752,1,'cats/effect/IO.flatMap')
f(9,809,752,1,'cats/effect/IO$FlatMap$.apply')
f(10,809,752,2,'cats.effect.IO$FlatMap')
f(8,1561,8099,1,'cats/effect/IO.map')
f(9,1561,8099,1,'cats/effect/IO$Map$.apply')
f(10,1561,8099,2,'cats.effect.IO$Map')
f(8,9660,1143,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,9660,1143,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,9660,1143,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,9660,536,2,'kyo.bench.DeepBindMapBench$$Lambda$107+0x0000000800d59000')
f(11,10196,607,2,'kyo.bench.DeepBindMapBench$$Lambda$95+0x0000000800d5e8c0')
f(5,10803,6348,1,'cats/effect/IOFiber.succeeded')
f(6,10803,1578,1,'kyo/bench/DeepBindMapBench$$Lambda$107.0x0000000800d59000.apply')
f(7,10803,1578,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$adapted$1')
f(8,10803,1578,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$12')
f(9,10803,1578,1,'kyo/bench/DeepBindMapBench.loop$2')
f(10,10803,761,1,'cats/effect/IO.flatMap')
f(11,10803,761,1,'cats/effect/IO$FlatMap$.apply')
f(12,10803,761,2,'cats.effect.IO$FlatMap')
f(10,11564,817,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,11564,817,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial')
f(12,11564,817,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,11564,817,2,'kyo.bench.DeepBindMapBench$$Lambda$94+0x0000000800d5dec0')
f(6,12381,4770,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(7,12381,4770,1,'java/lang/Integer.valueOf')
f(8,12381,4770,2,'java.lang.Integer')
f(5,17151,516,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(6,17151,516,1,'java/lang/Integer.valueOf')
f(7,17151,516,2,'java.lang.Integer')
f(3,17667,84,1,'cats/effect/IOFiber.cedeR')
f(4,17667,84,1,'cats/effect/IOFiber.runLoop')
f(5,17667,73,1,'cats/effect/IOFiber.next$2')
f(6,17667,73,1,'kyo/bench/DeepBindMapBench$$Lambda$94.0x0000000800d5dec0.apply')
f(7,17667,73,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1')
f(8,17667,4,1,'cats/effect/IO$.apply')
f(9,17667,4,1,'cats/effect/IO$.delay')
f(10,17667,4,1,'cats/effect/IO$Delay$.apply')
f(11,17667,4,2,'cats.effect.IO$Delay')
f(8,17671,6,1,'cats/effect/IO.flatMap')
f(9,17671,6,1,'cats/effect/IO$FlatMap$.apply')
f(10,17671,6,2,'cats.effect.IO$FlatMap')
f(8,17677,61,1,'cats/effect/IO.map')
f(9,17677,61,1,'cats/effect/IO$Map$.apply')
f(10,17677,61,2,'cats.effect.IO$Map')
f(8,17738,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,17738,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,17738,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,17738,2,2,'kyo.bench.DeepBindMapBench$$Lambda$107+0x0000000800d59000')
f(5,17740,11,1,'cats/effect/IOFiber.succeeded')
f(6,17740,11,1,'kyo/bench/DeepBindMapBench$$Lambda$107.0x0000000800d59000.apply')
f(7,17740,11,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$adapted$1')
f(8,17740,11,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$12')
f(9,17740,11,1,'kyo/bench/DeepBindMapBench.loop$2')
f(10,17740,6,1,'cats/effect/IO.flatMap')
f(11,17740,6,1,'cats/effect/IO$FlatMap$.apply')
f(12,17740,6,2,'cats.effect.IO$FlatMap')
f(10,17746,5,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,17746,5,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58800.newInvokeSpecial')
f(12,17746,5,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,17746,5,2,'kyo.bench.DeepBindMapBench$$Lambda$94+0x0000000800d5dec0')
f(3,17751,238,1,'cats/effect/IOFiber.execR')
f(4,17751,238,1,'cats/effect/ByteStack$.create')
f(5,17751,238,2,'int[]')
f(1,17989,1,2,'java.lang.String')
f(1,17990,653,1,'java/lang/Thread.run')
f(2,17990,653,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,17990,653,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,17990,652,1,'java/util/concurrent/FutureTask.run')
f(5,17990,652,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,17990,652,1,'java/util/concurrent/FutureTask.run')
f(7,17990,652,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,17990,652,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,17990,652,1,'java/lang/reflect/Method.invoke')
f(10,17990,652,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,17990,652,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,17990,652,1,'kyo/bench/jmh_generated/DeepBindMapBench_forkCats_jmhTest.forkCats_Throughput')
f(13,17990,650,1,'kyo/bench/jmh_generated/DeepBindMapBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,17990,650,1,'kyo/bench/Bench.forkCats')
f(15,17990,12,1,'cats/effect/IO.flatMap')
f(16,17990,12,1,'cats/effect/IO$FlatMap$.apply')
f(17,17990,12,2,'cats.effect.IO$FlatMap')
f(15,18002,605,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,18002,574,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,18002,338,1,'cats/effect/IO.unsafeRunAsync')
f(18,18002,256,1,'cats/effect/IO.unsafeRunFiber')
f(19,18002,40,2,'cats.effect.IOFiber')
f(19,18042,170,1,'cats/effect/IOFiber.<init>')
f(20,18042,71,1,'cats/effect/ArrayStack$.apply')
f(21,18042,71,2,'cats.effect.ArrayStack')
f(20,18113,7,1,'cats/effect/CallbackStack$.apply')
f(21,18113,7,2,'cats.effect.CallbackStack')
f(20,18120,55,1,'cats/effect/IO$.async')
f(21,18120,20,2,'cats.effect.IO$$anon$3')
f(21,18140,35,1,'cats/effect/IO$IOCont$.apply')
f(22,18140,35,2,'cats.effect.IO$IOCont')
f(20,18175,35,1,'cats/effect/IO$.uncancelable')
f(21,18175,35,1,'cats/effect/IO$Uncancelable$.apply')
f(22,18175,35,2,'cats.effect.IO$Uncancelable')
f(20,18210,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,18210,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,18210,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,18210,2,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5cc30')
f(19,18212,24,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,18212,24,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,18212,24,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,18212,24,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,18212,24,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,18236,22,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,18236,22,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58400.newInvokeSpecial')
f(21,18236,22,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,18236,22,2,'cats.effect.IO$$Lambda$90+0x0000000800d5c000')
f(18,18258,82,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,18258,82,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,18258,82,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,18258,3,2,'cats.effect.IO$$Lambda$87+0x0000000800d57c40')
f(21,18261,51,2,'cats.effect.IO$$Lambda$88+0x0000000800d55000')
f(21,18312,28,2,'cats.effect.IO$$Lambda$89+0x0000000800d55408')
f(17,18340,32,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,18372,21,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,18372,21,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,18372,21,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,18372,21,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d57838')
f(17,18393,127,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,18393,127,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,18393,54,2,'java.lang.Object[]')
f(19,18447,33,2,'java.util.concurrent.locks.ReentrantLock')
f(19,18480,9,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,18480,9,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,18489,31,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,18489,31,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,18489,31,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,18520,21,1,'scala/concurrent/package$.blocking')
f(18,18520,21,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,18520,21,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5dc00.apply')
f(20,18520,21,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,18520,21,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,18520,21,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,18520,21,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,18541,35,1,'scala/util/Either.fold')
f(18,18541,35,1,'cats/effect/IOPlatform$$Lambda$112.0x0000000800d60d88.apply')
f(19,18541,35,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,18541,35,1,'scala/Some$.apply')
f(21,18541,35,2,'scala.Some')
f(16,18576,31,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,18576,31,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,18576,31,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,18576,31,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,18576,31,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,18576,31,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,18576,31,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,18576,31,2,'scala.concurrent.duration.FiniteDuration')
f(15,18607,33,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,18607,33,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,18607,33,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,18607,33,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8cd58')
f(13,18640,2,2,'org.openjdk.jmh.results.ThroughputResult')
f(4,18642,1,1,'java/util/concurrent/ThreadPoolExecutor.getTask')
f(5,18642,1,1,'java/util/concurrent/LinkedBlockingQueue.take')
f(6,18642,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await')
f(7,18642,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(1,18643,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,18643,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,18643,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,18643,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,18643,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,18643,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,18643,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,18643,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,18643,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,18643,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,18643,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,18643,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,18643,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,18643,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,18643,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,18643,1,2,'java.lang.Object[]')
f(7,18644,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,18644,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,18644,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,18647,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,18647,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,18647,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,18647,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,18647,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,18647,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,18652,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,18652,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,18652,3,1,'java/lang/ClassLoader.loadClass')
f(10,18652,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,18652,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,18652,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,18652,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,18652,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,18652,1,1,'java/security/CodeSource.<init>')
f(16,18652,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,18652,1,1,'java/lang/StringBuilder.append')
f(18,18652,1,1,'java/lang/AbstractStringBuilder.append')
f(19,18652,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,18652,1,1,'java/util/Arrays.copyOf')
f(21,18652,1,2,'byte[]')
f(15,18653,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,18653,1,1,'java/util/Arrays.copyOf')
f(17,18653,1,5,'byte[]')
f(14,18654,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,18654,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,18654,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,18654,1,1,'java/net/URL.<init>')
f(18,18654,1,1,'java/net/URL.<init>')
f(19,18654,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,18654,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,18654,1,1,'java/lang/StringBuilder.toString')
f(22,18654,1,1,'java/lang/StringLatin1.newString')
f(23,18654,1,2,'java.lang.String')
f(9,18655,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,18655,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,18655,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,18655,11,1,'java/io/ObjectStreamClass.lookup')
f(13,18655,11,1,'java/io/ObjectStreamClass.<init>')
f(14,18655,11,1,'java/security/AccessController.doPrivileged')
f(15,18655,11,1,'java/security/AccessController.executePrivileged')
f(16,18655,11,1,'java/io/ObjectStreamClass$2.run')
f(17,18655,11,1,'java/io/ObjectStreamClass$2.run')
f(18,18655,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,18655,2,1,'java/lang/Class.getDeclaredMethod')
f(20,18655,1,1,'java/lang/Class.methodToString')
f(21,18655,1,1,'java/lang/StringBuilder.append')
f(22,18655,1,1,'java/lang/AbstractStringBuilder.append')
f(23,18655,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,18655,1,1,'java/util/Arrays.copyOf')
f(25,18655,1,2,'byte[]')
f(20,18656,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,18656,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,18656,1,1,'java/lang/Exception.<init>')
f(23,18656,1,1,'java/lang/Throwable.<init>')
f(24,18656,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,18656,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,18656,1,2,'short[]')
f(18,18657,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,18657,3,1,'java/lang/Class.getDeclaredMethod')
f(20,18657,2,1,'java/lang/Class.methodToString')
f(21,18657,1,1,'java/lang/StringBuilder.append')
f(22,18657,1,1,'java/lang/AbstractStringBuilder.append')
f(23,18657,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,18657,1,1,'java/util/Arrays.copyOf')
f(25,18657,1,2,'byte[]')
f(21,18658,1,1,'java/lang/StringBuilder.toString')
f(22,18658,1,1,'java/lang/StringLatin1.newString')
f(23,18658,1,1,'java/util/Arrays.copyOfRange')
f(24,18658,1,2,'byte[]')
f(20,18659,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,18659,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,18659,1,1,'java/lang/Exception.<init>')
f(23,18659,1,1,'java/lang/Throwable.<init>')
f(24,18659,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,18659,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,18659,1,5,'long[]')
f(18,18660,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,18660,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,18660,1,1,'java/lang/Class.getDeclaredField')
f(21,18660,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,18660,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,18660,1,1,'java/lang/Exception.<init>')
f(24,18660,1,1,'java/lang/Throwable.<init>')
f(25,18660,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,18660,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,18660,1,2,'long[]')
f(18,18661,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,18661,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,18661,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,18661,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,18661,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,18661,1,1,'java/security/AccessController.doPrivileged')
f(24,18661,1,1,'java/security/AccessController.executePrivileged')
f(25,18661,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,18661,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,18661,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,18661,1,1,'java/security/AccessController.doPrivileged')
f(29,18661,1,1,'java/security/AccessController.executePrivileged')
f(30,18661,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,18661,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,18661,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,18661,1,1,'java/lang/ClassLoader.<init>')
f(34,18661,1,1,'java/lang/ClassLoader.<init>')
f(35,18661,1,1,'java/lang/ClassLoader.nameAndId')
f(36,18661,1,1,'java/lang/StringBuilder.<init>')
f(37,18661,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,18661,1,2,'byte[]')
f(23,18662,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,18662,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,18662,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,18662,1,2,'byte[]')
f(23,18663,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,18663,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,18663,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,18663,1,2,'byte[]')
f(23,18664,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,18664,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,18664,1,1,'java/lang/String.replace')
f(26,18664,1,1,'java/lang/StringLatin1.replace')
f(27,18664,1,2,'java.lang.String')
f(23,18665,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,18665,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 512px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(32);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,501,3,'all')
f(1,0,9,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,9,3,'thread_native_entry(Thread*)')
f(3,0,9,4,'Thread::call_run()')
f(4,0,9,4,'JavaThread::thread_main_inner()')
f(5,0,9,4,'CompileBroker::compiler_thread_loop()')
f(6,0,9,4,'CompileBroker::invoke_compiler_on_method(CompileTask*)')
f(7,0,9,4,'C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)')
f(8,0,9,4,'Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, bool, DirectiveSet*)')
f(9,0,6,4,'Compile::Code_Gen()')
f(10,0,1,4,'Matcher::match()')
f(11,0,1,4,'Matcher::xform(Node*, int)')
f(12,0,1,4,'Matcher::match_tree(Node const*)')
f(13,0,1,4,'Matcher::ReduceInst(State*, int, Node*&)')
f(14,0,1,4,'decodeHeapOop_not_nullNode::Expand(State*, Node_List&, Node*)')
f(15,0,1,4,'Node::Node(Node*)')
f(16,0,1,4,'Node::out_grow(unsigned int)')
f(10,1,1,4,'PhaseCFG::do_global_code_motion()')
f(11,1,1,4,'PhaseCFG::global_code_motion()')
f(12,1,1,4,'PhaseCFG::call_catch_cleanup(Block*)')
f(10,2,4,4,'PhaseChaitin::Register_Allocate()')
f(11,2,1,4,'PhaseChaitin::Split(unsigned int, ResourceArea*)')
f(11,3,1,4,'PhaseChaitin::gather_lrg_masks(bool)')
f(11,4,1,4,'PhaseChaitin::post_allocate_copy_removal()')
f(12,4,1,4,'PhaseChaitin::elide_copy(Node*, int, Block*, Node_List&, Node_List&, bool)')
f(11,5,1,4,'PhaseIFG::SquareUp()')
f(12,5,1,4,'IndexSetIterator::advance_and_next()')
f(9,6,2,4,'Compile::Optimize()')
f(10,6,1,4,'PhaseIdealLoop::build_and_optimize(LoopOptsMode)')
f(11,6,1,4,'PhaseIdealLoop::build_loop_tree()')
f(12,6,1,4,'PhaseIdealLoop::build_loop_tree_impl(Node*, int)')
f(10,7,1,4,'PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)')
f(11,7,1,4,'PhaseIdealLoop::build_and_optimize(LoopOptsMode)')
f(12,7,1,4,'PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&)')
f(13,7,1,4,'PhaseIdealLoop::build_loop_late_post_work(Node*, bool)')
f(14,7,1,4,'PhaseIdealLoop::compute_lca_of_uses(Node*, Node*, bool)')
f(15,7,1,4,'PhaseIdealLoop::dom_lca_for_get_late_ctrl_internal(Node*, Node*, Node*)')
f(9,8,1,4,'ParseGenerator::generate(JVMState*)')
f(10,8,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(11,8,1,4,'Parse::do_all_blocks()')
f(12,8,1,4,'Parse::do_one_block()')
f(13,8,1,4,'Parse::do_call()')
f(14,8,1,4,'PredictedCallGenerator::generate(JVMState*)')
f(15,8,1,4,'ParseGenerator::generate(JVMState*)')
f(16,8,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(17,8,1,4,'Parse::do_all_blocks()')
f(18,8,1,4,'Parse::do_one_block()')
f(19,8,1,4,'Parse::do_call()')
f(20,8,1,4,'ParseGenerator::generate(JVMState*)')
f(21,8,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(22,8,1,4,'Parse::do_all_blocks()')
f(23,8,1,4,'Parse::do_one_block()')
f(24,8,1,4,'Parse::do_call()')
f(25,8,1,4,'ParseGenerator::generate(JVMState*)')
f(26,8,1,4,'Parse::Parse(JVMState*, ciMethod*, float)')
f(27,8,1,4,'Parse::do_all_blocks()')
f(28,8,1,4,'Parse::do_one_block()')
f(29,8,1,4,'Parse::do_field_access(bool, bool)')
f(30,8,1,4,'ciBytecodeStream::get_field(bool&)')
f(31,8,1,4,'ciEnv::get_field_by_index(ciInstanceKlass*, int)')
f(1,9,5,3,'[unknown_Java]')
f(2,9,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(2,11,2,6,'cats/effect/IO$Map.tag',0,2,0)
f(2,13,1,1,'kyo/bench/DeepBindMapBench$$Lambda$103.0x0000000800d5afa0.apply$mcII$sp')
f(1,14,486,1,'cats/effect/unsafe/WorkerThread.run')
f(2,14,485,1,'cats/effect/IOFiber.run')
f(3,14,482,1,'cats/effect/IOFiber.autoCedeR')
f(4,14,482,1,'cats/effect/IOFiber.runLoop')
f(5,22,23,2,'cats/effect/ByteStack$.push',23,0,0)
f(6,22,23,2,'cats/effect/ByteStack$.growIfNeeded',23,0,0)
f(5,45,9,6,'cats/effect/IO$FlatMap.tag',0,9,0)
f(5,54,18,6,'cats/effect/IO$Map.tag',0,18,0)
f(5,72,8,6,'cats/effect/IO$Pure.tag',0,8,0)
f(5,80,153,2,'cats/effect/IOFiber.next$2',152,0,0)
f(6,81,152,2,'kyo/bench/DeepBindMapBench$$Lambda$94.0x0000000800d5e4f0.apply',151,0,0)
f(7,102,131,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1',130,0,0)
f(8,104,129,2,'scala/runtime/BoxesRunTime.boxToInteger',128,0,0)
f(9,232,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(10,232,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(11,232,1,4,'MemAllocator::allocate() const')
f(12,232,1,4,'AllocTracer::send_allocation_in_new_tlab(Klass*, HeapWordImpl**, unsigned long, unsigned long, JavaThread*)')
f(13,232,1,4,'ObjectSampler::is_created()')
f(5,233,1,2,'cats/effect/IOFiber.rescheduleFiber',1,0,0)
f(5,234,239,1,'cats/effect/IOFiber.succeeded')
f(6,287,11,2,'cats/effect/ArrayStack.pop',11,0,0)
f(6,298,27,2,'cats/effect/ByteStack$.pop',27,0,0)
f(7,308,17,2,'cats/effect/ByteStack$.peek',17,0,0)
f(6,325,61,3,'itable stub')
f(6,386,87,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(7,431,25,3,'itable stub')
f(7,456,6,2,'java/lang/Integer.valueOf',6,0,0)
f(7,462,1,1,'kyo/bench/DeepBindMapBench$$Lambda$100.0x0000000800d5a3e8.apply$mcII$sp')
f(7,463,1,1,'kyo/bench/DeepBindMapBench$$Lambda$101.0x0000000800d5a7d0.apply$mcII$sp')
f(7,464,1,1,'kyo/bench/DeepBindMapBench$$Lambda$102.0x0000000800d5abb8.apply$mcII$sp')
f(7,465,5,1,'kyo/bench/DeepBindMapBench$$Lambda$105.0x0000000800d5b770.apply$mcII$sp')
f(8,469,1,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$10',1,0,0)
f(7,470,2,1,'kyo/bench/DeepBindMapBench$$Lambda$106.0x0000000800d5bb58.apply$mcII$sp')
f(7,472,1,1,'kyo/bench/DeepBindMapBench$$Lambda$98.0x0000000800d5fb78.apply$mcII$sp')
f(5,473,23,3,'vtable stub')
f(3,496,3,1,'cats/effect/IOFiber.cedeR')
f(4,496,3,1,'cats/effect/IOFiber.runLoop')
f(5,496,3,1,'cats/effect/IOFiber.succeeded')
f(6,497,1,2,'cats/effect/ByteStack$.pop',1,0,0)
f(7,497,1,2,'cats/effect/ByteStack$.peek',1,0,0)
f(6,498,1,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(7,498,1,1,'kyo/bench/DeepBindMapBench$$Lambda$103.0x0000000800d5afa0.apply$mcII$sp')
f(2,499,1,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,499,1,1,'java/util/concurrent/locks/LockSupport.park')
f(4,499,1,1,'jdk/internal/misc/Unsafe.park')
f(5,499,1,3,'[unknown]')
f(6,499,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,499,1,5,'entry_SYSCALL_64_after_hwframe')
f(8,499,1,5,'do_syscall_64')
f(9,499,1,5,'__x64_sys_futex')
f(10,499,1,5,'do_futex')
f(11,499,1,5,'futex_wait')
f(12,499,1,5,'futex_wait_queue_me')
f(13,499,1,5,'schedule')
f(14,499,1,5,'__schedule')
f(15,499,1,5,'finish_task_switch.isra.0')
f(1,500,1,1,'java/lang/Thread.run')
f(2,500,1,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,500,1,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,500,1,1,'java/util/concurrent/FutureTask.run')
f(5,500,1,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,500,1,1,'java/util/concurrent/FutureTask.run')
f(7,500,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,500,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,500,1,1,'java/lang/reflect/Method.invoke')
f(10,500,1,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,500,1,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,500,1,1,'kyo/bench/jmh_generated/DeepBindMapBench_forkCats_jmhTest.forkCats_Throughput')
f(13,500,1,1,'kyo/bench/jmh_generated/DeepBindMapBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,500,1,1,'kyo/bench/Bench.forkCats')
f(15,500,1,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,500,1,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,500,1,1,'scala/concurrent/package$.blocking')
f(18,500,1,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,500,1,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5d9f8.apply')
f(20,500,1,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,500,1,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,500,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,18586,3,'all')
f(1,0,17872,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,17872,1,'cats/effect/IOFiber.run')
f(3,0,17548,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,17548,1,'cats/effect/IOFiber.runLoop')
f(5,0,10583,1,'cats/effect/IOFiber.next$2')
f(6,0,10583,1,'kyo/bench/DeepBindMapBench$$Lambda$39.0x0000000800c8cd58.apply')
f(7,0,10583,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1')
f(8,0,716,1,'cats/effect/IO$.apply')
f(9,0,716,1,'cats/effect/IO$.delay')
f(10,0,716,1,'cats/effect/IO$Delay$.apply')
f(11,0,716,2,'cats.effect.IO$Delay')
f(8,716,790,1,'cats/effect/IO.flatMap')
f(9,716,790,1,'cats/effect/IO$FlatMap$.apply')
f(10,716,790,2,'cats.effect.IO$FlatMap')
f(8,1506,7960,1,'cats/effect/IO.map')
f(9,1506,7960,1,'cats/effect/IO$Map$.apply')
f(10,1506,7960,2,'cats.effect.IO$Map')
f(8,9466,1117,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,9466,1117,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,9466,1117,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,9466,518,2,'kyo.bench.DeepBindMapBench$$Lambda$106+0x0000000800d59000')
f(11,9984,599,2,'kyo.bench.DeepBindMapBench$$Lambda$94+0x0000000800d5e4f0')
f(5,10583,6461,1,'cats/effect/IOFiber.succeeded')
f(6,10583,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,10583,2,1,'cats/effect/IOFiber.done')
f(8,10583,2,1,'cats/effect/CallbackStack.apply')
f(9,10583,2,1,'scala/runtime/function/JProcedure1.apply')
f(10,10583,2,1,'scala/runtime/function/JProcedure1.apply')
f(11,10583,2,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c000.applyVoid')
f(12,10583,2,1,'cats/effect/IO.$anonfun$6')
f(13,10583,1,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,10583,1,1,'cats/effect/kernel/Outcome.fold$')
f(15,10583,1,1,'cats/effect/kernel/Outcome.fold')
f(16,10583,1,1,'scala/runtime/function/JProcedure1.apply')
f(17,10583,1,1,'scala/runtime/function/JProcedure1.apply')
f(18,10583,1,1,'cats/effect/IO$$Lambda$109.0x0000000800d60000.applyVoid')
f(19,10583,1,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,10583,1,1,'scala/runtime/function/JProcedure1.apply')
f(21,10583,1,1,'scala/runtime/function/JProcedure1.apply')
f(22,10583,1,1,'cats/effect/IO$$Lambda$89.0x0000000800d556c8.applyVoid')
f(23,10583,1,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,10583,1,1,'scala/runtime/function/JProcedure1.apply')
f(25,10583,1,1,'scala/runtime/function/JProcedure1.apply')
f(26,10583,1,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d57a60.applyVoid')
f(27,10583,1,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,10583,1,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,10583,1,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(30,10583,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(31,10583,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(32,10583,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(33,10583,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(34,10583,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(13,10584,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,10584,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,10584,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,10584,1,2,'cats.effect.IO$$Lambda$109+0x0000000800d60000')
f(6,10585,1649,1,'kyo/bench/DeepBindMapBench$$Lambda$106.0x0000000800d59000.apply')
f(7,10585,1649,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$adapted$1')
f(8,10585,1649,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$12')
f(9,10585,1649,1,'kyo/bench/DeepBindMapBench.loop$2')
f(10,10585,820,1,'cats/effect/IO.flatMap')
f(11,10585,820,1,'cats/effect/IO$FlatMap$.apply')
f(12,10585,820,2,'cats.effect.IO$FlatMap')
f(10,11405,829,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,11405,829,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial')
f(12,11405,829,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,11405,829,2,'kyo.bench.DeepBindMapBench$$Lambda$39+0x0000000800c8cd58')
f(6,12234,4810,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(7,12234,4810,1,'java/lang/Integer.valueOf')
f(8,12234,4810,2,'java.lang.Integer')
f(5,17044,504,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(6,17044,504,1,'java/lang/Integer.valueOf')
f(7,17044,504,2,'java.lang.Integer')
f(3,17548,324,1,'cats/effect/IOFiber.execR')
f(4,17548,237,1,'cats/effect/ByteStack$.create')
f(5,17548,237,2,'int[]')
f(4,17785,87,1,'cats/effect/IOFiber.runLoop')
f(5,17785,76,1,'cats/effect/IOFiber.next$2')
f(6,17785,76,1,'kyo/bench/DeepBindMapBench$$Lambda$39.0x0000000800c8cd58.apply')
f(7,17785,76,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1')
f(8,17785,4,1,'cats/effect/IO$.apply')
f(9,17785,4,1,'cats/effect/IO$.delay')
f(10,17785,4,1,'cats/effect/IO$Delay$.apply')
f(11,17785,4,2,'cats.effect.IO$Delay')
f(8,17789,3,1,'cats/effect/IO.flatMap')
f(9,17789,3,1,'cats/effect/IO$FlatMap$.apply')
f(10,17789,3,2,'cats.effect.IO$FlatMap')
f(8,17792,66,1,'cats/effect/IO.map')
f(9,17792,66,1,'cats/effect/IO$Map$.apply')
f(10,17792,66,2,'cats.effect.IO$Map')
f(8,17858,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,17858,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,17858,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,17858,2,2,'kyo.bench.DeepBindMapBench$$Lambda$106+0x0000000800d59000')
f(11,17860,1,2,'kyo.bench.DeepBindMapBench$$Lambda$94+0x0000000800d5e4f0')
f(5,17861,11,1,'cats/effect/IOFiber.succeeded')
f(6,17861,11,1,'kyo/bench/DeepBindMapBench$$Lambda$106.0x0000000800d59000.apply')
f(7,17861,11,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$adapted$1')
f(8,17861,11,1,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$12')
f(9,17861,11,1,'kyo/bench/DeepBindMapBench.loop$2')
f(10,17861,5,1,'cats/effect/IO.flatMap')
f(11,17861,5,1,'cats/effect/IO$FlatMap$.apply')
f(12,17861,5,2,'cats.effect.IO$FlatMap')
f(10,17866,6,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,17866,6,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial')
f(12,17866,6,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,17866,6,2,'kyo.bench.DeepBindMapBench$$Lambda$39+0x0000000800c8cd58')
f(1,17872,1,2,'java.lang.String')
f(1,17873,690,1,'java/lang/Thread.run')
f(2,17873,690,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,17873,690,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,17873,689,1,'java/util/concurrent/FutureTask.run')
f(5,17873,689,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,17873,689,1,'java/util/concurrent/FutureTask.run')
f(7,17873,689,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,17873,689,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,17873,689,1,'java/lang/reflect/Method.invoke')
f(10,17873,689,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,17873,689,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,17873,689,1,'kyo/bench/jmh_generated/DeepBindMapBench_syncCats_jmhTest.syncCats_Throughput')
f(13,17873,689,1,'kyo/bench/jmh_generated/DeepBindMapBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,17873,689,1,'kyo/bench/Bench.syncCats')
f(15,17873,629,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,17873,619,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,17873,292,1,'cats/effect/IO.unsafeRunAsync')
f(18,17873,235,1,'cats/effect/IO.unsafeRunFiber')
f(19,17873,50,2,'cats.effect.IOFiber')
f(19,17923,4,5,'cats.effect.IOFiber')
f(19,17927,175,1,'cats/effect/IOFiber.<init>')
f(20,17927,58,1,'cats/effect/ArrayStack$.apply')
f(21,17927,58,2,'cats.effect.ArrayStack')
f(20,17985,36,1,'cats/effect/CallbackStack$.apply')
f(21,17985,36,2,'cats.effect.CallbackStack')
f(20,18021,33,1,'cats/effect/IO$.async')
f(21,18021,4,2,'cats.effect.IO$$anon$3')
f(21,18025,29,1,'cats/effect/IO$IOCont$.apply')
f(22,18025,29,2,'cats.effect.IO$IOCont')
f(20,18054,29,1,'cats/effect/IO$.uncancelable')
f(21,18054,29,1,'cats/effect/IO$Uncancelable$.apply')
f(22,18054,29,2,'cats.effect.IO$Uncancelable')
f(20,18083,19,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,18083,19,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,18083,19,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,18083,10,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5ce38')
f(23,18093,9,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d428')
f(19,18102,6,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,18102,6,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,18102,6,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,18102,6,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,18102,6,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(18,18108,57,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,18108,57,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,18108,57,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,18108,1,2,'cats.effect.IO$$Lambda$87+0x0000000800d55000')
f(21,18109,6,2,'cats.effect.IO$$Lambda$88+0x0000000800d552c0')
f(21,18115,50,2,'cats.effect.IO$$Lambda$89+0x0000000800d556c8')
f(17,18165,59,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,18224,79,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,18224,79,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,18224,79,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,18224,55,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d57a60')
f(20,18279,24,2,'cats.effect.IOPlatform$$Lambda$93+0x0000000800d5de08')
f(17,18303,122,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,18303,122,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,18303,61,2,'java.util.concurrent.locks.ReentrantLock')
f(19,18364,61,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,18364,61,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,18364,61,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,18425,11,1,'scala/concurrent/package$.blocking')
f(18,18425,11,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,18425,11,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5de08.apply')
f(20,18425,11,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,18425,11,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,18425,11,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,18425,11,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,18436,56,1,'scala/util/Either.fold')
f(18,18436,56,1,'cats/effect/IOPlatform$$Lambda$111.0x0000000800d60d88.apply')
f(19,18436,56,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,18436,56,1,'scala/Some$.apply')
f(21,18436,56,2,'scala.Some')
f(16,18492,10,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,18492,10,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,18492,10,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,18492,10,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,18492,10,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,18492,10,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,18492,10,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,18492,10,2,'scala.concurrent.duration.FiniteDuration')
f(15,18502,60,1,'kyo/bench/DeepBindMapBench.catsBench')
f(16,18502,60,1,'kyo/bench/DeepBindMapBench.loop$2')
f(17,18502,50,1,'cats/effect/IO.flatMap')
f(18,18502,50,1,'cats/effect/IO$FlatMap$.apply')
f(19,18502,50,2,'cats.effect.IO$FlatMap')
f(17,18552,10,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,18552,10,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800c89000.newInvokeSpecial')
f(19,18552,10,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,18552,10,2,'kyo.bench.DeepBindMapBench$$Lambda$39+0x0000000800c8cd58')
f(4,18562,1,1,'java/util/concurrent/ThreadPoolExecutor.getTask')
f(5,18562,1,1,'java/util/concurrent/LinkedBlockingQueue.take')
f(6,18562,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.await')
f(7,18562,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(1,18563,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,18563,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,18563,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,18563,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,18563,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,18563,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,18563,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,18563,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,18563,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,18563,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,18563,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,18563,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,18563,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,18563,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,18563,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,18563,1,2,'java.lang.Object[]')
f(7,18564,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,18564,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,18564,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,18567,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,18567,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,18567,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,18567,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,18567,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,18567,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,18572,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,18572,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,18572,3,1,'java/lang/ClassLoader.loadClass')
f(10,18572,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,18572,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,18572,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,18572,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,18572,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,18572,1,1,'java/security/CodeSource.<init>')
f(16,18572,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,18572,1,1,'java/lang/StringBuilder.append')
f(18,18572,1,1,'java/lang/AbstractStringBuilder.append')
f(19,18572,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,18572,1,1,'java/util/Arrays.copyOf')
f(21,18572,1,2,'byte[]')
f(15,18573,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,18573,1,1,'java/util/Arrays.copyOf')
f(17,18573,1,5,'byte[]')
f(14,18574,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,18574,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,18574,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,18574,1,1,'java/net/URL.<init>')
f(18,18574,1,1,'java/net/URL.<init>')
f(19,18574,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,18574,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,18574,1,1,'java/lang/StringBuilder.toString')
f(22,18574,1,1,'java/lang/StringLatin1.newString')
f(23,18574,1,2,'java.lang.String')
f(9,18575,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,18575,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,18575,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,18575,11,1,'java/io/ObjectStreamClass.lookup')
f(13,18575,11,1,'java/io/ObjectStreamClass.<init>')
f(14,18575,11,1,'java/security/AccessController.doPrivileged')
f(15,18575,11,1,'java/security/AccessController.executePrivileged')
f(16,18575,11,1,'java/io/ObjectStreamClass$2.run')
f(17,18575,11,1,'java/io/ObjectStreamClass$2.run')
f(18,18575,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,18575,2,1,'java/lang/Class.getDeclaredMethod')
f(20,18575,1,1,'java/lang/Class.methodToString')
f(21,18575,1,1,'java/lang/StringBuilder.append')
f(22,18575,1,1,'java/lang/AbstractStringBuilder.append')
f(23,18575,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,18575,1,1,'java/util/Arrays.copyOf')
f(25,18575,1,2,'byte[]')
f(20,18576,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,18576,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,18576,1,1,'java/lang/Exception.<init>')
f(23,18576,1,1,'java/lang/Throwable.<init>')
f(24,18576,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,18576,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,18576,1,2,'short[]')
f(18,18577,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,18577,3,1,'java/lang/Class.getDeclaredMethod')
f(20,18577,2,1,'java/lang/Class.methodToString')
f(21,18577,1,1,'java/lang/StringBuilder.append')
f(22,18577,1,1,'java/lang/AbstractStringBuilder.append')
f(23,18577,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,18577,1,1,'java/util/Arrays.copyOf')
f(25,18577,1,2,'byte[]')
f(21,18578,1,1,'java/lang/StringBuilder.toString')
f(22,18578,1,1,'java/lang/StringLatin1.newString')
f(23,18578,1,1,'java/util/Arrays.copyOfRange')
f(24,18578,1,2,'byte[]')
f(20,18579,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,18579,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,18579,1,1,'java/lang/Exception.<init>')
f(23,18579,1,1,'java/lang/Throwable.<init>')
f(24,18579,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,18579,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,18579,1,5,'long[]')
f(18,18580,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,18580,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,18580,1,1,'java/lang/Class.getDeclaredField')
f(21,18580,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,18580,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,18580,1,1,'java/lang/Exception.<init>')
f(24,18580,1,1,'java/lang/Throwable.<init>')
f(25,18580,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,18580,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,18580,1,2,'long[]')
f(18,18581,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,18581,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,18581,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,18581,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,18581,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,18581,1,1,'java/security/AccessController.doPrivileged')
f(24,18581,1,1,'java/security/AccessController.executePrivileged')
f(25,18581,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,18581,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,18581,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,18581,1,1,'java/security/AccessController.doPrivileged')
f(29,18581,1,1,'java/security/AccessController.executePrivileged')
f(30,18581,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,18581,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,18581,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,18581,1,1,'java/lang/ClassLoader.<init>')
f(34,18581,1,1,'java/lang/ClassLoader.<init>')
f(35,18581,1,1,'java/lang/ClassLoader.nameAndId')
f(36,18581,1,1,'java/lang/StringBuilder.<init>')
f(37,18581,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,18581,1,2,'byte[]')
f(23,18582,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,18582,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,18582,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,18582,1,2,'byte[]')
f(23,18583,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,18583,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,18583,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,18583,1,2,'byte[]')
f(23,18584,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,18584,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,18584,1,1,'java/lang/String.replace')
f(26,18584,1,1,'java/lang/StringLatin1.replace')
f(27,18584,1,2,'java.lang.String')
f(23,18585,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,18585,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 512px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(32);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,492,3,'all')
f(1,0,4,3,'[unknown_Java]')
f(2,0,3,6,'cats/effect/IO$Map.tag',0,3,0)
f(2,3,1,1,'kyo/bench/DeepBindMapBench$$Lambda$104.0x0000000800d5b770.apply$mcII$sp')
f(1,4,487,1,'cats/effect/unsafe/WorkerThread.run')
f(2,4,486,1,'cats/effect/IOFiber.run')
f(3,4,481,1,'cats/effect/IOFiber.autoCedeR')
f(4,4,481,1,'cats/effect/IOFiber.runLoop')
f(5,21,1,2,'cats/effect/ArrayStack.push',1,0,0)
f(5,22,21,2,'cats/effect/ByteStack$.push',21,0,0)
f(5,43,9,6,'cats/effect/IO$FlatMap.tag',0,9,0)
f(5,52,30,6,'cats/effect/IO$Map.tag',0,30,0)
f(5,82,139,2,'cats/effect/IOFiber.next$2',139,0,0)
f(6,82,139,2,'kyo/bench/DeepBindMapBench$$Lambda$39.0x0000000800c8cd58.apply',139,0,0)
f(7,88,133,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1',133,0,0)
f(8,105,2,2,'cats/effect/IO$.apply',2,0,0)
f(9,105,2,2,'cats/effect/IO$.delay',2,0,0)
f(8,107,114,2,'scala/runtime/BoxesRunTime.boxToInteger',114,0,0)
f(5,221,6,2,'cats/effect/IOFiber.shouldFinalize',6,0,0)
f(5,227,248,1,'cats/effect/IOFiber.succeeded')
f(6,287,8,2,'cats/effect/ArrayStack.pop',8,0,0)
f(6,295,27,2,'cats/effect/ByteStack$.pop',27,0,0)
f(7,304,18,2,'cats/effect/ByteStack$.peek',18,0,0)
f(6,322,60,3,'itable stub')
f(6,382,3,2,'kyo/bench/DeepBindMapBench$$Lambda$106.0x0000000800d59000.apply',3,0,0)
f(7,382,3,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$adapted$1',3,0,0)
f(8,382,2,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$12',2,0,0)
f(9,382,2,2,'kyo/bench/DeepBindMapBench.loop$2',2,0,0)
f(10,382,2,2,'cats/effect/IO.flatMap',2,0,0)
f(11,382,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(8,384,1,2,'scala/runtime/BoxesRunTime.unboxToInt',1,0,0)
f(9,384,1,2,'java/lang/Integer.intValue',1,0,0)
f(6,385,90,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(7,430,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(8,430,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(9,430,1,4,'MemAllocator::allocate() const')
f(10,430,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(11,430,1,4,'ThreadLocalAllocBuffer::retire_before_allocation()')
f(12,430,1,4,'CollectedHeap::fill_with_dummy_object(HeapWordImpl**, HeapWordImpl**, bool)')
f(7,431,28,3,'itable stub')
f(7,459,7,2,'java/lang/Integer.valueOf',7,0,0)
f(7,466,1,1,'kyo/bench/DeepBindMapBench$$Lambda$101.0x0000000800d5abb8.apply$mcII$sp')
f(7,467,3,1,'kyo/bench/DeepBindMapBench$$Lambda$104.0x0000000800d5b770.apply$mcII$sp')
f(8,469,1,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1$$anonfun$10',1,0,0)
f(7,470,2,1,'kyo/bench/DeepBindMapBench$$Lambda$105.0x0000000800d5bb58.apply$mcII$sp')
f(7,472,1,1,'kyo/bench/DeepBindMapBench$$Lambda$97.0x0000000800d5f9b0.apply$mcII$sp')
f(7,473,2,1,'kyo/bench/DeepBindMapBench$$Lambda$99.0x0000000800d5a3e8.apply$mcII$sp')
f(5,475,10,3,'vtable stub')
f(3,485,5,1,'cats/effect/IOFiber.execR')
f(4,485,5,1,'cats/effect/IOFiber.runLoop')
f(5,486,2,2,'cats/effect/IOFiber.next$2',2,0,0)
f(6,486,2,2,'kyo/bench/DeepBindMapBench$$Lambda$39.0x0000000800c8cd58.apply',2,0,0)
f(7,486,2,2,'kyo/bench/DeepBindMapBench.loop$2$$anonfun$1',2,0,0)
f(8,486,2,2,'scala/runtime/BoxesRunTime.boxToInteger',2,0,0)
f(5,488,2,1,'cats/effect/IOFiber.succeeded')
f(6,489,1,1,'scala/runtime/java8/JFunction1$mcII$sp.apply')
f(7,489,1,3,'itable stub')
f(2,490,1,2,'cats/effect/unsafe/ScalQueue.poll',1,0,0)
f(3,490,1,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',1,0,0)
f(4,490,1,2,'java/util/concurrent/ConcurrentLinkedQueue.updateHead',1,0,0)
f(5,490,1,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',1,0,0)
f(6,490,1,2,'java/lang/invoke/VarForm.getMemberName',1,0,0)
f(1,491,1,1,'java/lang/Thread.run')
f(2,491,1,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,491,1,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,491,1,1,'java/util/concurrent/FutureTask.run')
f(5,491,1,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,491,1,1,'java/util/concurrent/FutureTask.run')
f(7,491,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,491,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,491,1,1,'java/lang/reflect/Method.invoke')
f(10,491,1,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,491,1,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,491,1,1,'kyo/bench/jmh_generated/DeepBindMapBench_syncCats_jmhTest.syncCats_Throughput')
f(13,491,1,1,'kyo/bench/jmh_generated/DeepBindMapBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,491,1,1,'kyo/bench/Bench.syncCats')
f(15,491,1,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,491,1,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,491,1,1,'cats/effect/IO.unsafeRunAsync')
f(18,491,1,1,'cats/effect/IO.unsafeRunFiber')
f(19,491,1,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,491,1,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,491,1,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,491,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,491,1,1,'jdk/internal/misc/Unsafe.unpark')
f(24,491,1,3,'pthread_cond_signal')
f(25,491,1,5,'entry_SYSCALL_64_after_hwframe')
f(26,491,1,5,'do_syscall_64')
f(27,491,1,5,'__x64_sys_futex')
f(28,491,1,5,'do_futex')
f(29,491,1,5,'futex_wake')
f(30,491,1,5,'wake_up_q')
f(31,491,1,5,'_raw_spin_unlock_irqrestore')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,31689,3,'all')
f(1,0,30894,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,30894,1,'cats/effect/IOFiber.run')
f(3,0,30288,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,30288,1,'cats/effect/IOFiber.runLoop')
f(5,0,1395,2,'cats.effect.IOFiber$$anon$1')
f(5,1395,4987,1,'cats/effect/IO$$$Lambda$108.0x0000000800d7b548.apply')
f(6,1395,4987,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,1395,1550,2,'cats.effect.IODeferred')
f(7,2945,3437,1,'cats/effect/IODeferred.<init>')
f(8,2945,1597,1,'cats/effect/CallbackStack$.apply')
f(9,2945,1597,2,'cats.effect.CallbackStack')
f(8,4542,835,2,'java.util.concurrent.atomic.AtomicInteger')
f(8,5377,1005,2,'java.util.concurrent.atomic.AtomicReference')
f(5,6382,4492,1,'cats/effect/IOFiber.succeeded')
f(6,6382,1544,1,'kyo/bench/EnqueueDequeueBench$$Lambda$107.0x0000000800d7a7a0.apply')
f(7,6382,1544,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1')
f(8,6382,794,1,'cats/effect/IO.flatMap')
f(9,6382,794,1,'cats/effect/IO$FlatMap$.apply')
f(10,6382,794,2,'cats.effect.IO$FlatMap')
f(8,7176,750,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d80800.linkToTargetMethod')
f(9,7176,750,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d80000.newInvokeSpecial')
f(10,7176,750,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,7176,750,2,'kyo.bench.EnqueueDequeueBench$$Lambda$111+0x0000000800d84840')
f(6,7926,2948,1,'kyo/bench/EnqueueDequeueBench$$Lambda$111.0x0000000800d84840.apply')
f(7,7926,2948,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1')
f(8,7926,2948,1,'kyo/bench/EnqueueDequeueBench.loop$1')
f(9,7926,808,1,'cats/effect/IO.flatMap')
f(10,7926,808,1,'cats/effect/IO$FlatMap$.apply')
f(11,7926,808,2,'cats.effect.IO$FlatMap')
f(9,8734,1478,1,'cats/effect/std/Queue$AbstractQueue.offer')
f(10,8734,758,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,8734,758,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,8734,758,1,'cats/effect/IO$.uncancelable')
f(13,8734,758,1,'cats/effect/IO$Uncancelable$.apply')
f(14,8734,758,2,'cats.effect.IO$Uncancelable')
f(10,9492,720,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,9492,720,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,9492,720,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,9492,720,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$106+0x0000000800d7a3d0')
f(9,10212,662,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d80800.linkToTargetMethod')
f(10,10212,662,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d80000.newInvokeSpecial')
f(11,10212,662,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,10212,662,2,'kyo.bench.EnqueueDequeueBench$$Lambda$107+0x0000000800d7a7a0')
f(5,10874,7248,1,'cats/effect/kernel/SyncRef$$Lambda$100.0x0000000800d7e998.apply')
f(6,10874,7248,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,10874,7248,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,10874,3623,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$110.0x0000000800d84470.apply')
f(9,10874,3623,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$11')
f(10,10874,556,1,'cats/effect/IO$$anon$2.unit')
f(11,10874,556,1,'cats/Applicative.unit$')
f(12,10874,556,1,'cats/Applicative.unit')
f(13,10874,556,1,'cats/effect/IO$$anon$2.pure')
f(14,10874,556,1,'cats/effect/IO$$anon$2.pure')
f(15,10874,556,1,'cats/effect/IO$.pure')
f(16,10874,556,1,'cats/effect/IO$Pure$.apply')
f(17,10874,556,2,'cats.effect.IO$Pure')
f(10,11430,1012,1,'cats/effect/std/Queue$State$.apply')
f(11,11430,1012,2,'cats.effect.std.Queue$State')
f(10,12442,718,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,12442,718,2,'scala.Tuple2')
f(10,13160,1337,1,'scala/collection/immutable/Queue.enqueue')
f(11,13160,585,2,'scala.collection.immutable.$colon$colon')
f(11,13745,752,2,'scala.collection.immutable.Queue')
f(8,14497,3625,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$113.0x0000000800d84fe0.apply')
f(9,14497,3625,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$8')
f(10,14497,485,1,'cats/effect/IO$$anon$2.pure')
f(11,14497,485,1,'cats/effect/IO$$anon$2.pure')
f(12,14497,485,1,'cats/effect/IO$.pure')
f(13,14497,485,1,'cats/effect/IO$Pure$.apply')
f(14,14497,485,2,'cats.effect.IO$Pure')
f(10,14982,947,1,'cats/effect/std/Queue$State$.apply')
f(11,14982,947,2,'cats.effect.std.Queue$State')
f(10,15929,714,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,15929,714,2,'scala.Tuple2')
f(10,16643,1479,1,'scala/collection/immutable/Queue.dequeue')
f(11,16643,749,2,'scala.collection.immutable.Queue')
f(11,17392,730,1,'scala/collection/immutable/List.reverse')
f(12,17392,730,1,'scala/collection/immutable/List.$colon$colon')
f(13,17392,730,2,'scala.collection.immutable.$colon$colon')
f(5,18122,2616,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$106.0x0000000800d7a3d0.apply')
f(6,18122,2616,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2')
f(7,18122,739,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,18122,739,1,'cats/FlatMap$Ops.flatMap$')
f(9,18122,739,1,'cats/FlatMap$Ops.flatMap')
f(10,18122,739,1,'cats/effect/IO$$anon$2.flatMap')
f(11,18122,739,1,'cats/effect/IO$$anon$2.flatMap')
f(12,18122,739,1,'cats/effect/IO.flatMap')
f(13,18122,739,1,'cats/effect/IO$FlatMap$.apply')
f(14,18122,739,2,'cats.effect.IO$FlatMap')
f(7,18861,1161,1,'cats/effect/IO$$anon$2.deferred')
f(8,18861,1161,1,'cats/effect/IO$$anon$2.deferred')
f(9,18861,1161,1,'cats/effect/IO$.deferred')
f(10,18861,709,1,'cats/effect/IO$.apply')
f(11,18861,709,1,'cats/effect/IO$.delay')
f(12,18861,709,1,'cats/effect/IO$Delay$.apply')
f(13,18861,709,2,'cats.effect.IO$Delay')
f(10,19570,452,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,19570,452,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,19570,452,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,19570,452,2,'cats.effect.IO$$$Lambda$108+0x0000000800d7b548')
f(7,20022,716,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,20022,716,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,20022,716,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,20022,716,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$109+0x0000000800d7ba68')
f(5,20738,3301,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d7ba68.apply')
f(6,20738,3301,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2$$anonfun$1')
f(7,20738,1484,1,'cats/effect/kernel/SyncRef.modify')
f(8,20738,766,1,'cats/effect/IO$$anon$2.delay')
f(9,20738,766,1,'cats/effect/IO$$anon$2.delay')
f(10,20738,766,1,'cats/effect/IO$.apply')
f(11,20738,766,1,'cats/effect/IO$.delay')
f(12,20738,766,1,'cats/effect/IO$Delay$.apply')
f(13,20738,766,2,'cats.effect.IO$Delay')
f(8,21504,718,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,21504,718,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,21504,718,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,21504,718,2,'cats.effect.kernel.SyncRef$$Lambda$100+0x0000000800d7e998')
f(7,22222,737,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,22222,737,1,'cats/effect/IO$$anon$2.flatten')
f(9,22222,737,1,'cats/FlatMap.flatten$')
f(10,22222,737,1,'cats/FlatMap.flatten')
f(11,22222,737,1,'cats/effect/IO$$anon$2.flatMap')
f(12,22222,737,1,'cats/effect/IO$$anon$2.flatMap')
f(13,22222,737,1,'cats/effect/IO.flatMap')
f(14,22222,737,1,'cats/effect/IO$FlatMap$.apply')
f(15,22222,737,2,'cats.effect.IO$FlatMap')
f(7,22959,1080,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,22959,1080,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial')
f(9,22959,1080,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,22959,1080,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$110+0x0000000800d84470')
f(5,24039,3356,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d84c10.apply')
f(6,24039,3356,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2$$anonfun$1')
f(7,24039,1455,1,'cats/effect/kernel/SyncRef.modify')
f(8,24039,693,1,'cats/effect/IO$$anon$2.delay')
f(9,24039,693,1,'cats/effect/IO$$anon$2.delay')
f(10,24039,693,1,'cats/effect/IO$.apply')
f(11,24039,693,1,'cats/effect/IO$.delay')
f(12,24039,693,1,'cats/effect/IO$Delay$.apply')
f(13,24039,693,2,'cats.effect.IO$Delay')
f(8,24732,762,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,24732,762,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,24732,762,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,24732,762,2,'cats.effect.kernel.SyncRef$$Lambda$100+0x0000000800d7e998')
f(7,25494,750,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,25494,750,1,'cats/effect/IO$$anon$2.flatten')
f(9,25494,750,1,'cats/FlatMap.flatten$')
f(10,25494,750,1,'cats/FlatMap.flatten')
f(11,25494,750,1,'cats/effect/IO$$anon$2.flatMap')
f(12,25494,750,1,'cats/effect/IO$$anon$2.flatMap')
f(13,25494,750,1,'cats/effect/IO.flatMap')
f(14,25494,750,1,'cats/effect/IO$FlatMap$.apply')
f(15,25494,750,2,'cats.effect.IO$FlatMap')
f(7,26244,1151,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d82800.linkToTargetMethod')
f(8,26244,1151,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d82000.newInvokeSpecial')
f(9,26244,1151,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,26244,1151,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$113+0x0000000800d84fe0')
f(5,27395,2893,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$98.0x0000000800d7cf10.apply')
f(6,27395,2893,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2')
f(7,27395,706,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,27395,706,1,'cats/FlatMap$Ops.flatMap$')
f(9,27395,706,1,'cats/FlatMap$Ops.flatMap')
f(10,27395,706,1,'cats/effect/IO$$anon$2.flatMap')
f(11,27395,706,1,'cats/effect/IO$$anon$2.flatMap')
f(12,27395,706,1,'cats/effect/IO.flatMap')
f(13,27395,706,1,'cats/effect/IO$FlatMap$.apply')
f(14,27395,706,2,'cats.effect.IO$FlatMap')
f(7,28101,1244,1,'cats/effect/IO$$anon$2.deferred')
f(8,28101,1244,1,'cats/effect/IO$$anon$2.deferred')
f(9,28101,1244,1,'cats/effect/IO$.deferred')
f(10,28101,803,1,'cats/effect/IO$.apply')
f(11,28101,803,1,'cats/effect/IO$.delay')
f(12,28101,803,1,'cats/effect/IO$Delay$.apply')
f(13,28101,803,2,'cats.effect.IO$Delay')
f(10,28904,441,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,28904,441,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,28904,441,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,28904,441,2,'cats.effect.IO$$$Lambda$108+0x0000000800d7b548')
f(7,29345,943,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d81800.linkToTargetMethod')
f(8,29345,943,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d81000.newInvokeSpecial')
f(9,29345,943,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,29345,943,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$112+0x0000000800d84c10')
f(3,30288,213,1,'cats/effect/IOFiber.cedeR')
f(4,30288,213,1,'cats/effect/IOFiber.runLoop')
f(5,30288,5,2,'cats.effect.IOFiber$$anon$1')
f(5,30293,35,1,'cats/effect/IO$$$Lambda$108.0x0000000800d7b548.apply')
f(6,30293,35,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,30293,13,2,'cats.effect.IODeferred')
f(7,30306,22,1,'cats/effect/IODeferred.<init>')
f(8,30306,11,1,'cats/effect/CallbackStack$.apply')
f(9,30306,11,2,'cats.effect.CallbackStack')
f(8,30317,8,2,'java.util.concurrent.atomic.AtomicInteger')
f(8,30325,3,2,'java.util.concurrent.atomic.AtomicReference')
f(5,30328,29,1,'cats/effect/IOFiber.succeeded')
f(6,30328,10,1,'kyo/bench/EnqueueDequeueBench$$Lambda$107.0x0000000800d7a7a0.apply')
f(7,30328,10,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1')
f(8,30328,6,1,'cats/effect/IO.flatMap')
f(9,30328,6,1,'cats/effect/IO$FlatMap$.apply')
f(10,30328,6,2,'cats.effect.IO$FlatMap')
f(8,30334,4,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d80800.linkToTargetMethod')
f(9,30334,4,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d80000.newInvokeSpecial')
f(10,30334,4,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,30334,4,2,'kyo.bench.EnqueueDequeueBench$$Lambda$111+0x0000000800d84840')
f(6,30338,19,1,'kyo/bench/EnqueueDequeueBench$$Lambda$111.0x0000000800d84840.apply')
f(7,30338,19,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1')
f(8,30338,19,1,'kyo/bench/EnqueueDequeueBench.loop$1')
f(9,30338,5,1,'cats/effect/IO.flatMap')
f(10,30338,5,1,'cats/effect/IO$FlatMap$.apply')
f(11,30338,5,2,'cats.effect.IO$FlatMap')
f(9,30343,9,1,'cats/effect/std/Queue$AbstractQueue.offer')
f(10,30343,7,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,30343,7,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,30343,7,1,'cats/effect/IO$.uncancelable')
f(13,30343,7,1,'cats/effect/IO$Uncancelable$.apply')
f(14,30343,7,2,'cats.effect.IO$Uncancelable')
f(10,30350,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,30350,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,30350,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,30350,2,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$106+0x0000000800d7a3d0')
f(9,30352,5,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d80800.linkToTargetMethod')
f(10,30352,5,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d80000.newInvokeSpecial')
f(11,30352,5,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,30352,5,2,'kyo.bench.EnqueueDequeueBench$$Lambda$107+0x0000000800d7a7a0')
f(5,30357,41,1,'cats/effect/kernel/SyncRef$$Lambda$100.0x0000000800d7e998.apply')
f(6,30357,41,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,30357,41,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,30357,22,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$110.0x0000000800d84470.apply')
f(9,30357,22,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$11')
f(10,30357,3,1,'cats/effect/IO$$anon$2.unit')
f(11,30357,3,1,'cats/Applicative.unit$')
f(12,30357,3,1,'cats/Applicative.unit')
f(13,30357,3,1,'cats/effect/IO$$anon$2.pure')
f(14,30357,3,1,'cats/effect/IO$$anon$2.pure')
f(15,30357,3,1,'cats/effect/IO$.pure')
f(16,30357,3,1,'cats/effect/IO$Pure$.apply')
f(17,30357,3,2,'cats.effect.IO$Pure')
f(10,30360,5,1,'cats/effect/std/Queue$State$.apply')
f(11,30360,5,2,'cats.effect.std.Queue$State')
f(10,30365,4,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,30365,4,2,'scala.Tuple2')
f(10,30369,10,1,'scala/collection/immutable/Queue.enqueue')
f(11,30369,6,2,'scala.collection.immutable.$colon$colon')
f(11,30375,4,2,'scala.collection.immutable.Queue')
f(8,30379,19,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$113.0x0000000800d84fe0.apply')
f(9,30379,19,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$8')
f(10,30379,1,1,'cats/effect/std/Queue$State$.apply')
f(11,30379,1,2,'cats.effect.std.Queue$State')
f(10,30380,5,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,30380,5,2,'scala.Tuple2')
f(10,30385,13,1,'scala/collection/immutable/Queue.dequeue')
f(11,30385,7,2,'scala.collection.immutable.Queue')
f(11,30392,6,1,'scala/collection/immutable/List.reverse')
f(12,30392,6,1,'scala/collection/immutable/List.$colon$colon')
f(13,30392,6,2,'scala.collection.immutable.$colon$colon')
f(5,30398,1,1,'cats/effect/std/Queue$$$Lambda$96.0x0000000800d7c000.apply')
f(6,30398,1,1,'cats/effect/std/Queue$.boundedForConcurrent$$anonfun$1')
f(7,30398,1,1,'cats/effect/std/Queue$BoundedQueue.<init>')
f(8,30398,1,1,'cats/effect/std/Queue$AbstractQueue.<init>')
f(9,30398,1,1,'cats/effect/kernel/SyncRef.modify')
f(10,30398,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,30398,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,30398,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,30398,1,2,'cats.effect.kernel.SyncRef$$Lambda$100+0x0000000800d7e998')
f(5,30399,14,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$106.0x0000000800d7a3d0.apply')
f(6,30399,14,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2')
f(7,30399,6,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,30399,6,1,'cats/FlatMap$Ops.flatMap$')
f(9,30399,6,1,'cats/FlatMap$Ops.flatMap')
f(10,30399,6,1,'cats/effect/IO$$anon$2.flatMap')
f(11,30399,6,1,'cats/effect/IO$$anon$2.flatMap')
f(12,30399,6,1,'cats/effect/IO.flatMap')
f(13,30399,6,1,'cats/effect/IO$FlatMap$.apply')
f(14,30399,6,2,'cats.effect.IO$FlatMap')
f(7,30405,5,1,'cats/effect/IO$$anon$2.deferred')
f(8,30405,5,1,'cats/effect/IO$$anon$2.deferred')
f(9,30405,5,1,'cats/effect/IO$.deferred')
f(10,30405,1,1,'cats/effect/IO$.apply')
f(11,30405,1,1,'cats/effect/IO$.delay')
f(12,30405,1,1,'cats/effect/IO$Delay$.apply')
f(13,30405,1,2,'cats.effect.IO$Delay')
f(10,30406,4,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,30406,4,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,30406,4,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,30406,4,2,'cats.effect.IO$$$Lambda$108+0x0000000800d7b548')
f(7,30410,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,30410,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,30410,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,30410,3,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$109+0x0000000800d7ba68')
f(5,30413,28,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d7ba68.apply')
f(6,30413,28,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2$$anonfun$1')
f(7,30413,13,1,'cats/effect/kernel/SyncRef.modify')
f(8,30413,6,1,'cats/effect/IO$$anon$2.delay')
f(9,30413,6,1,'cats/effect/IO$$anon$2.delay')
f(10,30413,6,1,'cats/effect/IO$.apply')
f(11,30413,6,1,'cats/effect/IO$.delay')
f(12,30413,6,1,'cats/effect/IO$Delay$.apply')
f(13,30413,6,2,'cats.effect.IO$Delay')
f(8,30419,7,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,30419,7,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,30419,7,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,30419,7,2,'cats.effect.kernel.SyncRef$$Lambda$100+0x0000000800d7e998')
f(7,30426,7,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,30426,7,1,'cats/effect/IO$$anon$2.flatten')
f(9,30426,7,1,'cats/FlatMap.flatten$')
f(10,30426,7,1,'cats/FlatMap.flatten')
f(11,30426,7,1,'cats/effect/IO$$anon$2.flatMap')
f(12,30426,7,1,'cats/effect/IO$$anon$2.flatMap')
f(13,30426,7,1,'cats/effect/IO.flatMap')
f(14,30426,7,1,'cats/effect/IO$FlatMap$.apply')
f(15,30426,7,2,'cats.effect.IO$FlatMap')
f(7,30433,8,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,30433,8,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial')
f(9,30433,8,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,30433,8,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$110+0x0000000800d84470')
f(5,30441,19,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d84c10.apply')
f(6,30441,19,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2$$anonfun$1')
f(7,30441,11,1,'cats/effect/kernel/SyncRef.modify')
f(8,30441,8,1,'cats/effect/IO$$anon$2.delay')
f(9,30441,8,1,'cats/effect/IO$$anon$2.delay')
f(10,30441,8,1,'cats/effect/IO$.apply')
f(11,30441,8,1,'cats/effect/IO$.delay')
f(12,30441,8,1,'cats/effect/IO$Delay$.apply')
f(13,30441,8,2,'cats.effect.IO$Delay')
f(8,30449,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,30449,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,30449,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,30449,3,2,'cats.effect.kernel.SyncRef$$Lambda$100+0x0000000800d7e998')
f(7,30452,3,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,30452,3,1,'cats/effect/IO$$anon$2.flatten')
f(9,30452,3,1,'cats/FlatMap.flatten$')
f(10,30452,3,1,'cats/FlatMap.flatten')
f(11,30452,3,1,'cats/effect/IO$$anon$2.flatMap')
f(12,30452,3,1,'cats/effect/IO$$anon$2.flatMap')
f(13,30452,3,1,'cats/effect/IO.flatMap')
f(14,30452,3,1,'cats/effect/IO$FlatMap$.apply')
f(15,30452,3,2,'cats.effect.IO$FlatMap')
f(7,30455,5,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d82800.linkToTargetMethod')
f(8,30455,5,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d82000.newInvokeSpecial')
f(9,30455,5,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,30455,5,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$113+0x0000000800d84fe0')
f(5,30460,41,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$98.0x0000000800d7cf10.apply')
f(6,30460,41,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2')
f(7,30460,34,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,30460,34,1,'cats/FlatMap$Ops.flatMap$')
f(9,30460,34,1,'cats/FlatMap$Ops.flatMap')
f(10,30460,34,1,'cats/effect/IO$$anon$2.flatMap')
f(11,30460,34,1,'cats/effect/IO$$anon$2.flatMap')
f(12,30460,34,1,'cats/effect/IO.flatMap')
f(13,30460,34,1,'cats/effect/IO$FlatMap$.apply')
f(14,30460,34,2,'cats.effect.IO$FlatMap')
f(7,30494,4,1,'cats/effect/IO$$anon$2.deferred')
f(8,30494,4,1,'cats/effect/IO$$anon$2.deferred')
f(9,30494,4,1,'cats/effect/IO$.deferred')
f(10,30494,2,1,'cats/effect/IO$.apply')
f(11,30494,2,1,'cats/effect/IO$.delay')
f(12,30494,2,1,'cats/effect/IO$Delay$.apply')
f(13,30494,2,2,'cats.effect.IO$Delay')
f(10,30496,2,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,30496,2,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,30496,2,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,30496,2,2,'cats.effect.IO$$$Lambda$108+0x0000000800d7b548')
f(7,30498,3,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d81800.linkToTargetMethod')
f(8,30498,3,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d81000.newInvokeSpecial')
f(9,30498,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,30498,3,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$112+0x0000000800d84c10')
f(3,30501,393,1,'cats/effect/IOFiber.execR')
f(4,30501,393,1,'cats/effect/ByteStack$.create')
f(5,30501,393,2,'int[]')
f(1,30894,1,2,'java.lang.String')
f(1,30895,771,1,'java/lang/Thread.run')
f(2,30895,771,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,30895,771,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,30895,771,1,'java/util/concurrent/FutureTask.run')
f(5,30895,771,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,30895,771,1,'java/util/concurrent/FutureTask.run')
f(7,30895,771,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,30895,771,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,30895,771,1,'java/lang/reflect/Method.invoke')
f(10,30895,771,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,30895,771,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,30895,771,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_forkCats_jmhTest.forkCats_Throughput')
f(13,30895,770,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,30895,770,1,'kyo/bench/Bench.forkCats')
f(15,30895,770,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,30895,560,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,30895,46,1,'cats/effect/IO.unsafeRunAsync')
f(18,30895,46,1,'cats/effect/IO.unsafeRunFiber')
f(19,30895,8,2,'cats.effect.IOFiber')
f(19,30903,6,5,'cats.effect.IOFiber')
f(19,30909,22,1,'cats/effect/IOFiber.<init>')
f(20,30909,15,1,'cats/effect/ArrayStack$.apply')
f(21,30909,15,2,'cats.effect.ArrayStack')
f(20,30924,7,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,30924,7,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,30924,7,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,30924,7,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d59fd0')
f(19,30931,10,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,30931,10,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial')
f(21,30931,10,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,30931,10,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(23,30931,10,2,'cats.effect.IO$$Lambda$90+0x0000000800d58ba8')
f(17,30941,12,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,30953,25,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,30953,25,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,30953,25,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,30953,25,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(21,30953,25,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d55568')
f(17,30978,119,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,30978,119,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,30978,106,2,'java.util.concurrent.locks.ReentrantLock')
f(19,31084,13,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,31084,13,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,31084,13,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,31097,358,1,'scala/util/Either.fold')
f(18,31097,358,1,'cats/effect/IOPlatform$$Lambda$118.0x0000000800d86d00.apply')
f(19,31097,358,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,31097,358,1,'scala/Some$.apply')
f(21,31097,358,2,'scala.Some')
f(16,31455,210,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,31455,210,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,31455,210,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,31455,210,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,31455,210,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,31455,210,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,31455,210,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,31455,210,2,'scala.concurrent.duration.FiniteDuration')
f(13,31665,1,1,'org/openjdk/jmh/results/ThroughputResult.<init>')
f(14,31665,1,1,'java/lang/StringBuilder.<init>')
f(15,31665,1,1,'java/lang/AbstractStringBuilder.<init>')
f(16,31665,1,2,'byte[]')
f(1,31666,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,31666,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,31666,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,31666,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,31666,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,31666,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,31666,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,31666,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,31666,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,31666,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,31666,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,31666,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,31666,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,31666,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,31666,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,31666,1,2,'java.lang.Object[]')
f(7,31667,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,31667,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,31667,2,2,'java.util.concurrent.LinkedBlockingQueue')
f(9,31669,1,1,'java/util/concurrent/LinkedBlockingQueue.<init>')
f(10,31669,1,1,'java/util/concurrent/LinkedBlockingQueue.<init>')
f(11,31669,1,2,'java.util.concurrent.locks.ReentrantLock')
f(8,31670,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,31670,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,31670,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,31670,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,31670,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,31670,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,31675,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,31675,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,31675,3,1,'java/lang/ClassLoader.loadClass')
f(10,31675,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,31675,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,31675,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,31675,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,31675,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,31675,1,1,'java/security/CodeSource.<init>')
f(16,31675,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,31675,1,1,'java/lang/StringBuilder.append')
f(18,31675,1,1,'java/lang/AbstractStringBuilder.append')
f(19,31675,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,31675,1,1,'java/util/Arrays.copyOf')
f(21,31675,1,2,'byte[]')
f(15,31676,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,31676,1,1,'java/util/Arrays.copyOf')
f(17,31676,1,5,'byte[]')
f(14,31677,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,31677,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,31677,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,31677,1,1,'java/net/URL.<init>')
f(18,31677,1,1,'java/net/URL.<init>')
f(19,31677,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,31677,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,31677,1,1,'java/lang/StringBuilder.toString')
f(22,31677,1,1,'java/lang/StringLatin1.newString')
f(23,31677,1,2,'java.lang.String')
f(9,31678,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,31678,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,31678,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,31678,11,1,'java/io/ObjectStreamClass.lookup')
f(13,31678,11,1,'java/io/ObjectStreamClass.<init>')
f(14,31678,11,1,'java/security/AccessController.doPrivileged')
f(15,31678,11,1,'java/security/AccessController.executePrivileged')
f(16,31678,11,1,'java/io/ObjectStreamClass$2.run')
f(17,31678,11,1,'java/io/ObjectStreamClass$2.run')
f(18,31678,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,31678,2,1,'java/lang/Class.getDeclaredMethod')
f(20,31678,1,1,'java/lang/Class.methodToString')
f(21,31678,1,1,'java/lang/StringBuilder.append')
f(22,31678,1,1,'java/lang/AbstractStringBuilder.append')
f(23,31678,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,31678,1,1,'java/util/Arrays.copyOf')
f(25,31678,1,2,'byte[]')
f(20,31679,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,31679,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,31679,1,1,'java/lang/Exception.<init>')
f(23,31679,1,1,'java/lang/Throwable.<init>')
f(24,31679,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,31679,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,31679,1,2,'short[]')
f(18,31680,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,31680,3,1,'java/lang/Class.getDeclaredMethod')
f(20,31680,2,1,'java/lang/Class.methodToString')
f(21,31680,1,1,'java/lang/StringBuilder.append')
f(22,31680,1,1,'java/lang/AbstractStringBuilder.append')
f(23,31680,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,31680,1,1,'java/util/Arrays.copyOf')
f(25,31680,1,2,'byte[]')
f(21,31681,1,1,'java/lang/StringBuilder.toString')
f(22,31681,1,1,'java/lang/StringLatin1.newString')
f(23,31681,1,1,'java/util/Arrays.copyOfRange')
f(24,31681,1,2,'byte[]')
f(20,31682,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,31682,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,31682,1,1,'java/lang/Exception.<init>')
f(23,31682,1,1,'java/lang/Throwable.<init>')
f(24,31682,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,31682,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,31682,1,5,'long[]')
f(18,31683,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,31683,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,31683,1,1,'java/lang/Class.getDeclaredField')
f(21,31683,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,31683,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,31683,1,1,'java/lang/Exception.<init>')
f(24,31683,1,1,'java/lang/Throwable.<init>')
f(25,31683,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,31683,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,31683,1,2,'long[]')
f(18,31684,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,31684,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,31684,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,31684,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,31684,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,31684,1,1,'java/security/AccessController.doPrivileged')
f(24,31684,1,1,'java/security/AccessController.executePrivileged')
f(25,31684,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,31684,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,31684,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,31684,1,1,'java/security/AccessController.doPrivileged')
f(29,31684,1,1,'java/security/AccessController.executePrivileged')
f(30,31684,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,31684,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,31684,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,31684,1,1,'java/lang/ClassLoader.<init>')
f(34,31684,1,1,'java/lang/ClassLoader.<init>')
f(35,31684,1,1,'java/lang/ClassLoader.nameAndId')
f(36,31684,1,1,'java/lang/StringBuilder.<init>')
f(37,31684,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,31684,1,2,'byte[]')
f(23,31685,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,31685,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,31685,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,31685,1,2,'byte[]')
f(23,31686,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,31686,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,31686,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,31686,1,2,'byte[]')
f(23,31687,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,31687,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,31687,1,1,'java/lang/String.replace')
f(26,31687,1,1,'java/lang/StringLatin1.replace')
f(27,31687,1,2,'java.lang.String')
f(23,31688,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,31688,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,491,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,5,'entry_SYSCALL_64_after_hwframe')
f(3,0,1,5,'do_syscall_64')
f(4,0,1,5,'__x64_sys_futex')
f(5,0,1,5,'do_futex')
f(6,0,1,5,'futex_wait')
f(7,0,1,5,'futex_wait_queue_me')
f(8,0,1,5,'schedule')
f(9,0,1,5,'__schedule')
f(10,0,1,5,'finish_task_switch.isra.0')
f(1,1,6,3,'[unknown_Java]')
f(2,1,1,1,'cats/FlatMap$$Lambda$101.0x0000000800d7ee60.apply')
f(2,2,1,6,'cats/effect/IO$Delay.tag',0,1,0)
f(2,3,1,6,'cats/effect/IO$FlatMap.tag',0,1,0)
f(2,4,1,6,'cats/effect/IO$Pure.tag',0,1,0)
f(2,5,2,6,'cats/effect/IO$Uncancelable.tag',0,2,0)
f(1,7,483,1,'cats/effect/unsafe/WorkerThread.run')
f(2,7,483,1,'cats/effect/IOFiber.run',1,0,0)
f(3,8,481,1,'cats/effect/IOFiber.autoCedeR')
f(4,8,481,1,'cats/effect/IOFiber.runLoop')
f(5,40,6,1,'cats/FlatMap$$Lambda$101.0x0000000800d7ee60.apply')
f(5,46,13,6,'cats/effect/IO$Delay.tag',0,13,0)
f(5,59,18,6,'cats/effect/IO$FlatMap.tag',0,18,0)
f(5,77,1,6,'cats/effect/IO$Pure.tag',0,1,0)
f(5,78,12,6,'cats/effect/IO$Uncancelable.tag',0,12,0)
f(5,90,67,2,'cats/effect/IOFiber.rescheduleFiber',67,0,0)
f(6,107,50,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',50,0,0)
f(7,127,30,2,'cats/effect/unsafe/WorkerThread.reschedule',30,0,0)
f(8,150,7,2,'cats/effect/unsafe/LocalQueue.isEmpty',7,0,0)
f(9,150,1,2,'cats/effect/unsafe/LocalQueue.lsb',1,0,0)
f(9,151,6,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',6,0,0)
f(10,156,1,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.accessCheck',1,0,0)
f(5,157,1,2,'cats/effect/IOFiber.shouldFinalize',1,0,0)
f(5,158,72,1,'cats/effect/IOFiber.succeeded')
f(6,168,10,2,'cats/effect/ArrayStack.pop',10,0,0)
f(6,178,12,2,'cats/effect/ByteStack$.pop',12,0,0)
f(7,179,11,2,'cats/effect/ByteStack$.peek',11,0,0)
f(6,190,1,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,190,1,1,'cats/effect/IOFiber.done')
f(8,190,1,1,'cats/effect/CallbackStack.apply')
f(9,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(10,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(11,190,1,1,'cats/effect/IO$$Lambda$90.0x0000000800d58ba8.applyVoid')
f(12,190,1,1,'cats/effect/IO.$anonfun$6')
f(13,190,1,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,190,1,1,'cats/effect/kernel/Outcome.fold$')
f(15,190,1,1,'cats/effect/kernel/Outcome.fold')
f(16,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(17,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(18,190,1,1,'cats/effect/IO$$Lambda$116.0x0000000800d85f78.applyVoid')
f(19,190,1,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(21,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(22,190,1,1,'cats/effect/IO$$Lambda$89.0x0000000800d58000.applyVoid')
f(23,190,1,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(25,190,1,1,'scala/runtime/function/JProcedure1.apply')
f(26,190,1,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d55568.applyVoid')
f(27,190,1,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,190,1,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,190,1,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,190,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,190,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,190,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,190,1,1,'jdk/internal/misc/Unsafe.unpark')
f(34,190,1,3,'pthread_cond_signal')
f(35,190,1,5,'entry_SYSCALL_64_after_hwframe')
f(36,190,1,5,'do_syscall_64')
f(37,190,1,5,'__x64_sys_futex')
f(38,190,1,5,'do_futex')
f(39,190,1,5,'futex_wake')
f(40,190,1,5,'wake_up_q')
f(41,190,1,5,'_raw_spin_unlock_irqrestore')
f(6,191,19,3,'itable stub')
f(6,210,6,1,'kyo/bench/EnqueueDequeueBench$$Lambda$107.0x0000000800d7a7a0.apply')
f(7,213,3,2,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1',3,0,0)
f(8,213,3,2,'cats/effect/IO.flatMap',3,0,0)
f(9,213,3,2,'cats/effect/IO$FlatMap$.apply',3,0,0)
f(6,216,14,1,'kyo/bench/EnqueueDequeueBench$$Lambda$111.0x0000000800d84840.apply')
f(7,223,7,2,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1',7,0,0)
f(8,223,7,2,'kyo/bench/EnqueueDequeueBench.loop$1',7,0,0)
f(9,223,4,2,'cats/effect/IO.flatMap',4,0,0)
f(10,223,4,2,'cats/effect/IO$FlatMap$.apply',4,0,0)
f(11,226,1,2,'cats/effect/IO$FlatMap.<init>',1,0,0)
f(9,227,1,2,'cats/effect/std/Queue$AbstractQueue.offer',1,0,0)
f(10,227,1,2,'cats/effect/IO$$anon$2.uncancelable',1,0,0)
f(11,227,1,2,'cats/effect/IO$$anon$2.uncancelable',1,0,0)
f(12,227,1,2,'cats/effect/IO$.uncancelable',1,0,0)
f(13,227,1,2,'cats/effect/IO$Uncancelable$.apply',1,0,0)
f(9,228,2,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d80800.linkToTargetMethod',2,0,0)
f(10,228,2,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d80000.newInvokeSpecial',2,0,0)
f(11,228,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(11,229,1,2,'kyo/bench/EnqueueDequeueBench$$Lambda$107.0x0000000800d7a7a0.<init>',1,0,0)
f(5,230,96,1,'cats/effect/kernel/SyncRef$$Lambda$100.0x0000000800d7e998.apply')
f(6,230,96,2,'cats/effect/kernel/SyncRef.modify$$anonfun$1',65,0,0)
f(7,230,96,2,'cats/effect/kernel/SyncRef.spin$4',65,0,0)
f(8,245,30,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$110.0x0000000800d84470.apply',30,0,0)
f(9,253,22,2,'cats/effect/std/Queue$AbstractQueue.$anonfun$11',22,0,0)
f(10,253,3,2,'cats/effect/IO$$anon$2.unit',3,0,0)
f(11,253,3,2,'cats/Applicative.unit$',3,0,0)
f(12,253,3,2,'cats/Applicative.unit',3,0,0)
f(13,253,3,2,'cats/effect/IO$$anon$2.pure',3,0,0)
f(14,253,3,2,'cats/effect/IO$$anon$2.pure',3,0,0)
f(15,253,3,2,'cats/effect/IO$.pure',3,0,0)
f(16,253,3,2,'cats/effect/IO$Pure$.apply',3,0,0)
f(10,256,1,2,'cats/effect/std/Queue$State$.apply',1,0,0)
f(10,257,2,2,'cats/effect/std/Queue$State._3',2,0,0)
f(11,257,2,2,'cats/effect/std/Queue$State.takers',2,0,0)
f(10,259,3,2,'scala/Predef$ArrowAssoc$.$minus$greater$extension',3,0,0)
f(10,262,3,2,'scala/collection/AbstractIterable.nonEmpty',3,0,0)
f(11,262,3,2,'scala/collection/IterableOnceOps.nonEmpty$',3,0,0)
f(12,262,3,2,'scala/collection/IterableOnceOps.nonEmpty',3,0,0)
f(13,262,3,2,'scala/collection/immutable/Queue.isEmpty',3,0,0)
f(14,264,1,2,'scala/collection/immutable/List.isEmpty',1,0,0)
f(10,265,10,2,'scala/collection/immutable/Queue.enqueue',10,0,0)
f(11,266,8,2,'scala/collection/immutable/Queue.<init>',8,0,0)
f(11,274,1,2,'scala/collection/immutable/Queue.in',1,0,0)
f(8,275,41,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$113.0x0000000800d84fe0.apply',10,0,0)
f(9,285,31,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$8')
f(10,289,4,2,'scala/collection/AbstractIterable.nonEmpty',4,0,0)
f(11,290,3,2,'scala/collection/IterableOnceOps.nonEmpty$',3,0,0)
f(12,290,3,2,'scala/collection/IterableOnceOps.nonEmpty',3,0,0)
f(13,291,2,2,'scala/collection/immutable/Queue.isEmpty',2,0,0)
f(14,291,1,2,'scala/collection/immutable/List.isEmpty',1,0,0)
f(14,292,1,2,'scala/collection/immutable/Queue.in',1,0,0)
f(10,293,11,2,'scala/collection/immutable/Queue.dequeue',11,0,0)
f(11,293,1,2,'scala/collection/immutable/List.equals',1,0,0)
f(11,294,10,2,'scala/collection/immutable/List.reverse',10,0,0)
f(12,299,1,2,'scala/collection/immutable/$colon$colon.head',1,0,0)
f(12,300,4,2,'scala/collection/immutable/List.$colon$colon',4,0,0)
f(13,303,1,2,'scala/collection/immutable/$colon$colon.<init>',1,0,0)
f(14,303,1,2,'scala/collection/immutable/List.<init>',1,0,0)
f(15,303,1,2,'scala/collection/immutable/AbstractSeq.<init>',1,0,0)
f(10,304,12,2,'scala/collection/immutable/Queue.isEmpty',12,0,0)
f(11,305,11,2,'scala/collection/immutable/Queue.out',11,0,0)
f(8,316,7,2,'java/util/concurrent/atomic/AtomicReference.compareAndSet',7,0,0)
f(9,316,7,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',7,0,0)
f(10,316,7,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',7,0,0)
f(8,323,1,2,'java/util/concurrent/atomic/AtomicReference.get',1,0,0)
f(8,324,2,2,'scala/Tuple2$.apply',2,0,0)
f(5,326,13,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$106.0x0000000800d7a3d0.apply',13,0,0)
f(6,326,13,2,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2',13,0,0)
f(7,327,12,2,'cats/effect/IO$$anon$2.deferred',12,0,0)
f(8,327,12,2,'cats/effect/IO$$anon$2.deferred',12,0,0)
f(9,328,11,2,'cats/effect/IO$.deferred',11,0,0)
f(10,331,8,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',8,0,0)
f(11,331,8,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',8,0,0)
f(5,339,23,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d7ba68.apply')
f(6,343,19,2,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2$$anonfun$1',19,0,0)
f(7,344,9,2,'cats/effect/kernel/SyncRef.modify',9,0,0)
f(8,345,7,2,'cats/effect/IO$$anon$2.delay',7,0,0)
f(9,345,7,2,'cats/effect/IO$$anon$2.delay',7,0,0)
f(10,345,7,2,'cats/effect/IO$.apply',7,0,0)
f(11,345,7,2,'cats/effect/IO$.delay',7,0,0)
f(12,345,5,2,'cats/effect/IO$Delay$.apply',5,0,0)
f(12,350,2,2,'cats/effect/Thunk$.asFunction0',2,0,0)
f(8,352,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(9,352,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(10,352,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(7,353,6,2,'cats/syntax/FlattenOps$.flatten$extension',6,0,0)
f(8,354,5,2,'cats/effect/IO$$anon$2.flatten',5,0,0)
f(9,354,5,2,'cats/FlatMap.flatten$',5,0,0)
f(10,354,5,2,'cats/FlatMap.flatten',5,0,0)
f(11,354,5,2,'cats/effect/IO$$anon$2.flatMap',5,0,0)
f(12,354,5,2,'cats/effect/IO$$anon$2.flatMap',5,0,0)
f(13,354,5,2,'cats/effect/IO.flatMap',5,0,0)
f(14,354,5,2,'cats/effect/IO$FlatMap$.apply',5,0,0)
f(7,359,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(8,359,3,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d5c400.newInvokeSpecial',3,0,0)
f(9,359,3,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',3,0,0)
f(5,362,34,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d84c10.apply')
f(6,369,27,2,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2$$anonfun$1',27,0,0)
f(7,369,16,2,'cats/effect/kernel/SyncRef.modify',16,0,0)
f(8,370,10,2,'cats/effect/IO$$anon$2.delay',10,0,0)
f(9,370,10,2,'cats/effect/IO$$anon$2.delay',10,0,0)
f(10,370,10,2,'cats/effect/IO$.apply',10,0,0)
f(11,370,10,2,'cats/effect/IO$.delay',10,0,0)
f(12,370,5,2,'cats/effect/IO$Delay$.apply',5,0,0)
f(12,375,5,2,'cats/effect/Thunk$.asFunction0',5,0,0)
f(8,380,5,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',5,0,0)
f(9,380,5,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',5,0,0)
f(10,380,5,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',5,0,0)
f(7,385,5,2,'cats/syntax/FlattenOps$.flatten$extension',5,0,0)
f(8,385,5,2,'cats/effect/IO$$anon$2.flatten',5,0,0)
f(9,385,5,2,'cats/FlatMap.flatten$',5,0,0)
f(10,385,5,2,'cats/FlatMap.flatten',5,0,0)
f(11,385,5,2,'cats/effect/IO$$anon$2.flatMap',5,0,0)
f(12,385,5,2,'cats/effect/IO$$anon$2.flatMap',5,0,0)
f(13,385,5,2,'cats/effect/IO.flatMap',5,0,0)
f(14,385,5,2,'cats/effect/IO$FlatMap$.apply',5,0,0)
f(7,390,6,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d82800.linkToTargetMethod',6,0,0)
f(8,390,6,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d82000.newInvokeSpecial',6,0,0)
f(9,390,5,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$113.0x0000000800d84fe0.<init>',5,0,0)
f(9,395,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(5,396,38,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$98.0x0000000800d7cf10.apply',38,0,0)
f(6,396,38,2,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2',38,0,0)
f(7,399,7,2,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap',7,0,0)
f(8,399,7,2,'cats/FlatMap$Ops.flatMap$',7,0,0)
f(9,399,7,2,'cats/FlatMap$Ops.flatMap',7,0,0)
f(10,400,6,2,'cats/effect/IO$$anon$2.flatMap',6,0,0)
f(11,404,2,2,'cats/effect/IO$$anon$2.flatMap',2,0,0)
f(12,404,2,2,'cats/effect/IO.flatMap',2,0,0)
f(13,404,2,2,'cats/effect/tracing/TracingPlatform.calculateTracingEvent',2,0,0)
f(7,406,26,2,'cats/effect/IO$$anon$2.deferred',26,0,0)
f(8,406,26,2,'cats/effect/IO$$anon$2.deferred',26,0,0)
f(9,406,26,2,'cats/effect/IO$.deferred',26,0,0)
f(10,411,18,2,'cats/effect/IO$.apply',18,0,0)
f(11,411,18,2,'cats/effect/IO$.delay',18,0,0)
f(10,429,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(11,429,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(12,431,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(7,432,2,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d81800.linkToTargetMethod',2,0,0)
f(8,432,2,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d81000.newInvokeSpecial',2,0,0)
f(9,432,2,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d84c10.<init>',2,0,0)
f(5,434,25,3,'itable stub')
f(5,459,30,3,'vtable stub')
f(3,489,1,1,'cats/effect/IOFiber.cedeR')
f(4,489,1,1,'cats/effect/IOFiber.runLoop')
f(5,489,1,2,'cats/effect/IOFiber.rescheduleFiber',1,0,0)
f(6,489,1,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',1,0,0)
f(7,489,1,2,'cats/effect/unsafe/WorkerThread.reschedule',1,0,0)
f(1,490,1,1,'java/lang/Thread.run')
f(2,490,1,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,490,1,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,490,1,1,'java/util/concurrent/FutureTask.run')
f(5,490,1,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,490,1,1,'java/util/concurrent/FutureTask.run')
f(7,490,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,490,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,490,1,1,'java/lang/reflect/Method.invoke')
f(10,490,1,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,490,1,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,490,1,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_forkCats_jmhTest.forkCats_Throughput')
f(13,490,1,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,490,1,1,'kyo/bench/Bench.forkCats')
f(15,490,1,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,490,1,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,490,1,1,'cats/effect/IO.unsafeRunAsync')
f(18,490,1,1,'cats/effect/IO.unsafeRunFiber')
f(19,490,1,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,490,1,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,490,1,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,490,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,490,1,1,'jdk/internal/misc/Unsafe.unpark')
f(24,490,1,3,'pthread_cond_signal')
f(25,490,1,5,'entry_SYSCALL_64_after_hwframe')
f(26,490,1,5,'do_syscall_64')
f(27,490,1,5,'__x64_sys_futex')
f(28,490,1,5,'do_futex')
f(29,490,1,5,'futex_wake')
f(30,490,1,5,'wake_up_q')
f(31,490,1,5,'_raw_spin_unlock_irqrestore')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,32714,3,'all')
f(1,0,31750,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,31750,1,'cats/effect/IOFiber.run')
f(3,0,31143,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,31143,1,'cats/effect/IOFiber.runLoop')
f(5,0,1543,2,'cats.effect.IOFiber$$anon$1')
f(5,1543,4899,1,'cats/effect/IO$$$Lambda$107.0x0000000800d7fd38.apply')
f(6,1543,4899,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,1543,1515,2,'cats.effect.IODeferred')
f(7,3058,3384,1,'cats/effect/IODeferred.<init>')
f(8,3058,1494,1,'cats/effect/CallbackStack$.apply')
f(9,3058,1494,2,'cats.effect.CallbackStack')
f(8,4552,927,2,'java.util.concurrent.atomic.AtomicInteger')
f(8,5479,963,2,'java.util.concurrent.atomic.AtomicReference')
f(5,6442,4768,1,'cats/effect/IOFiber.succeeded')
f(6,6442,1558,1,'kyo/bench/EnqueueDequeueBench$$Lambda$106.0x0000000800d7f200.apply')
f(7,6442,1558,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1')
f(8,6442,778,1,'cats/effect/IO.flatMap')
f(9,6442,778,1,'cats/effect/IO$FlatMap$.apply')
f(10,6442,778,2,'cats.effect.IO$FlatMap')
f(8,7220,780,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d7d800.linkToTargetMethod')
f(9,7220,780,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7d000.newInvokeSpecial')
f(10,7220,780,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,7220,780,2,'kyo.bench.EnqueueDequeueBench$$Lambda$110+0x0000000800d80c10')
f(6,8000,3210,1,'kyo/bench/EnqueueDequeueBench$$Lambda$110.0x0000000800d80c10.apply')
f(7,8000,3210,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1')
f(8,8000,3210,1,'kyo/bench/EnqueueDequeueBench.loop$1')
f(9,8000,915,1,'cats/effect/IO.flatMap')
f(10,8000,915,1,'cats/effect/IO$FlatMap$.apply')
f(11,8000,915,2,'cats.effect.IO$FlatMap')
f(9,8915,1504,1,'cats/effect/std/Queue$AbstractQueue.offer')
f(10,8915,749,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,8915,749,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,8915,749,1,'cats/effect/IO$.uncancelable')
f(13,8915,749,1,'cats/effect/IO$Uncancelable$.apply')
f(14,8915,749,2,'cats.effect.IO$Uncancelable')
f(10,9664,755,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,9664,755,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,9664,755,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,9664,755,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$105+0x0000000800d7ee30')
f(9,10419,791,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d7d800.linkToTargetMethod')
f(10,10419,791,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7d000.newInvokeSpecial')
f(11,10419,791,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,10419,791,2,'kyo.bench.EnqueueDequeueBench$$Lambda$106+0x0000000800d7f200')
f(5,11210,7569,1,'cats/effect/kernel/SyncRef$$Lambda$99.0x0000000800d7b2c8.apply')
f(6,11210,7569,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,11210,7569,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,11210,3778,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d80840.apply')
f(9,11210,3778,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$11')
f(10,11210,526,1,'cats/effect/IO$$anon$2.unit')
f(11,11210,526,1,'cats/Applicative.unit$')
f(12,11210,526,1,'cats/Applicative.unit')
f(13,11210,526,1,'cats/effect/IO$$anon$2.pure')
f(14,11210,526,1,'cats/effect/IO$$anon$2.pure')
f(15,11210,526,1,'cats/effect/IO$.pure')
f(16,11210,526,1,'cats/effect/IO$Pure$.apply')
f(17,11210,526,2,'cats.effect.IO$Pure')
f(10,11736,1079,1,'cats/effect/std/Queue$State$.apply')
f(11,11736,1079,2,'cats.effect.std.Queue$State')
f(10,12815,735,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,12815,735,2,'scala.Tuple2')
f(10,13550,1438,1,'scala/collection/immutable/Queue.enqueue')
f(11,13550,662,2,'scala.collection.immutable.$colon$colon')
f(11,14212,776,2,'scala.collection.immutable.Queue')
f(8,14988,3791,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d813b0.apply')
f(9,14988,3791,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$8')
f(10,14988,511,1,'cats/effect/IO$$anon$2.pure')
f(11,14988,511,1,'cats/effect/IO$$anon$2.pure')
f(12,14988,511,1,'cats/effect/IO$.pure')
f(13,14988,511,1,'cats/effect/IO$Pure$.apply')
f(14,14988,511,2,'cats.effect.IO$Pure')
f(10,15499,1007,1,'cats/effect/std/Queue$State$.apply')
f(11,15499,1007,2,'cats.effect.std.Queue$State')
f(10,16506,750,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,16506,750,2,'scala.Tuple2')
f(10,17256,1523,1,'scala/collection/immutable/Queue.dequeue')
f(11,17256,773,2,'scala.collection.immutable.Queue')
f(11,18029,750,1,'scala/collection/immutable/List.reverse')
f(12,18029,750,1,'scala/collection/immutable/List.$colon$colon')
f(13,18029,750,2,'scala.collection.immutable.$colon$colon')
f(5,18779,2582,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$105.0x0000000800d7ee30.apply')
f(6,18779,2582,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2')
f(7,18779,718,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,18779,718,1,'cats/FlatMap$Ops.flatMap$')
f(9,18779,718,1,'cats/FlatMap$Ops.flatMap')
f(10,18779,718,1,'cats/effect/IO$$anon$2.flatMap')
f(11,18779,718,1,'cats/effect/IO$$anon$2.flatMap')
f(12,18779,718,1,'cats/effect/IO.flatMap')
f(13,18779,718,1,'cats/effect/IO$FlatMap$.apply')
f(14,18779,718,2,'cats.effect.IO$FlatMap')
f(7,19497,1143,1,'cats/effect/IO$$anon$2.deferred')
f(8,19497,1143,1,'cats/effect/IO$$anon$2.deferred')
f(9,19497,1143,1,'cats/effect/IO$.deferred')
f(10,19497,720,1,'cats/effect/IO$.apply')
f(11,19497,720,1,'cats/effect/IO$.delay')
f(12,19497,720,1,'cats/effect/IO$Delay$.apply')
f(13,19497,720,2,'cats.effect.IO$Delay')
f(10,20217,423,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,20217,423,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,20217,423,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,20217,423,2,'cats.effect.IO$$$Lambda$107+0x0000000800d7fd38')
f(7,20640,721,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,20640,721,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,20640,721,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,20640,721,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$108+0x0000000800d80000')
f(5,21361,3298,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$108.0x0000000800d80000.apply')
f(6,21361,3298,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2$$anonfun$1')
f(7,21361,1474,1,'cats/effect/kernel/SyncRef.modify')
f(8,21361,767,1,'cats/effect/IO$$anon$2.delay')
f(9,21361,767,1,'cats/effect/IO$$anon$2.delay')
f(10,21361,767,1,'cats/effect/IO$.apply')
f(11,21361,767,1,'cats/effect/IO$.delay')
f(12,21361,767,1,'cats/effect/IO$Delay$.apply')
f(13,21361,767,2,'cats.effect.IO$Delay')
f(8,22128,707,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,22128,707,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,22128,707,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,22128,707,2,'cats.effect.kernel.SyncRef$$Lambda$99+0x0000000800d7b2c8')
f(7,22835,812,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,22835,812,1,'cats/effect/IO$$anon$2.flatten')
f(9,22835,812,1,'cats/FlatMap.flatten$')
f(10,22835,812,1,'cats/FlatMap.flatten')
f(11,22835,812,1,'cats/effect/IO$$anon$2.flatMap')
f(12,22835,812,1,'cats/effect/IO$$anon$2.flatMap')
f(13,22835,812,1,'cats/effect/IO.flatMap')
f(14,22835,812,1,'cats/effect/IO$FlatMap$.apply')
f(15,22835,812,2,'cats.effect.IO$FlatMap')
f(7,23647,1012,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,23647,1012,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74c00.newInvokeSpecial')
f(9,23647,1012,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,23647,1012,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$109+0x0000000800d80840')
f(5,24659,3388,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$111.0x0000000800d80fe0.apply')
f(6,24659,3388,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2$$anonfun$1')
f(7,24659,1479,1,'cats/effect/kernel/SyncRef.modify')
f(8,24659,741,1,'cats/effect/IO$$anon$2.delay')
f(9,24659,741,1,'cats/effect/IO$$anon$2.delay')
f(10,24659,741,1,'cats/effect/IO$.apply')
f(11,24659,741,1,'cats/effect/IO$.delay')
f(12,24659,741,1,'cats/effect/IO$Delay$.apply')
f(13,24659,741,2,'cats.effect.IO$Delay')
f(8,25400,738,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,25400,738,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,25400,738,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,25400,738,2,'cats.effect.kernel.SyncRef$$Lambda$99+0x0000000800d7b2c8')
f(7,26138,745,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,26138,745,1,'cats/effect/IO$$anon$2.flatten')
f(9,26138,745,1,'cats/FlatMap.flatten$')
f(10,26138,745,1,'cats/FlatMap.flatten')
f(11,26138,745,1,'cats/effect/IO$$anon$2.flatMap')
f(12,26138,745,1,'cats/effect/IO$$anon$2.flatMap')
f(13,26138,745,1,'cats/effect/IO.flatMap')
f(14,26138,745,1,'cats/effect/IO$FlatMap$.apply')
f(15,26138,745,2,'cats.effect.IO$FlatMap')
f(7,26883,1164,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d85c00.linkToTargetMethod')
f(8,26883,1164,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d85400.newInvokeSpecial')
f(9,26883,1164,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,26883,1164,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$112+0x0000000800d813b0')
f(5,28047,3096,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$97.0x0000000800d79840.apply')
f(6,28047,3096,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2')
f(7,28047,778,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,28047,778,1,'cats/FlatMap$Ops.flatMap$')
f(9,28047,778,1,'cats/FlatMap$Ops.flatMap')
f(10,28047,778,1,'cats/effect/IO$$anon$2.flatMap')
f(11,28047,778,1,'cats/effect/IO$$anon$2.flatMap')
f(12,28047,778,1,'cats/effect/IO.flatMap')
f(13,28047,778,1,'cats/effect/IO$FlatMap$.apply')
f(14,28047,778,2,'cats.effect.IO$FlatMap')
f(7,28825,1304,1,'cats/effect/IO$$anon$2.deferred')
f(8,28825,1304,1,'cats/effect/IO$$anon$2.deferred')
f(9,28825,1304,1,'cats/effect/IO$.deferred')
f(10,28825,833,1,'cats/effect/IO$.apply')
f(11,28825,833,1,'cats/effect/IO$.delay')
f(12,28825,833,1,'cats/effect/IO$Delay$.apply')
f(13,28825,833,2,'cats.effect.IO$Delay')
f(10,29658,471,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,29658,471,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,29658,471,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,29658,471,2,'cats.effect.IO$$$Lambda$107+0x0000000800d7fd38')
f(7,30129,1014,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d84c00.linkToTargetMethod')
f(8,30129,1014,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d84400.newInvokeSpecial')
f(9,30129,1014,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,30129,1014,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$111+0x0000000800d80fe0')
f(3,31143,607,1,'cats/effect/IOFiber.execR')
f(4,31143,1,1,'cats/effect/ArrayStack.init')
f(5,31143,1,2,'java.lang.Object[]')
f(4,31144,399,1,'cats/effect/ByteStack$.create')
f(5,31144,399,2,'int[]')
f(4,31543,207,1,'cats/effect/IOFiber.runLoop')
f(5,31543,8,2,'cats.effect.IOFiber$$anon$1')
f(5,31551,33,1,'cats/effect/IO$$$Lambda$107.0x0000000800d7fd38.apply')
f(6,31551,33,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,31551,10,2,'cats.effect.IODeferred')
f(7,31561,23,1,'cats/effect/IODeferred.<init>')
f(8,31561,15,1,'cats/effect/CallbackStack$.apply')
f(9,31561,15,2,'cats.effect.CallbackStack')
f(8,31576,4,2,'java.util.concurrent.atomic.AtomicInteger')
f(8,31580,4,2,'java.util.concurrent.atomic.AtomicReference')
f(5,31584,26,1,'cats/effect/IOFiber.succeeded')
f(6,31584,5,1,'kyo/bench/EnqueueDequeueBench$$Lambda$106.0x0000000800d7f200.apply')
f(7,31584,5,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1')
f(8,31584,2,1,'cats/effect/IO.flatMap')
f(9,31584,2,1,'cats/effect/IO$FlatMap$.apply')
f(10,31584,2,2,'cats.effect.IO$FlatMap')
f(8,31586,3,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d7d800.linkToTargetMethod')
f(9,31586,3,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7d000.newInvokeSpecial')
f(10,31586,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,31586,3,2,'kyo.bench.EnqueueDequeueBench$$Lambda$110+0x0000000800d80c10')
f(6,31589,21,1,'kyo/bench/EnqueueDequeueBench$$Lambda$110.0x0000000800d80c10.apply')
f(7,31589,21,1,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1')
f(8,31589,21,1,'kyo/bench/EnqueueDequeueBench.loop$1')
f(9,31589,7,1,'cats/effect/IO.flatMap')
f(10,31589,7,1,'cats/effect/IO$FlatMap$.apply')
f(11,31589,7,2,'cats.effect.IO$FlatMap')
f(9,31596,6,1,'cats/effect/std/Queue$AbstractQueue.offer')
f(10,31596,2,1,'cats/effect/IO$$anon$2.uncancelable')
f(11,31596,2,1,'cats/effect/IO$$anon$2.uncancelable')
f(12,31596,2,1,'cats/effect/IO$.uncancelable')
f(13,31596,2,1,'cats/effect/IO$Uncancelable$.apply')
f(14,31596,2,2,'cats.effect.IO$Uncancelable')
f(10,31598,4,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,31598,4,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,31598,4,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,31598,4,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$105+0x0000000800d7ee30')
f(9,31602,8,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d7d800.linkToTargetMethod')
f(10,31602,8,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7d000.newInvokeSpecial')
f(11,31602,8,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,31602,8,2,'kyo.bench.EnqueueDequeueBench$$Lambda$106+0x0000000800d7f200')
f(5,31610,47,1,'cats/effect/kernel/SyncRef$$Lambda$99.0x0000000800d7b2c8.apply')
f(6,31610,47,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,31610,47,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,31610,27,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d80840.apply')
f(9,31610,27,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$11')
f(10,31610,5,1,'cats/effect/IO$$anon$2.unit')
f(11,31610,5,1,'cats/Applicative.unit$')
f(12,31610,5,1,'cats/Applicative.unit')
f(13,31610,5,1,'cats/effect/IO$$anon$2.pure')
f(14,31610,5,1,'cats/effect/IO$$anon$2.pure')
f(15,31610,5,1,'cats/effect/IO$.pure')
f(16,31610,5,1,'cats/effect/IO$Pure$.apply')
f(17,31610,5,2,'cats.effect.IO$Pure')
f(10,31615,1,1,'cats/effect/std/Queue$State$.apply')
f(11,31615,1,2,'cats.effect.std.Queue$State')
f(10,31616,8,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,31616,8,2,'scala.Tuple2')
f(10,31624,13,1,'scala/collection/immutable/Queue.enqueue')
f(11,31624,3,2,'scala.collection.immutable.$colon$colon')
f(11,31627,10,2,'scala.collection.immutable.Queue')
f(8,31637,20,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d813b0.apply')
f(9,31637,20,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$8')
f(10,31637,1,1,'cats/effect/IO$$anon$2.pure')
f(11,31637,1,1,'cats/effect/IO$$anon$2.pure')
f(12,31637,1,1,'cats/effect/IO$.pure')
f(13,31637,1,1,'cats/effect/IO$Pure$.apply')
f(14,31637,1,2,'cats.effect.IO$Pure')
f(10,31638,5,1,'cats/effect/std/Queue$State$.apply')
f(11,31638,5,2,'cats.effect.std.Queue$State')
f(10,31643,5,1,'scala/Predef$ArrowAssoc$.$minus$greater$extension')
f(11,31643,5,2,'scala.Tuple2')
f(10,31648,9,1,'scala/collection/immutable/Queue.dequeue')
f(11,31648,1,2,'scala.collection.immutable.Queue')
f(11,31649,8,1,'scala/collection/immutable/List.reverse')
f(12,31649,8,1,'scala/collection/immutable/List.$colon$colon')
f(13,31649,8,2,'scala.collection.immutable.$colon$colon')
f(5,31657,16,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$105.0x0000000800d7ee30.apply')
f(6,31657,16,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2')
f(7,31657,5,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,31657,5,1,'cats/FlatMap$Ops.flatMap$')
f(9,31657,5,1,'cats/FlatMap$Ops.flatMap')
f(10,31657,5,1,'cats/effect/IO$$anon$2.flatMap')
f(11,31657,5,1,'cats/effect/IO$$anon$2.flatMap')
f(12,31657,5,1,'cats/effect/IO.flatMap')
f(13,31657,5,1,'cats/effect/IO$FlatMap$.apply')
f(14,31657,5,2,'cats.effect.IO$FlatMap')
f(7,31662,5,1,'cats/effect/IO$$anon$2.deferred')
f(8,31662,5,1,'cats/effect/IO$$anon$2.deferred')
f(9,31662,5,1,'cats/effect/IO$.deferred')
f(10,31662,2,1,'cats/effect/IO$.apply')
f(11,31662,2,1,'cats/effect/IO$.delay')
f(12,31662,2,1,'cats/effect/IO$Delay$.apply')
f(13,31662,2,2,'cats.effect.IO$Delay')
f(10,31664,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,31664,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,31664,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,31664,3,2,'cats.effect.IO$$$Lambda$107+0x0000000800d7fd38')
f(7,31667,6,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,31667,6,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(9,31667,6,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,31667,6,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$108+0x0000000800d80000')
f(5,31673,9,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$108.0x0000000800d80000.apply')
f(6,31673,9,1,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2$$anonfun$1')
f(7,31673,3,1,'cats/effect/kernel/SyncRef.modify')
f(8,31673,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,31673,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,31673,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,31673,3,2,'cats.effect.kernel.SyncRef$$Lambda$99+0x0000000800d7b2c8')
f(7,31676,5,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,31676,5,1,'cats/effect/IO$$anon$2.flatten')
f(9,31676,5,1,'cats/FlatMap.flatten$')
f(10,31676,5,1,'cats/FlatMap.flatten')
f(11,31676,5,1,'cats/effect/IO$$anon$2.flatMap')
f(12,31676,5,1,'cats/effect/IO$$anon$2.flatMap')
f(13,31676,5,1,'cats/effect/IO.flatMap')
f(14,31676,5,1,'cats/effect/IO$FlatMap$.apply')
f(15,31676,5,2,'cats.effect.IO$FlatMap')
f(7,31681,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(8,31681,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74c00.newInvokeSpecial')
f(9,31681,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,31681,1,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$109+0x0000000800d80840')
f(5,31682,48,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$111.0x0000000800d80fe0.apply')
f(6,31682,48,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2$$anonfun$1')
f(7,31682,34,1,'cats/effect/kernel/SyncRef.modify')
f(8,31682,31,1,'cats/effect/IO$$anon$2.delay')
f(9,31682,31,1,'cats/effect/IO$$anon$2.delay')
f(10,31682,31,1,'cats/effect/IO$.apply')
f(11,31682,31,1,'cats/effect/IO$.delay')
f(12,31682,31,1,'cats/effect/IO$Delay$.apply')
f(13,31682,31,2,'cats.effect.IO$Delay')
f(8,31713,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,31713,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,31713,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,31713,3,2,'cats.effect.kernel.SyncRef$$Lambda$99+0x0000000800d7b2c8')
f(7,31716,5,1,'cats/syntax/FlattenOps$.flatten$extension')
f(8,31716,5,1,'cats/effect/IO$$anon$2.flatten')
f(9,31716,5,1,'cats/FlatMap.flatten$')
f(10,31716,5,1,'cats/FlatMap.flatten')
f(11,31716,5,1,'cats/effect/IO$$anon$2.flatMap')
f(12,31716,5,1,'cats/effect/IO$$anon$2.flatMap')
f(13,31716,5,1,'cats/effect/IO.flatMap')
f(14,31716,5,1,'cats/effect/IO$FlatMap$.apply')
f(15,31716,5,2,'cats.effect.IO$FlatMap')
f(7,31721,9,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d85c00.linkToTargetMethod')
f(8,31721,9,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d85400.newInvokeSpecial')
f(9,31721,9,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,31721,9,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$112+0x0000000800d813b0')
f(5,31730,20,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$97.0x0000000800d79840.apply')
f(6,31730,20,1,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2')
f(7,31730,5,1,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap')
f(8,31730,5,1,'cats/FlatMap$Ops.flatMap$')
f(9,31730,5,1,'cats/FlatMap$Ops.flatMap')
f(10,31730,5,1,'cats/effect/IO$$anon$2.flatMap')
f(11,31730,5,1,'cats/effect/IO$$anon$2.flatMap')
f(12,31730,5,1,'cats/effect/IO.flatMap')
f(13,31730,5,1,'cats/effect/IO$FlatMap$.apply')
f(14,31730,5,2,'cats.effect.IO$FlatMap')
f(7,31735,7,1,'cats/effect/IO$$anon$2.deferred')
f(8,31735,7,1,'cats/effect/IO$$anon$2.deferred')
f(9,31735,7,1,'cats/effect/IO$.deferred')
f(10,31735,4,1,'cats/effect/IO$.apply')
f(11,31735,4,1,'cats/effect/IO$.delay')
f(12,31735,4,1,'cats/effect/IO$Delay$.apply')
f(13,31735,4,2,'cats.effect.IO$Delay')
f(10,31739,3,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(11,31739,3,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(12,31739,3,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(13,31739,3,2,'cats.effect.IO$$$Lambda$107+0x0000000800d7fd38')
f(7,31742,8,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d84c00.linkToTargetMethod')
f(8,31742,8,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d84400.newInvokeSpecial')
f(9,31742,8,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(10,31742,8,2,'cats.effect.std.Queue$AbstractQueue$$Lambda$111+0x0000000800d80fe0')
f(1,31750,1,2,'java.lang.String')
f(1,31751,940,1,'java/lang/Thread.run')
f(2,31751,940,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,31751,940,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,31751,940,1,'java/util/concurrent/FutureTask.run')
f(5,31751,940,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,31751,940,1,'java/util/concurrent/FutureTask.run')
f(7,31751,940,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,31751,940,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,31751,940,1,'java/lang/reflect/Method.invoke')
f(10,31751,940,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,31751,940,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,31751,940,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_syncCats_jmhTest.syncCats_Throughput')
f(13,31751,939,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,31751,939,1,'kyo/bench/Bench.syncCats')
f(15,31751,743,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,31751,686,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,31751,419,1,'cats/effect/IO.unsafeRunAsync')
f(18,31751,338,1,'cats/effect/IO.unsafeRunFiber')
f(19,31751,58,2,'cats.effect.IOFiber')
f(19,31809,19,5,'cats.effect.IOFiber')
f(19,31828,173,1,'cats/effect/IOFiber.<init>')
f(20,31828,76,1,'cats/effect/ArrayStack$.apply')
f(21,31828,76,2,'cats.effect.ArrayStack')
f(20,31904,12,1,'cats/effect/CallbackStack$.apply')
f(21,31904,12,2,'cats.effect.CallbackStack')
f(20,31916,48,1,'cats/effect/IO$.async')
f(21,31916,38,2,'cats.effect.IO$$anon$3')
f(21,31954,10,1,'cats/effect/IO$IOCont$.apply')
f(22,31954,10,2,'cats.effect.IO$IOCont')
f(20,31964,11,1,'cats/effect/IO$.uncancelable')
f(21,31964,11,1,'cats/effect/IO$Uncancelable$.apply')
f(22,31964,11,2,'cats.effect.IO$Uncancelable')
f(20,31975,26,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,31975,26,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,31975,26,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,31975,26,2,'cats.effect.IOFiber$$Lambda$94+0x0000000800d75a30')
f(19,32001,37,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,32001,37,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,32001,37,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,32001,37,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,32001,37,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,32038,51,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,32038,51,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74c00.newInvokeSpecial')
f(21,32038,51,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,32038,51,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(23,32038,51,2,'cats.effect.IO$$Lambda$93+0x0000000800d77a90')
f(18,32089,81,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,32089,81,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,32089,81,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,32089,81,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(22,32089,11,2,'cats.effect.IO$$Lambda$90+0x0000000800d76408')
f(22,32100,69,2,'cats.effect.IO$$Lambda$91+0x0000000800d766c8')
f(22,32169,1,2,'cats.effect.IO$$Lambda$92+0x0000000800d76ad0')
f(17,32170,38,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,32208,16,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,32208,16,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,32208,16,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,32208,16,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(21,32208,16,2,'cats.effect.IOPlatform$$Lambda$96+0x0000000800d78a00')
f(17,32224,111,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,32224,111,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,32224,12,2,'java.lang.Object[]')
f(19,32236,37,2,'java.util.concurrent.locks.ReentrantLock')
f(19,32273,10,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,32273,10,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,32283,52,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,32283,52,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,32283,52,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,32335,26,1,'scala/concurrent/package$.blocking')
f(18,32335,26,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,32335,26,1,'cats/effect/IOPlatform$$Lambda$96.0x0000000800d78a00.apply')
f(20,32335,26,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,32335,26,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,32335,26,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,32335,26,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,32361,76,1,'scala/util/Either.fold')
f(18,32361,76,1,'cats/effect/IOPlatform$$Lambda$117.0x0000000800d830d0.apply')
f(19,32361,76,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,32361,76,1,'scala/Some$.apply')
f(21,32361,76,2,'scala.Some')
f(16,32437,15,2,'scala.concurrent.duration.package$DurationLong')
f(16,32452,42,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,32452,42,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,32452,42,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,32452,42,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,32452,42,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,32452,42,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,32452,42,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,32452,42,2,'scala.concurrent.duration.FiniteDuration')
f(15,32494,196,1,'kyo/bench/EnqueueDequeueBench.catsBench')
f(16,32494,48,1,'cats/effect/IO.flatMap')
f(17,32494,48,1,'cats/effect/IO$FlatMap$.apply')
f(18,32494,48,2,'cats.effect.IO$FlatMap')
f(16,32542,128,1,'cats/effect/std/Queue$.bounded')
f(17,32542,128,1,'cats/effect/std/Queue$.boundedForConcurrent')
f(18,32542,57,1,'cats/Functor$ToFunctorOps$$anon$4.map')
f(19,32542,57,1,'cats/Functor$Ops.map$')
f(20,32542,57,1,'cats/Functor$Ops.map')
f(21,32542,57,1,'cats/effect/IO$$anon$2.map')
f(22,32542,57,1,'cats/effect/IO$$anon$2.map')
f(23,32542,57,1,'cats/effect/IO.map')
f(24,32542,57,1,'cats/effect/IO$Map$.apply')
f(25,32542,57,2,'cats.effect.IO$Map')
f(18,32599,61,1,'cats/effect/IO$$anon$2.ref')
f(19,32599,61,1,'cats/effect/IO$$anon$2.ref')
f(20,32599,61,1,'cats/effect/IO$.ref')
f(21,32599,5,1,'cats/effect/IO$.apply')
f(22,32599,5,1,'cats/effect/IO$.delay')
f(23,32599,5,1,'cats/effect/IO$Delay$.apply')
f(24,32599,5,2,'cats.effect.IO$Delay')
f(21,32604,56,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(22,32604,56,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(23,32604,56,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(24,32604,56,2,'cats.effect.IO$$$Lambda$41+0x0000000800d1b180')
f(18,32660,9,1,'cats/effect/std/Queue$State$.empty')
f(19,32660,9,1,'cats/effect/std/Queue$State$.apply')
f(20,32660,9,2,'cats.effect.std.Queue$State')
f(18,32669,1,1,'java/lang/invoke/LambdaForm$MH.0x0000000800d1cc00.linkToTargetMethod')
f(19,32669,1,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d1c400.newInvokeSpecial')
f(20,32669,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,32669,1,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(22,32669,1,2,'cats.effect.std.Queue$$$Lambda$43+0x0000000800d1e000')
f(16,32670,20,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,32670,20,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,32670,20,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,32670,20,1,'jdk/internal/misc/Unsafe.allocateInstance')
f(20,32670,20,2,'kyo.bench.EnqueueDequeueBench$$Lambda$44+0x0000000800d1e3d0')
f(13,32690,1,1,'org/openjdk/jmh/results/ThroughputResult.<init>')
f(14,32690,1,1,'java/lang/StringBuilder.<init>')
f(15,32690,1,1,'java/lang/AbstractStringBuilder.<init>')
f(16,32690,1,2,'byte[]')
f(1,32691,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,32691,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,32691,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,32691,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,32691,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,32691,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,32691,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,32691,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,32691,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,32691,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,32691,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,32691,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,32691,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,32691,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,32691,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,32691,1,2,'java.lang.Object[]')
f(7,32692,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,32692,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,32692,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,32695,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,32695,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,32695,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,32695,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,32695,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,32695,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,32700,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,32700,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,32700,3,1,'java/lang/ClassLoader.loadClass')
f(10,32700,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,32700,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,32700,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,32700,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,32700,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,32700,1,1,'java/security/CodeSource.<init>')
f(16,32700,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,32700,1,1,'java/lang/StringBuilder.append')
f(18,32700,1,1,'java/lang/AbstractStringBuilder.append')
f(19,32700,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,32700,1,1,'java/util/Arrays.copyOf')
f(21,32700,1,2,'byte[]')
f(15,32701,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,32701,1,1,'java/util/Arrays.copyOf')
f(17,32701,1,5,'byte[]')
f(14,32702,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,32702,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,32702,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,32702,1,1,'java/net/URL.<init>')
f(18,32702,1,1,'java/net/URL.<init>')
f(19,32702,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,32702,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,32702,1,1,'java/lang/StringBuilder.toString')
f(22,32702,1,1,'java/lang/StringLatin1.newString')
f(23,32702,1,2,'java.lang.String')
f(9,32703,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,32703,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,32703,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,32703,11,1,'java/io/ObjectStreamClass.lookup')
f(13,32703,11,1,'java/io/ObjectStreamClass.<init>')
f(14,32703,11,1,'java/security/AccessController.doPrivileged')
f(15,32703,11,1,'java/security/AccessController.executePrivileged')
f(16,32703,11,1,'java/io/ObjectStreamClass$2.run')
f(17,32703,11,1,'java/io/ObjectStreamClass$2.run')
f(18,32703,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,32703,2,1,'java/lang/Class.getDeclaredMethod')
f(20,32703,1,1,'java/lang/Class.methodToString')
f(21,32703,1,1,'java/lang/StringBuilder.append')
f(22,32703,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32703,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32703,1,1,'java/util/Arrays.copyOf')
f(25,32703,1,2,'byte[]')
f(20,32704,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32704,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32704,1,1,'java/lang/Exception.<init>')
f(23,32704,1,1,'java/lang/Throwable.<init>')
f(24,32704,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32704,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32704,1,2,'short[]')
f(18,32705,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,32705,3,1,'java/lang/Class.getDeclaredMethod')
f(20,32705,2,1,'java/lang/Class.methodToString')
f(21,32705,1,1,'java/lang/StringBuilder.append')
f(22,32705,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32705,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32705,1,1,'java/util/Arrays.copyOf')
f(25,32705,1,2,'byte[]')
f(21,32706,1,1,'java/lang/StringBuilder.toString')
f(22,32706,1,1,'java/lang/StringLatin1.newString')
f(23,32706,1,1,'java/util/Arrays.copyOfRange')
f(24,32706,1,2,'byte[]')
f(20,32707,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32707,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32707,1,1,'java/lang/Exception.<init>')
f(23,32707,1,1,'java/lang/Throwable.<init>')
f(24,32707,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32707,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32707,1,5,'long[]')
f(18,32708,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,32708,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,32708,1,1,'java/lang/Class.getDeclaredField')
f(21,32708,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,32708,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,32708,1,1,'java/lang/Exception.<init>')
f(24,32708,1,1,'java/lang/Throwable.<init>')
f(25,32708,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32708,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,32708,1,2,'long[]')
f(18,32709,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,32709,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,32709,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,32709,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,32709,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,32709,1,1,'java/security/AccessController.doPrivileged')
f(24,32709,1,1,'java/security/AccessController.executePrivileged')
f(25,32709,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,32709,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,32709,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,32709,1,1,'java/security/AccessController.doPrivileged')
f(29,32709,1,1,'java/security/AccessController.executePrivileged')
f(30,32709,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,32709,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,32709,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,32709,1,1,'java/lang/ClassLoader.<init>')
f(34,32709,1,1,'java/lang/ClassLoader.<init>')
f(35,32709,1,1,'java/lang/ClassLoader.nameAndId')
f(36,32709,1,1,'java/lang/StringBuilder.<init>')
f(37,32709,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,32709,1,2,'byte[]')
f(23,32710,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,32710,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32710,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32710,1,2,'byte[]')
f(23,32711,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,32711,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32711,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32711,1,2,'byte[]')
f(23,32712,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,32712,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,32712,1,1,'java/lang/String.replace')
f(26,32712,1,1,'java/lang/StringLatin1.replace')
f(27,32712,1,2,'java.lang.String')
f(23,32713,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,32713,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 672px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(42);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,491,3,'all')
f(1,0,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,1,3,'thread_native_entry(Thread*)')
f(3,0,1,4,'Thread::call_run()')
f(4,0,1,4,'VMThread::run()')
f(5,0,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,0,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,0,1,4,'VM_Operation::evaluate()')
f(8,0,1,4,'VM_G1CollectForAllocation::doit()')
f(9,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,0,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,0,1,4,'G1Policy::record_collection_pause_end(double, bool)')
f(12,0,1,4,'G1Analytics::predict_rs_length() const')
f(1,1,9,3,'[unknown_Java]')
f(2,1,3,6,'cats/effect/IO$Delay.tag',0,3,0)
f(2,4,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(2,6,3,6,'cats/effect/IO$Pure.tag',0,3,0)
f(2,9,1,1,'cats/effect/kernel/SyncRef$$Lambda$99.0x0000000800d7b2c8.apply')
f(1,10,480,1,'cats/effect/unsafe/WorkerThread.run')
f(2,10,479,1,'cats/effect/IOFiber.run')
f(3,10,473,1,'cats/effect/IOFiber.autoCedeR')
f(4,10,473,1,'cats/effect/IOFiber.runLoop')
f(5,85,5,1,'cats/FlatMap$$Lambda$100.0x0000000800d7b790.apply')
f(5,90,9,2,'cats/effect/ByteStack$.push',9,0,0)
f(6,97,2,2,'cats/effect/ByteStack$.growIfNeeded',2,0,0)
f(5,99,17,6,'cats/effect/IO$Delay.tag',0,17,0)
f(6,115,1,5,'asm_sysvec_hyperv_stimer0')
f(7,115,1,5,'sysvec_hyperv_stimer0')
f(8,115,1,5,'irq_exit_rcu')
f(9,115,1,5,'__irq_exit_rcu')
f(10,115,1,5,'__softirqentry_text_start')
f(5,116,26,6,'cats/effect/IO$FlatMap.tag',0,26,0)
f(5,142,2,6,'cats/effect/IO$Pure.tag',0,2,0)
f(5,144,7,6,'cats/effect/IO$Uncancelable.tag',0,7,0)
f(5,151,9,2,'cats/effect/IOFiber.rescheduleFiber',9,0,0)
f(5,160,1,2,'cats/effect/IOFiber.shouldFinalize',1,0,0)
f(5,161,82,1,'cats/effect/IOFiber.succeeded')
f(6,193,10,2,'cats/effect/ByteStack$.pop',10,0,0)
f(7,196,7,2,'cats/effect/ByteStack$.peek',7,0,0)
f(6,203,2,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,203,2,1,'cats/effect/IOFiber.done')
f(8,204,1,1,'cats/effect/CallbackStack.apply')
f(9,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(10,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(11,204,1,1,'cats/effect/IO$$Lambda$93.0x0000000800d77a90.applyVoid')
f(12,204,1,1,'cats/effect/IO.$anonfun$6')
f(13,204,1,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(14,204,1,1,'cats/effect/kernel/Outcome.fold$')
f(15,204,1,1,'cats/effect/kernel/Outcome.fold')
f(16,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(17,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(18,204,1,1,'cats/effect/IO$$Lambda$115.0x0000000800d82348.applyVoid')
f(19,204,1,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(20,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(21,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(22,204,1,1,'cats/effect/IO$$Lambda$92.0x0000000800d76ad0.applyVoid')
f(23,204,1,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(24,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(25,204,1,1,'scala/runtime/function/JProcedure1.apply')
f(26,204,1,1,'cats/effect/IOPlatform$$Lambda$89.0x0000000800d76000.applyVoid')
f(27,204,1,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(28,204,1,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(29,204,1,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(30,204,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(31,204,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(32,204,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(33,204,1,1,'jdk/internal/misc/Unsafe.unpark')
f(34,204,1,3,'pthread_cond_signal')
f(35,204,1,5,'entry_SYSCALL_64_after_hwframe')
f(36,204,1,5,'do_syscall_64')
f(37,204,1,5,'__x64_sys_futex')
f(38,204,1,5,'do_futex')
f(39,204,1,5,'futex_wake')
f(40,204,1,5,'wake_up_q')
f(41,204,1,5,'_raw_spin_unlock_irqrestore')
f(6,205,12,3,'itable stub')
f(6,217,12,1,'kyo/bench/EnqueueDequeueBench$$Lambda$106.0x0000000800d7f200.apply')
f(7,227,2,2,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1',2,0,0)
f(8,227,1,2,'cats/effect/IO.flatMap',1,0,0)
f(9,227,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(8,228,1,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d7d800.linkToTargetMethod',1,0,0)
f(9,228,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7d000.newInvokeSpecial',1,0,0)
f(10,228,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(6,229,14,1,'kyo/bench/EnqueueDequeueBench$$Lambda$110.0x0000000800d80c10.apply')
f(7,236,7,2,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1',7,0,0)
f(8,236,7,2,'kyo/bench/EnqueueDequeueBench.loop$1',7,0,0)
f(9,236,2,2,'cats/effect/IO.flatMap',2,0,0)
f(10,236,2,2,'cats/effect/IO$FlatMap$.apply',2,0,0)
f(9,238,4,2,'cats/effect/std/Queue$AbstractQueue.offer',4,0,0)
f(10,238,1,2,'cats/effect/IO$$anon$2.uncancelable',1,0,0)
f(11,238,1,2,'cats/effect/IO$$anon$2.uncancelable',1,0,0)
f(12,238,1,2,'cats/effect/IO$.uncancelable',1,0,0)
f(13,238,1,2,'cats/effect/IO$Uncancelable$.apply',1,0,0)
f(10,239,3,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(11,239,3,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(12,239,1,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$105.0x0000000800d7ee30.<init>',1,0,0)
f(12,240,2,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',2,0,0)
f(9,242,1,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d7d800.linkToTargetMethod',1,0,0)
f(10,242,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d7d000.newInvokeSpecial',1,0,0)
f(11,242,1,2,'kyo/bench/EnqueueDequeueBench$$Lambda$106.0x0000000800d7f200.<init>',1,0,0)
f(5,243,89,1,'cats/effect/kernel/SyncRef$$Lambda$99.0x0000000800d7b2c8.apply')
f(6,247,85,2,'cats/effect/kernel/SyncRef.modify$$anonfun$1',56,0,0)
f(7,247,85,2,'cats/effect/kernel/SyncRef.spin$4',56,0,0)
f(8,261,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(9,261,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(10,261,1,4,'MemAllocator::allocate() const')
f(11,261,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(12,261,1,4,'ThreadLocalAllocBuffer::retire_before_allocation()')
f(13,261,1,4,'CollectedHeap::fill_with_dummy_object(HeapWordImpl**, HeapWordImpl**, bool)')
f(8,262,22,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d80840.apply',21,0,0)
f(9,264,20,2,'cats/effect/std/Queue$AbstractQueue.$anonfun$11',19,0,0)
f(10,264,2,2,'cats/effect/IO$$anon$2.unit',1,0,0)
f(11,264,2,2,'cats/Applicative.unit$',1,0,0)
f(12,264,2,2,'cats/Applicative.unit',1,0,0)
f(13,264,2,2,'cats/effect/IO$$anon$2.pure',1,0,0)
f(14,264,2,2,'cats/effect/IO$$anon$2.pure',1,0,0)
f(15,264,2,2,'cats/effect/IO$.pure',1,0,0)
f(16,264,2,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(17,265,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(18,265,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(19,265,1,4,'MemAllocator::allocate() const')
f(20,265,1,4,'MemAllocator::Allocation::check_out_of_memory()')
f(10,266,2,2,'cats/effect/std/Queue$State._3',2,0,0)
f(11,266,2,2,'cats/effect/std/Queue$State.takers',2,0,0)
f(10,268,2,2,'scala/Predef$ArrowAssoc$.$minus$greater$extension',2,0,0)
f(10,270,4,2,'scala/collection/AbstractIterable.nonEmpty',4,0,0)
f(11,270,4,2,'scala/collection/IterableOnceOps.nonEmpty$',4,0,0)
f(12,270,4,2,'scala/collection/IterableOnceOps.nonEmpty',4,0,0)
f(13,270,4,2,'scala/collection/immutable/Queue.isEmpty',4,0,0)
f(10,274,10,2,'scala/collection/immutable/Queue.enqueue',10,0,0)
f(11,276,8,2,'scala/collection/immutable/Queue.<init>',8,0,0)
f(8,284,37,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$112.0x0000000800d813b0.apply',10,0,0)
f(9,294,27,1,'cats/effect/std/Queue$AbstractQueue.$anonfun$8')
f(10,298,9,2,'scala/collection/AbstractIterable.nonEmpty',9,0,0)
f(11,300,7,2,'scala/collection/IterableOnceOps.nonEmpty$',7,0,0)
f(12,301,6,2,'scala/collection/IterableOnceOps.nonEmpty',6,0,0)
f(13,302,5,2,'scala/collection/immutable/Queue.isEmpty',5,0,0)
f(14,305,2,2,'scala/collection/immutable/List.isEmpty',2,0,0)
f(10,307,6,2,'scala/collection/immutable/Queue.dequeue',5,0,0)
f(11,307,2,2,'scala/collection/immutable/List.equals',2,0,0)
f(11,309,4,2,'scala/collection/immutable/List.reverse',3,0,0)
f(12,310,3,2,'scala/collection/immutable/List.$colon$colon',2,0,0)
f(13,311,2,2,'scala/collection/immutable/$colon$colon.<init>',1,0,0)
f(14,311,2,2,'scala/collection/immutable/List.<init>',1,0,0)
f(15,311,2,2,'scala/collection/immutable/AbstractSeq.<init>',1,0,0)
f(16,312,1,1,'scala/collection/AbstractSeq.<init>')
f(17,312,1,1,'scala/collection/AbstractIterable.<init>')
f(18,312,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(19,312,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(20,312,1,4,'MemAllocator::allocate() const')
f(21,312,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(22,312,1,4,'ThreadLocalAllocBuffer::retire_before_allocation()')
f(23,312,1,4,'CollectedHeap::fill_with_dummy_object(HeapWordImpl**, HeapWordImpl**, bool)')
f(24,312,1,4,'ObjArrayAllocator::initialize(HeapWordImpl**) const')
f(10,313,8,2,'scala/collection/immutable/Queue.isEmpty',8,0,0)
f(11,314,7,2,'scala/collection/immutable/Queue.out',7,0,0)
f(8,321,9,2,'java/util/concurrent/atomic/AtomicReference.compareAndSet',9,0,0)
f(9,321,9,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',9,0,0)
f(10,321,9,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',9,0,0)
f(8,330,2,2,'scala/Tuple2$.apply',2,0,0)
f(5,332,50,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$105.0x0000000800d7ee30.apply',50,0,0)
f(6,348,34,2,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2',34,0,0)
f(7,350,1,2,'cats/FlatMap$ToFlatMapOps$$anon$2.flatMap',1,0,0)
f(8,350,1,2,'cats/FlatMap$Ops.flatMap$',1,0,0)
f(9,350,1,2,'cats/FlatMap$Ops.flatMap',1,0,0)
f(10,350,1,2,'cats/effect/IO$$anon$2.flatMap',1,0,0)
f(11,350,1,2,'cats/effect/IO$$anon$2.flatMap',1,0,0)
f(12,350,1,2,'cats/effect/IO.flatMap',1,0,0)
f(7,351,29,2,'cats/effect/IO$$anon$2.deferred',29,0,0)
f(8,351,29,2,'cats/effect/IO$$anon$2.deferred',29,0,0)
f(9,351,29,2,'cats/effect/IO$.deferred',29,0,0)
f(10,352,2,2,'cats/effect/IO$.apply',2,0,0)
f(11,352,2,2,'cats/effect/IO$.delay',2,0,0)
f(12,352,2,2,'cats/effect/Thunk$.asFunction0',2,0,0)
f(10,354,26,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',26,0,0)
f(11,354,26,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',26,0,0)
f(12,354,25,2,'cats/effect/IO$$$Lambda$107.0x0000000800d7fd38.<init>',25,0,0)
f(13,355,24,2,'java/lang/Object.<init>',24,0,0)
f(12,379,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(7,380,1,2,'cats/syntax/AllSyntaxBinCompat.toFlatMapOps',1,0,0)
f(8,380,1,2,'cats/FlatMap$ToFlatMapOps.toFlatMapOps$',1,0,0)
f(9,380,1,2,'cats/FlatMap$ToFlatMapOps.toFlatMapOps',1,0,0)
f(7,381,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(8,381,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(9,381,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(5,382,27,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$108.0x0000000800d80000.apply')
f(6,387,22,2,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2$$anonfun$1',21,0,0)
f(7,387,8,2,'cats/effect/kernel/SyncRef.modify',7,0,0)
f(8,388,5,2,'cats/effect/IO$$anon$2.delay',4,0,0)
f(9,388,5,2,'cats/effect/IO$$anon$2.delay',4,0,0)
f(10,388,5,2,'cats/effect/IO$.apply',4,0,0)
f(11,388,5,2,'cats/effect/IO$.delay',4,0,0)
f(12,388,4,2,'cats/effect/IO$Delay$.apply',3,0,0)
f(13,391,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(14,391,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(15,391,1,4,'MemAllocator::allocate() const')
f(16,391,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(12,392,1,2,'cats/effect/Thunk$.asFunction0',1,0,0)
f(8,393,2,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',2,0,0)
f(9,393,2,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',2,0,0)
f(10,393,2,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',2,0,0)
f(7,395,8,2,'cats/syntax/FlattenOps$.flatten$extension',8,0,0)
f(8,396,7,2,'cats/effect/IO$$anon$2.flatten',7,0,0)
f(9,396,7,2,'cats/FlatMap.flatten$',7,0,0)
f(10,396,7,2,'cats/FlatMap.flatten',7,0,0)
f(11,396,7,2,'cats/effect/IO$$anon$2.flatMap',7,0,0)
f(12,396,7,2,'cats/effect/IO$$anon$2.flatMap',7,0,0)
f(13,396,7,2,'cats/effect/IO.flatMap',7,0,0)
f(14,396,7,2,'cats/effect/IO$FlatMap$.apply',7,0,0)
f(7,403,6,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',6,0,0)
f(8,403,6,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d74c00.newInvokeSpecial',6,0,0)
f(9,403,2,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d80840.<init>',2,0,0)
f(9,405,4,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',4,0,0)
f(5,409,19,1,'cats/effect/std/Queue$AbstractQueue$$Lambda$111.0x0000000800d80fe0.apply')
f(6,415,13,2,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2$$anonfun$1',13,0,0)
f(7,416,3,2,'cats/effect/kernel/SyncRef.modify',3,0,0)
f(8,416,1,2,'cats/effect/IO$$anon$2.delay',1,0,0)
f(9,416,1,2,'cats/effect/IO$$anon$2.delay',1,0,0)
f(10,416,1,2,'cats/effect/IO$.apply',1,0,0)
f(11,416,1,2,'cats/effect/IO$.delay',1,0,0)
f(12,416,1,2,'cats/effect/IO$Delay$.apply',1,0,0)
f(8,417,2,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',2,0,0)
f(9,417,2,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',2,0,0)
f(10,417,2,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',2,0,0)
f(7,419,8,2,'cats/syntax/FlattenOps$.flatten$extension',8,0,0)
f(8,419,8,2,'cats/effect/IO$$anon$2.flatten',8,0,0)
f(9,419,8,2,'cats/FlatMap.flatten$',8,0,0)
f(10,419,8,2,'cats/FlatMap.flatten',8,0,0)
f(11,419,8,2,'cats/effect/IO$$anon$2.flatMap',8,0,0)
f(12,419,8,2,'cats/effect/IO$$anon$2.flatMap',8,0,0)
f(13,419,8,2,'cats/effect/IO.flatMap',8,0,0)
f(14,419,8,2,'cats/effect/IO$FlatMap$.apply',8,0,0)
f(15,426,1,2,'cats/effect/IO$FlatMap.<init>',1,0,0)
f(7,427,1,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d85c00.linkToTargetMethod',1,0,0)
f(8,427,1,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d85400.newInvokeSpecial',1,0,0)
f(9,427,1,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(5,428,19,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$97.0x0000000800d79840.apply',19,0,0)
f(6,428,19,2,'cats/effect/std/Queue$AbstractQueue.$init$$$anonfun$2',19,0,0)
f(7,432,7,2,'cats/effect/IO$$anon$2.deferred',7,0,0)
f(8,432,7,2,'cats/effect/IO$$anon$2.deferred',7,0,0)
f(9,432,7,2,'cats/effect/IO$.deferred',7,0,0)
f(10,434,5,2,'cats/effect/IO$.apply',5,0,0)
f(11,434,5,2,'cats/effect/IO$.delay',5,0,0)
f(12,436,3,2,'cats/effect/IO$Delay$.apply',3,0,0)
f(13,436,3,2,'cats/effect/IO$Delay.<init>',3,0,0)
f(14,438,1,2,'cats/effect/IO.<init>',1,0,0)
f(15,438,1,2,'cats/effect/IOPlatform.<init>',1,0,0)
f(16,438,1,2,'java/lang/Object.<init>',1,0,0)
f(7,439,5,2,'cats/syntax/AllSyntaxBinCompat.toFlatMapOps',5,0,0)
f(8,439,5,2,'cats/FlatMap$ToFlatMapOps.toFlatMapOps$',5,0,0)
f(9,439,5,2,'cats/FlatMap$ToFlatMapOps.toFlatMapOps',5,0,0)
f(10,441,3,2,'cats/FlatMap$ToFlatMapOps$$anon$2.<init>',3,0,0)
f(11,443,1,2,'java/lang/Object.<init>',1,0,0)
f(7,444,3,2,'java/lang/invoke/LambdaForm$MH.0x0000000800d84c00.linkToTargetMethod',3,0,0)
f(8,444,3,2,'java/lang/invoke/LambdaForm$DMH.0x0000000800d84400.newInvokeSpecial',3,0,0)
f(5,447,13,3,'itable stub')
f(5,460,23,3,'vtable stub')
f(3,483,6,1,'cats/effect/IOFiber.execR')
f(4,483,6,1,'cats/effect/IOFiber.runLoop')
f(5,484,2,1,'cats/effect/IOFiber.succeeded')
f(6,484,1,1,'kyo/bench/EnqueueDequeueBench$$Lambda$110.0x0000000800d80c10.apply')
f(7,484,1,2,'kyo/bench/EnqueueDequeueBench.loop$1$$anonfun$1$$anonfun$1',1,0,0)
f(8,484,1,2,'kyo/bench/EnqueueDequeueBench.loop$1',1,0,0)
f(9,484,1,2,'cats/effect/IO.flatMap',1,0,0)
f(10,484,1,2,'cats/effect/IO$FlatMap$.apply',1,0,0)
f(6,485,1,1,'kyo/bench/EnqueueDequeueBench$$Lambda$44.0x0000000800d1e3d0.apply')
f(5,486,1,1,'cats/effect/kernel/SyncRef$$Lambda$99.0x0000000800d7b2c8.apply')
f(6,486,1,2,'cats/effect/kernel/SyncRef.modify$$anonfun$1',1,0,0)
f(7,486,1,2,'cats/effect/kernel/SyncRef.spin$4',1,0,0)
f(8,486,1,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$109.0x0000000800d80840.apply',1,0,0)
f(9,486,1,2,'cats/effect/std/Queue$AbstractQueue.$anonfun$11',1,0,0)
f(10,486,1,2,'cats/effect/std/Queue$State._2',1,0,0)
f(11,486,1,2,'cats/effect/std/Queue$State.size',1,0,0)
f(5,487,1,2,'cats/effect/std/Queue$AbstractQueue$$Lambda$105.0x0000000800d7ee30.apply',1,0,0)
f(6,487,1,2,'cats/effect/std/Queue$AbstractQueue.offer$$anonfun$2',1,0,0)
f(7,487,1,2,'cats/effect/IO$$anon$2.deferred',1,0,0)
f(8,487,1,2,'cats/effect/IO$$anon$2.deferred',1,0,0)
f(9,487,1,2,'cats/effect/IO$.deferred',1,0,0)
f(10,487,1,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',1,0,0)
f(11,487,1,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',1,0,0)
f(12,487,1,2,'cats/effect/IO$$$Lambda$107.0x0000000800d7fd38.<init>',1,0,0)
f(13,487,1,2,'java/lang/Object.<init>',1,0,0)
f(5,488,1,3,'itable stub')
f(2,489,1,2,'cats/effect/unsafe/ScalQueue.poll',1,0,0)
f(3,489,1,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',1,0,0)
f(4,489,1,2,'java/util/concurrent/ConcurrentLinkedQueue.updateHead',1,0,0)
f(5,489,1,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',1,0,0)
f(6,489,1,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',1,0,0)
f(1,490,1,1,'java/lang/Thread.run')
f(2,490,1,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,490,1,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,490,1,1,'java/util/concurrent/FutureTask.run')
f(5,490,1,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,490,1,1,'java/util/concurrent/FutureTask.run')
f(7,490,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,490,1,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,490,1,1,'java/lang/reflect/Method.invoke')
f(10,490,1,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,490,1,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,490,1,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_syncCats_jmhTest.syncCats_Throughput')
f(13,490,1,1,'kyo/bench/jmh_generated/EnqueueDequeueBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,490,1,1,'kyo/bench/Bench.syncCats')
f(15,490,1,2,'kyo/bench/EnqueueDequeueBench.catsBench',1,0,0)
f(16,490,1,2,'cats/effect/std/Queue$.bounded',1,0,0)
f(17,490,1,2,'cats/effect/std/Queue$.boundedForConcurrent',1,0,0)
f(18,490,1,2,'cats/effect/IO$$anon$2.ref',1,0,0)
f(19,490,1,2,'cats/effect/IO$$anon$2.ref',1,0,0)
f(20,490,1,2,'cats/effect/IO$.ref',1,0,0)
f(21,490,1,2,'cats/effect/IO$.apply',1,0,0)
f(22,490,1,2,'cats/effect/IO$.delay',1,0,0)
f(23,490,1,2,'cats/effect/IO$Delay$.apply',1,0,0)
f(24,490,1,2,'cats/effect/IO$Delay.<init>',1,0,0)
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,32109,3,'all')
f(1,0,30836,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,30836,1,'cats/effect/IOFiber.run')
f(3,0,1,1,'cats/effect/IOFiber.asyncContinueSuccessfulR')
f(4,0,1,1,'cats/effect/IOFiber.succeeded')
f(5,0,1,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,0,1,1,'cats/effect/IOFiber.done')
f(7,0,1,1,'cats/effect/CallbackStack.apply')
f(8,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(9,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(10,0,1,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c530.applyVoid')
f(11,0,1,1,'cats/effect/IO.$anonfun$6')
f(12,0,1,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(13,0,1,1,'cats/effect/kernel/Outcome.fold$')
f(14,0,1,1,'cats/effect/kernel/Outcome.fold')
f(15,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(16,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(17,0,1,1,'cats/effect/IO$$Lambda$114.0x0000000800d7aca0.applyVoid')
f(18,0,1,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(19,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(20,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(21,0,1,1,'cats/effect/IO$$Lambda$89.0x0000000800d57240.applyVoid')
f(22,0,1,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(23,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(24,0,1,1,'scala/runtime/function/JProcedure1.apply')
f(25,0,1,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d56770.applyVoid')
f(26,0,1,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(27,0,1,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(28,0,1,1,'java/util/concurrent/ArrayBlockingQueue.enqueue')
f(29,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(30,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(31,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(32,0,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(33,0,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(3,1,14200,1,'cats/effect/IOFiber.autoCedeR')
f(4,1,14200,1,'cats/effect/IOFiber.runLoop')
f(5,1,3843,2,'cats.effect.IOFiber')
f(5,3844,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$109.0x0000000800d62988.apply')
f(6,3844,1,1,'cats/effect/IODeferred$$anon$1.apply$$anonfun$1$$anonfun$1')
f(7,3844,1,1,'cats/effect/IO$.apply')
f(8,3844,1,1,'cats/effect/IO$.delay')
f(9,3844,1,1,'cats/effect/IO$Delay$.apply')
f(10,3844,1,2,'cats.effect.IO$Delay')
f(5,3845,8028,1,'cats/effect/IOFiber.<init>')
f(6,3845,2179,1,'cats/effect/ArrayStack$.apply')
f(7,3845,2179,2,'cats.effect.ArrayStack')
f(6,6024,1224,1,'cats/effect/CallbackStack$.apply')
f(7,6024,1224,2,'cats.effect.CallbackStack')
f(6,7248,1818,1,'cats/effect/IO$.async')
f(7,7248,651,2,'cats.effect.IO$$anon$3')
f(7,7899,1167,1,'cats/effect/IO$IOCont$.apply')
f(8,7899,1167,2,'cats.effect.IO$IOCont')
f(6,9066,1097,1,'cats/effect/IO$.uncancelable')
f(7,9066,1097,1,'cats/effect/IO$Uncancelable$.apply')
f(8,9066,1097,2,'cats.effect.IO$Uncancelable')
f(6,10163,1710,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,10163,1710,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,10163,1710,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,10163,864,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5d160')
f(9,11027,846,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d750')
f(5,11873,6,1,'cats/effect/IOFiber.scheduleFiber')
f(6,11873,6,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(7,11873,6,1,'cats/effect/unsafe/WorkerThread.schedule')
f(8,11873,6,1,'cats/effect/unsafe/LocalQueue.enqueue')
f(9,11873,2,2,'java.lang.Runnable[][]')
f(9,11875,4,2,'java.lang.Runnable[]')
f(5,11879,2322,1,'cats/effect/IOFiber.succeeded')
f(6,11879,2321,1,'kyo/bench/ForkManyBench$$Lambda$102.0x0000000800d5b7d8.apply')
f(7,11879,2321,1,'kyo/bench/ForkManyBench.repeat$1$$anonfun$1')
f(8,11879,2321,1,'kyo/bench/ForkManyBench.repeat$1')
f(9,11879,1152,1,'cats/effect/IO.flatMap')
f(10,11879,1152,1,'cats/effect/IO$FlatMap$.apply')
f(11,11879,1152,2,'cats.effect.IO$FlatMap')
f(9,13031,1169,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,13031,1169,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d59400.newInvokeSpecial')
f(11,13031,1169,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,13031,1169,2,'kyo.bench.ForkManyBench$$Lambda$102+0x0000000800d5b7d8')
f(6,14200,1,1,'kyo/bench/ForkManyBench$$Lambda$103.0x0000000800d5bba8.apply')
f(7,14200,1,1,'kyo/bench/ForkManyBench.catsBench$$anonfun$1$$anonfun$2$$anonfun$1')
f(8,14200,1,1,'cats/effect/IODeferred.get')
f(9,14200,1,1,'cats/effect/IODeferred.get')
f(10,14200,1,1,'cats/effect/IO$.defer')
f(11,14200,1,1,'cats/effect/IO.flatten')
f(12,14200,1,1,'cats/effect/IO.flatMap')
f(13,14200,1,1,'cats/effect/IO$FlatMap$.apply')
f(14,14200,1,2,'cats.effect.IO$FlatMap')
f(3,14201,703,1,'cats/effect/IOFiber.cedeR')
f(4,14201,701,1,'cats/effect/IOFiber.runLoop')
f(5,14201,159,2,'cats.effect.IOFiber')
f(5,14360,1,1,'cats/effect/IO$$$Lambda$94.0x0000000800d5ec88.apply')
f(6,14360,1,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,14360,1,1,'cats/effect/IODeferred.<init>')
f(8,14360,1,2,'java.util.concurrent.atomic.AtomicReference')
f(5,14361,428,1,'cats/effect/IOFiber.<init>')
f(6,14361,118,1,'cats/effect/ArrayStack$.apply')
f(7,14361,118,2,'cats.effect.ArrayStack')
f(6,14479,61,1,'cats/effect/CallbackStack$.apply')
f(7,14479,61,2,'cats.effect.CallbackStack')
f(6,14540,113,1,'cats/effect/IO$.async')
f(7,14540,46,2,'cats.effect.IO$$anon$3')
f(7,14586,67,1,'cats/effect/IO$IOCont$.apply')
f(8,14586,67,2,'cats.effect.IO$IOCont')
f(6,14653,58,1,'cats/effect/IO$.uncancelable')
f(7,14653,58,1,'cats/effect/IO$Uncancelable$.apply')
f(8,14653,58,2,'cats.effect.IO$Uncancelable')
f(6,14711,78,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,14711,78,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,14711,78,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,14711,43,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5d160')
f(9,14754,35,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d750')
f(5,14789,113,1,'cats/effect/IOFiber.succeeded')
f(6,14789,113,1,'kyo/bench/ForkManyBench$$Lambda$102.0x0000000800d5b7d8.apply')
f(7,14789,113,1,'kyo/bench/ForkManyBench.repeat$1$$anonfun$1')
f(8,14789,113,1,'kyo/bench/ForkManyBench.repeat$1')
f(9,14789,50,1,'cats/effect/IO.flatMap')
f(10,14789,50,1,'cats/effect/IO$FlatMap$.apply')
f(11,14789,50,2,'cats.effect.IO$FlatMap')
f(9,14839,63,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,14839,63,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d59400.newInvokeSpecial')
f(11,14839,63,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,14839,63,2,'kyo.bench.ForkManyBench$$Lambda$102+0x0000000800d5b7d8')
f(4,14902,2,1,'cats/effect/IOFiber.succeeded')
f(5,14902,2,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8dd88.apply')
f(6,14902,2,1,'kyo/bench/Bench.forkCats$$anonfun$1')
f(7,14902,2,1,'kyo/bench/ForkManyBench.catsBench')
f(8,14902,1,1,'cats/effect/IO$.deferred')
f(9,14902,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,14902,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(11,14902,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,14902,1,2,'cats.effect.IO$$$Lambda$94+0x0000000800d5ec88')
f(8,14903,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(9,14903,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(10,14903,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(11,14903,1,2,'kyo.bench.ForkManyBench$$Lambda$96+0x0000000800d5f740')
f(3,14904,15932,1,'cats/effect/IOFiber.execR')
f(4,14904,7985,1,'cats/effect/ArrayStack.init')
f(5,14904,7985,2,'java.lang.Object[]')
f(4,22889,1910,1,'cats/effect/ByteStack$.create')
f(5,22889,1910,2,'int[]')
f(4,24799,6037,1,'cats/effect/IOFiber.runLoop')
f(5,24799,2098,1,'cats/effect/IOFiber.succeeded')
f(6,24799,2098,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,24799,578,1,'cats/effect/IO$.pure')
f(8,24799,578,1,'cats/effect/IO$Pure$.apply')
f(9,24799,578,2,'cats.effect.IO$Pure')
f(7,25377,829,1,'cats/effect/IOFiber.done')
f(8,25377,829,1,'cats/effect/IO$.pure')
f(9,25377,829,1,'cats/effect/IO$Pure$.apply')
f(10,25377,829,2,'cats.effect.IO$Pure')
f(7,26206,691,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,26206,691,2,'cats.effect.kernel.Outcome$Succeeded')
f(5,26897,3939,1,'cats/effect/kernel/SyncRef$$Lambda$101.0x0000000800d5b2f8.apply')
f(6,26897,3939,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,26897,3939,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,26897,3939,1,'kyo/bench/ForkManyBench$$Lambda$100.0x0000000800d5af28.apply')
f(9,26897,3939,1,'kyo/bench/ForkManyBench.$anonfun$adapted$1')
f(10,26897,3939,1,'kyo/bench/ForkManyBench.$anonfun$1')
f(11,26897,1,1,'cats/effect/IODeferred.complete')
f(12,26897,1,1,'cats/effect/IODeferred.complete')
f(13,26897,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(14,26897,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(15,26897,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(16,26897,1,2,'cats.effect.IODeferred$$Lambda$105+0x0000000800d60688')
f(11,26898,2257,1,'scala/Tuple2$.apply')
f(12,26898,2257,2,'scala.Tuple2')
f(11,29155,1681,1,'scala/runtime/BoxesRunTime.boxToInteger')
f(12,29155,1681,1,'java/lang/Integer.valueOf')
f(13,29155,1681,2,'java.lang.Integer')
f(1,30836,1,2,'java.lang.String')
f(1,30837,1249,1,'java/lang/Thread.run')
f(2,30837,1249,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,30837,1249,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,30837,1249,1,'java/util/concurrent/FutureTask.run')
f(5,30837,1248,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,30837,1248,1,'java/util/concurrent/FutureTask.run')
f(7,30837,1248,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,30837,1248,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,30837,1248,1,'java/lang/reflect/Method.invoke')
f(10,30837,1248,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,30837,1248,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,30837,1248,1,'kyo/bench/jmh_generated/ForkManyBench_forkCats_jmhTest.forkCats_Throughput')
f(13,30837,1247,1,'kyo/bench/jmh_generated/ForkManyBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,30837,1247,1,'kyo/bench/Bench.forkCats')
f(15,30837,3,1,'cats/effect/IO.flatMap')
f(16,30837,3,1,'cats/effect/IO$FlatMap$.apply')
f(17,30837,3,2,'cats.effect.IO$FlatMap')
f(15,30840,1238,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,30840,1096,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,30840,631,1,'cats/effect/IO.unsafeRunAsync')
f(18,30840,509,1,'cats/effect/IO.unsafeRunFiber')
f(19,30840,123,2,'cats.effect.IOFiber')
f(19,30963,2,5,'cats.effect.IOFiber')
f(19,30965,281,1,'cats/effect/IOFiber.<init>')
f(20,30965,140,1,'cats/effect/ArrayStack$.apply')
f(21,30965,140,2,'cats.effect.ArrayStack')
f(20,31105,8,1,'cats/effect/CallbackStack$.apply')
f(21,31105,8,2,'cats.effect.CallbackStack')
f(20,31113,23,1,'cats/effect/IO$.async')
f(21,31113,7,2,'cats.effect.IO$$anon$3')
f(21,31120,16,1,'cats/effect/IO$IOCont$.apply')
f(22,31120,16,2,'cats.effect.IO$IOCont')
f(20,31136,92,1,'cats/effect/IO$.uncancelable')
f(21,31136,92,1,'cats/effect/IO$Uncancelable$.apply')
f(22,31136,92,2,'cats.effect.IO$Uncancelable')
f(20,31228,18,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,31228,18,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,31228,18,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,31228,16,2,'cats.effect.IOFiber$$Lambda$91+0x0000000800d5d160')
f(23,31244,2,2,'cats.effect.IOFiber$$Lambda$92+0x0000000800d5d750')
f(19,31246,92,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,31246,92,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,31246,92,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,31246,92,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,31246,92,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,31338,11,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,31338,11,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58c00.newInvokeSpecial')
f(21,31338,11,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,31338,11,2,'cats.effect.IO$$Lambda$90+0x0000000800d5c530')
f(18,31349,122,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,31349,122,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,31349,122,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,31349,26,2,'cats.effect.IO$$Lambda$87+0x0000000800d56b78')
f(21,31375,96,2,'cats.effect.IO$$Lambda$88+0x0000000800d56e38')
f(17,31471,17,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,31488,22,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,31488,22,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,31488,22,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,31488,14,2,'cats.effect.IOPlatform$$Lambda$86+0x0000000800d56770')
f(20,31502,8,2,'cats.effect.IOPlatform$$Lambda$93+0x0000000800d5df28')
f(17,31510,273,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,31510,273,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,31510,128,2,'java.lang.Object[]')
f(19,31638,16,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,31638,16,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,31654,129,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,31654,129,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,31654,129,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,31783,28,1,'scala/concurrent/package$.blocking')
f(18,31783,28,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,31783,28,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5df28.apply')
f(20,31783,28,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,31783,28,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,31783,28,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,31783,28,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,31811,125,1,'scala/util/Either.fold')
f(18,31811,125,1,'cats/effect/IOPlatform$$Lambda$116.0x0000000800d7b748.apply')
f(19,31811,125,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,31811,125,1,'scala/Some$.apply')
f(21,31811,125,2,'scala.Some')
f(16,31936,142,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,31936,142,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,31936,142,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,31936,142,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,31936,142,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,31936,142,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,31936,142,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,31936,142,2,'scala.concurrent.duration.FiniteDuration')
f(15,32078,6,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(16,32078,6,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(17,32078,6,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(18,32078,6,2,'kyo.bench.Bench$$Lambda$39+0x0000000800c8dd88')
f(13,32084,1,1,'org/openjdk/jmh/results/BenchmarkTaskResult.add')
f(14,32084,1,1,'java/util/ArrayList.add')
f(15,32084,1,1,'java/util/ArrayList.add')
f(16,32084,1,1,'java/util/ArrayList.grow')
f(17,32084,1,1,'java/util/ArrayList.grow')
f(18,32084,1,5,'java.lang.Object[]')
f(5,32085,1,1,'java/util/concurrent/FutureTask.set')
f(6,32085,1,1,'java/util/concurrent/FutureTask.finishCompletion')
f(7,32085,1,1,'java/util/concurrent/ExecutorCompletionService$QueueingFuture.done')
f(8,32085,1,1,'java/util/AbstractQueue.add')
f(9,32085,1,1,'java/util/concurrent/LinkedBlockingQueue.offer')
f(10,32085,1,1,'java/util/concurrent/LinkedBlockingQueue.signalNotEmpty')
f(11,32085,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.signal')
f(12,32085,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.doSignal')
f(13,32085,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.enqueue')
f(14,32085,1,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.tryInitializeHead')
f(15,32085,1,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ExclusiveNode')
f(1,32086,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,32086,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,32086,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,32086,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,32086,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,32086,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,32086,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,32086,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,32086,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,32086,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,32086,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,32086,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,32086,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,32086,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,32086,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,32086,1,2,'java.lang.Object[]')
f(7,32087,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,32087,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,32087,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,32090,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,32090,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,32090,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,32090,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,32090,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,32090,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,32095,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,32095,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,32095,3,1,'java/lang/ClassLoader.loadClass')
f(10,32095,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,32095,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,32095,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,32095,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,32095,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,32095,1,1,'java/security/CodeSource.<init>')
f(16,32095,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,32095,1,1,'java/lang/StringBuilder.append')
f(18,32095,1,1,'java/lang/AbstractStringBuilder.append')
f(19,32095,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,32095,1,1,'java/util/Arrays.copyOf')
f(21,32095,1,2,'byte[]')
f(15,32096,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,32096,1,1,'java/util/Arrays.copyOf')
f(17,32096,1,5,'byte[]')
f(14,32097,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,32097,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,32097,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,32097,1,1,'java/net/URL.<init>')
f(18,32097,1,1,'java/net/URL.<init>')
f(19,32097,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,32097,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,32097,1,1,'java/lang/StringBuilder.toString')
f(22,32097,1,1,'java/lang/StringLatin1.newString')
f(23,32097,1,2,'java.lang.String')
f(9,32098,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,32098,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,32098,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,32098,11,1,'java/io/ObjectStreamClass.lookup')
f(13,32098,11,1,'java/io/ObjectStreamClass.<init>')
f(14,32098,11,1,'java/security/AccessController.doPrivileged')
f(15,32098,11,1,'java/security/AccessController.executePrivileged')
f(16,32098,11,1,'java/io/ObjectStreamClass$2.run')
f(17,32098,11,1,'java/io/ObjectStreamClass$2.run')
f(18,32098,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,32098,2,1,'java/lang/Class.getDeclaredMethod')
f(20,32098,1,1,'java/lang/Class.methodToString')
f(21,32098,1,1,'java/lang/StringBuilder.append')
f(22,32098,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32098,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32098,1,1,'java/util/Arrays.copyOf')
f(25,32098,1,2,'byte[]')
f(20,32099,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32099,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32099,1,1,'java/lang/Exception.<init>')
f(23,32099,1,1,'java/lang/Throwable.<init>')
f(24,32099,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32099,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32099,1,2,'short[]')
f(18,32100,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,32100,3,1,'java/lang/Class.getDeclaredMethod')
f(20,32100,2,1,'java/lang/Class.methodToString')
f(21,32100,1,1,'java/lang/StringBuilder.append')
f(22,32100,1,1,'java/lang/AbstractStringBuilder.append')
f(23,32100,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,32100,1,1,'java/util/Arrays.copyOf')
f(25,32100,1,2,'byte[]')
f(21,32101,1,1,'java/lang/StringBuilder.toString')
f(22,32101,1,1,'java/lang/StringLatin1.newString')
f(23,32101,1,1,'java/util/Arrays.copyOfRange')
f(24,32101,1,2,'byte[]')
f(20,32102,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,32102,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,32102,1,1,'java/lang/Exception.<init>')
f(23,32102,1,1,'java/lang/Throwable.<init>')
f(24,32102,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,32102,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32102,1,5,'long[]')
f(18,32103,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,32103,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,32103,1,1,'java/lang/Class.getDeclaredField')
f(21,32103,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,32103,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,32103,1,1,'java/lang/Exception.<init>')
f(24,32103,1,1,'java/lang/Throwable.<init>')
f(25,32103,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,32103,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,32103,1,2,'long[]')
f(18,32104,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,32104,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,32104,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,32104,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,32104,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,32104,1,1,'java/security/AccessController.doPrivileged')
f(24,32104,1,1,'java/security/AccessController.executePrivileged')
f(25,32104,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,32104,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,32104,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,32104,1,1,'java/security/AccessController.doPrivileged')
f(29,32104,1,1,'java/security/AccessController.executePrivileged')
f(30,32104,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,32104,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,32104,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,32104,1,1,'java/lang/ClassLoader.<init>')
f(34,32104,1,1,'java/lang/ClassLoader.<init>')
f(35,32104,1,1,'java/lang/ClassLoader.nameAndId')
f(36,32104,1,1,'java/lang/StringBuilder.<init>')
f(37,32104,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,32104,1,2,'byte[]')
f(23,32105,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,32105,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32105,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32105,1,2,'byte[]')
f(23,32106,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,32106,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,32106,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,32106,1,2,'byte[]')
f(23,32107,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,32107,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,32107,1,1,'java/lang/String.replace')
f(26,32107,1,1,'java/lang/StringLatin1.replace')
f(27,32107,1,2,'java.lang.String')
f(23,32108,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,32108,1,5,'byte[]')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 656px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(41);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,1867,3,'all')
f(1,0,2,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,2,3,'thread_native_entry(Thread*)')
f(3,0,2,4,'Thread::call_run()')
f(4,0,1,4,'JavaThread::thread_main_inner()')
f(5,0,1,4,'CompileBroker::compiler_thread_loop()')
f(6,0,1,4,'CompileBroker::invoke_compiler_on_method(CompileTask*)')
f(7,0,1,4,'C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)')
f(8,0,1,4,'Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, bool, DirectiveSet*)')
f(9,0,1,4,'Compile::Code_Gen()')
f(10,0,1,4,'Matcher::match()')
f(11,0,1,4,'Matcher::find_shared(Node*)')
f(12,0,1,4,'Matcher::is_vshift_con_pattern(Node*, Node*)')
f(4,1,1,4,'VMThread::run()')
f(5,1,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,1,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,1,1,4,'VM_Operation::evaluate()')
f(8,1,1,4,'VM_G1CollectForAllocation::doit()')
f(9,1,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,1,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,1,1,4,'G1CollectedHeap::post_evacuate_collection_set(G1EvacuationInfo&, G1RedirtyCardsQueueSet*, G1ParScanThreadStateSet*)')
f(12,1,1,4,'HeapRegionManager::rebuild_free_list(WorkGang*)')
f(13,1,1,4,'WorkGang::run_task(AbstractGangTask*, unsigned int, bool)')
f(14,1,1,3,'sem_post')
f(15,1,1,5,'entry_SYSCALL_64_after_hwframe')
f(16,1,1,5,'do_syscall_64')
f(17,1,1,5,'__x64_sys_futex')
f(18,1,1,5,'do_futex')
f(19,1,1,5,'futex_wake')
f(20,1,1,5,'wake_up_q')
f(21,1,1,5,'_raw_spin_unlock_irqrestore')
f(1,2,17,3,'[unknown_Java]')
f(2,2,3,6,'cats/effect/IO$Delay.tag',0,3,0)
f(2,5,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(2,7,2,6,'cats/effect/IO$Pure.value',0,2,0)
f(2,9,4,6,'cats/effect/IO$Start.tag',0,4,0)
f(2,13,2,1,'cats/effect/IOFiber.<init>')
f(2,15,2,1,'cats/effect/IOFiber.succeeded')
f(2,17,2,1,'cats/effect/unsafe/LocalQueue.enqueue')
f(1,19,1845,1,'cats/effect/unsafe/WorkerThread.run')
f(2,22,1488,1,'cats/effect/IOFiber.run',17,0,0)
f(3,23,7,2,'cats/effect/IOFiber.asyncContinueSuccessfulR',4,0,0)
f(4,26,1,2,'cats/effect/ArrayStack.pop',1,0,0)
f(4,27,3,1,'cats/effect/IOFiber.succeeded')
f(5,27,3,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(6,27,3,1,'cats/effect/IOFiber.done')
f(7,27,3,1,'cats/effect/CallbackStack.apply')
f(8,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(9,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(10,27,3,1,'cats/effect/IO$$Lambda$90.0x0000000800d5c530.applyVoid')
f(11,27,3,1,'cats/effect/IO.$anonfun$6')
f(12,27,3,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(13,27,3,1,'cats/effect/kernel/Outcome.fold$')
f(14,27,3,1,'cats/effect/kernel/Outcome.fold')
f(15,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(16,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(17,27,3,1,'cats/effect/IO$$Lambda$109.0x0000000800d61010.applyVoid')
f(18,27,3,1,'cats/effect/IO.$anonfun$6$$anonfun$3')
f(19,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(20,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(21,27,3,1,'cats/effect/IO$$Lambda$89.0x0000000800d57240.applyVoid')
f(22,27,3,1,'cats/effect/IO.unsafeRunAsync$$anonfun$3')
f(23,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(24,27,3,1,'scala/runtime/function/JProcedure1.apply')
f(25,27,3,1,'cats/effect/IOPlatform$$Lambda$86.0x0000000800d56770.applyVoid')
f(26,27,3,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$1')
f(27,27,3,1,'java/util/concurrent/ArrayBlockingQueue.offer')
f(28,27,3,1,'java/util/concurrent/locks/ReentrantLock.unlock')
f(29,27,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.release')
f(30,27,3,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.signalNext')
f(31,27,3,1,'java/util/concurrent/locks/LockSupport.unpark')
f(32,27,3,1,'jdk/internal/misc/Unsafe.unpark')
f(33,27,3,3,'pthread_cond_signal')
f(34,27,3,5,'entry_SYSCALL_64_after_hwframe')
f(35,27,3,5,'do_syscall_64')
f(36,27,3,5,'__x64_sys_futex')
f(37,27,3,5,'do_futex')
f(38,27,3,5,'futex_wake')
f(39,27,3,5,'wake_up_q')
f(40,27,3,5,'_raw_spin_unlock_irqrestore')
f(3,30,321,1,'cats/effect/IOFiber.autoCedeR')
f(4,30,321,1,'cats/effect/IOFiber.runLoop')
f(5,41,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(6,41,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(7,41,1,4,'MemAllocator::allocate() const')
f(5,42,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(5,44,6,6,'cats/effect/IO$Start.tag',0,6,0)
f(5,50,79,1,'cats/effect/IOFiber.<init>')
f(6,114,4,2,'cats/effect/CallbackStack$.apply',4,0,0)
f(6,118,4,2,'cats/effect/IO$.async',4,0,0)
f(7,121,1,2,'cats/effect/IO$IOCont$.apply',1,0,0)
f(6,122,3,2,'cats/effect/IO$.uncancelable',3,0,0)
f(7,122,3,2,'cats/effect/IO$Uncancelable$.apply',3,0,0)
f(6,125,4,2,'java/lang/invoke/Invokers$Holder.linkToTargetMethod',3,0,0)
f(7,125,4,2,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial',3,0,0)
f(8,125,2,2,'cats/effect/IOFiber$$Lambda$91.0x0000000800d5d160.<init>',2,0,0)
f(8,127,2,2,'java/lang/invoke/DirectMethodHandle.allocateInstance',1,0,0)
f(9,128,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(10,128,1,4,'InstanceKlass::allocate_instance(JavaThread*)')
f(11,128,1,4,'MemAllocator::allocate() const')
f(12,128,1,4,'MemAllocator::allocate_inside_tlab_slow(MemAllocator::Allocation&) const')
f(13,128,1,4,'G1CollectedHeap::allocate_new_tlab(unsigned long, unsigned long, unsigned long*)')
f(14,128,1,4,'G1CollectedHeap::attempt_allocation_slow(unsigned long)')
f(15,128,1,4,'G1CollectedHeap::retire_mutator_alloc_region(HeapRegion*, unsigned long)')
f(5,129,21,2,'cats/effect/IOFiber.rescheduleFiber',21,0,0)
f(6,129,21,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',21,0,0)
f(7,129,21,2,'cats/effect/unsafe/WorkerThread.reschedule',21,0,0)
f(8,129,9,2,'cats/effect/unsafe/LocalQueue.isEmpty',9,0,0)
f(9,130,8,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',8,0,0)
f(10,135,3,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.accessCheck',3,0,0)
f(8,138,12,2,'cats/effect/unsafe/WorkerThread.schedule',12,0,0)
f(9,148,2,2,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked',2,0,0)
f(5,150,109,1,'cats/effect/IOFiber.scheduleFiber')
f(6,150,109,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(7,150,109,1,'cats/effect/unsafe/WorkerThread.schedule')
f(8,150,30,1,'cats/effect/unsafe/LocalQueue.enqueue')
f(9,168,1,2,'cats/effect/unsafe/LocalQueue.index',1,0,0)
f(9,169,3,2,'cats/effect/unsafe/LocalQueue.msb',3,0,0)
f(9,172,2,2,'cats/effect/unsafe/LocalQueue.unsignedShortAddition',2,0,0)
f(10,172,2,2,'cats/effect/unsafe/LocalQueue.lsb',2,0,0)
f(9,174,4,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',4,0,0)
f(9,178,2,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.lazySet',2,0,0)
f(8,180,79,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(9,180,79,1,'java/util/concurrent/locks/LockSupport.unpark')
f(10,180,79,1,'jdk/internal/misc/Unsafe.unpark')
f(11,180,5,3,'Unsafe_Unpark')
f(12,181,1,4,'ThreadsListHandle::ThreadsListHandle(Thread*)')
f(12,182,1,4,'oopDesc::address_field(int) const')
f(12,183,1,3,'pthread_mutex_lock')
f(12,184,1,3,'pthread_mutex_lock@plt')
f(11,185,74,3,'pthread_cond_signal')
f(12,188,71,5,'entry_SYSCALL_64_after_hwframe')
f(13,188,71,5,'do_syscall_64')
f(14,188,69,5,'__x64_sys_futex')
f(15,188,69,5,'do_futex')
f(16,188,1,5,'_raw_spin_lock')
f(16,189,68,5,'futex_wake')
f(17,189,2,5,'mark_wake_futex')
f(17,191,66,5,'wake_up_q')
f(18,192,65,5,'_raw_spin_unlock_irqrestore')
f(14,257,2,5,'syscall_enter_from_user_mode')
f(5,259,37,1,'cats/effect/IOFiber.succeeded')
f(6,272,2,2,'cats/effect/ByteStack$.pop',2,0,0)
f(7,272,2,2,'cats/effect/ByteStack$.peek',2,0,0)
f(6,274,22,2,'cats/effect/IOFiber.runTerminusSuccessK',22,0,0)
f(7,274,22,2,'cats/effect/IOFiber.done',22,0,0)
f(8,281,5,2,'cats/effect/CallbackStack.clear',5,0,0)
f(9,281,5,2,'java/util/concurrent/atomic/AtomicReference.lazySet',5,0,0)
f(10,281,5,2,'java/lang/invoke/VarHandleGuards.guard_LL_V',5,0,0)
f(11,282,4,2,'java/lang/invoke/VarForm.getMemberName',4,0,0)
f(12,283,3,2,'java/lang/invoke/VarForm.getMemberNameOrNull',3,0,0)
f(8,286,10,2,'cats/effect/IO$.pure',10,0,0)
f(9,286,10,2,'cats/effect/IO$Pure$.apply',10,0,0)
f(10,291,5,2,'cats/effect/IO$Pure.<init>',5,0,0)
f(11,291,5,2,'cats/effect/IO.<init>',5,0,0)
f(5,296,48,2,'cats/effect/kernel/SyncRef$$Lambda$101.0x0000000800d5b2f8.apply',48,0,0)
f(6,296,48,2,'cats/effect/kernel/SyncRef.modify$$anonfun$1',48,0,0)
f(7,296,48,2,'cats/effect/kernel/SyncRef.spin$4',48,0,0)
f(8,296,48,2,'kyo/bench/ForkManyBench$$Lambda$100.0x0000000800d5af28.apply',48,0,0)
f(9,296,48,2,'kyo/bench/ForkManyBench.$anonfun$adapted$1',48,0,0)
f(10,296,48,2,'kyo/bench/ForkManyBench.$anonfun$1',48,0,0)
f(11,296,48,2,'scala/runtime/BoxesRunTime.boxToInteger',48,0,0)
f(5,344,7,3,'vtable stub')
f(3,351,20,1,'cats/effect/IOFiber.cedeR',6,0,0)
f(4,357,13,1,'cats/effect/IOFiber.runLoop')
f(5,357,3,1,'cats/effect/IOFiber.<init>')
f(5,360,2,2,'cats/effect/IOFiber.rescheduleFiber',2,0,0)
f(6,360,2,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',2,0,0)
f(7,360,2,2,'cats/effect/unsafe/WorkerThread.reschedule',2,0,0)
f(8,360,2,2,'cats/effect/unsafe/LocalQueue.isEmpty',2,0,0)
f(9,361,1,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',1,0,0)
f(5,362,3,1,'cats/effect/IOFiber.scheduleFiber')
f(6,362,3,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(7,362,3,1,'cats/effect/unsafe/WorkerThread.schedule')
f(8,362,1,1,'cats/effect/unsafe/LocalQueue.enqueue')
f(8,363,2,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(9,363,2,1,'java/util/concurrent/locks/LockSupport.unpark')
f(10,363,2,1,'jdk/internal/misc/Unsafe.unpark')
f(11,363,1,3,'Unsafe_Unpark')
f(12,363,1,3,'pthread_mutex_lock')
f(11,364,1,3,'pthread_cond_signal')
f(12,364,1,5,'entry_SYSCALL_64_after_hwframe')
f(13,364,1,5,'do_syscall_64')
f(14,364,1,5,'__x64_sys_futex')
f(15,364,1,5,'do_futex')
f(16,364,1,5,'futex_wake')
f(17,364,1,5,'wake_up_q')
f(18,364,1,5,'_raw_spin_unlock_irqrestore')
f(5,365,2,1,'cats/effect/IOFiber.succeeded')
f(6,366,1,2,'cats/effect/IOFiber.runTerminusSuccessK',1,0,0)
f(7,366,1,2,'cats/effect/IOFiber.done',1,0,0)
f(5,367,3,2,'cats/effect/kernel/SyncRef$$Lambda$101.0x0000000800d5b2f8.apply',3,0,0)
f(6,367,3,2,'cats/effect/kernel/SyncRef.modify$$anonfun$1',3,0,0)
f(7,367,3,2,'cats/effect/kernel/SyncRef.spin$4',3,0,0)
f(8,367,3,2,'kyo/bench/ForkManyBench$$Lambda$100.0x0000000800d5af28.apply',3,0,0)
f(9,367,3,2,'kyo/bench/ForkManyBench.$anonfun$adapted$1',3,0,0)
f(10,367,3,2,'kyo/bench/ForkManyBench.$anonfun$1',3,0,0)
f(11,367,3,2,'scala/runtime/BoxesRunTime.boxToInteger',3,0,0)
f(4,370,1,1,'cats/effect/IOFiber.succeeded')
f(5,370,1,1,'kyo/bench/Bench$$Lambda$39.0x0000000800c8dd88.apply')
f(3,371,1139,1,'cats/effect/IOFiber.execR',6,0,0)
f(4,374,3,2,'cats/effect/ArrayStack.init',3,0,0)
f(4,377,1133,1,'cats/effect/IOFiber.runLoop')
f(5,468,5,6,'cats/effect/IO$Delay.tag',0,5,0)
f(5,473,5,6,'cats/effect/IO$FlatMap.tag',0,5,0)
f(5,478,1,6,'cats/effect/IO$Pure.tag',0,1,0)
f(5,479,1,6,'cats/effect/IO$Pure.value',0,1,0)
f(5,480,32,2,'cats/effect/IOFiber.rescheduleFiber',32,0,0)
f(6,480,32,2,'cats/effect/unsafe/WorkStealingThreadPool.reschedule',32,0,0)
f(7,489,23,2,'cats/effect/unsafe/WorkerThread.reschedule',23,0,0)
f(8,490,3,2,'cats/effect/unsafe/LocalQueue.isEmpty',3,0,0)
f(8,493,19,2,'cats/effect/unsafe/WorkerThread.schedule',19,0,0)
f(9,495,17,2,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked',17,0,0)
f(10,495,17,2,'java/util/concurrent/ThreadLocalRandom.nextInt',17,0,0)
f(11,495,17,2,'java/util/Random.nextInt',17,0,0)
f(12,501,11,2,'java/util/concurrent/ThreadLocalRandom.next',11,0,0)
f(13,511,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(14,511,1,2,'java/util/concurrent/ThreadLocalRandom.nextSeed',1,0,0)
f(5,512,127,2,'cats/effect/IOFiber.scheduleFiber',127,0,0)
f(6,515,124,2,'cats/effect/unsafe/WorkStealingThreadPool.execute',124,0,0)
f(7,515,124,2,'cats/effect/unsafe/WorkerThread.schedule',124,0,0)
f(8,516,123,2,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked',123,0,0)
f(9,518,120,2,'cats/effect/unsafe/WorkStealingThreadPool.notifyShouldWakeup',120,0,0)
f(9,638,1,2,'java/util/concurrent/locks/LockSupport.unpark',1,0,0)
f(5,639,91,1,'cats/effect/IOFiber.succeeded')
f(6,673,5,2,'cats/effect/ByteStack$.pop',5,0,0)
f(7,674,4,2,'cats/effect/ByteStack$.peek',4,0,0)
f(6,678,52,2,'cats/effect/IOFiber.runTerminusSuccessK',52,0,0)
f(7,682,17,2,'cats/effect/IO$.pure',17,0,0)
f(8,682,17,2,'cats/effect/IO$Pure$.apply',17,0,0)
f(9,697,2,2,'cats/effect/IO$Pure.<init>',2,0,0)
f(10,697,2,2,'cats/effect/IO.<init>',2,0,0)
f(7,699,29,2,'cats/effect/IOFiber.done',29,0,0)
f(8,706,3,2,'cats/effect/CallbackStack.apply',3,0,0)
f(8,709,6,2,'cats/effect/CallbackStack.clear',6,0,0)
f(9,710,5,2,'java/util/concurrent/atomic/AtomicReference.lazySet',5,0,0)
f(10,710,5,2,'java/lang/invoke/VarHandleGuards.guard_LL_V',5,0,0)
f(11,710,5,2,'java/lang/invoke/VarForm.getMemberName',5,0,0)
f(12,710,5,2,'java/lang/invoke/VarForm.getMemberNameOrNull',5,0,0)
f(8,715,13,2,'cats/effect/IO$.pure',13,0,0)
f(9,716,12,2,'cats/effect/IO$Pure$.apply',12,0,0)
f(10,718,10,2,'cats/effect/IO$Pure.<init>',10,0,0)
f(11,718,10,2,'cats/effect/IO.<init>',10,0,0)
f(7,728,2,2,'cats/effect/kernel/Outcome$Succeeded$.apply',2,0,0)
f(8,729,1,2,'cats/effect/kernel/Outcome$Succeeded.<init>',1,0,0)
f(9,729,1,2,'java/lang/Object.<init>',1,0,0)
f(5,730,764,2,'cats/effect/kernel/SyncRef$$Lambda$101.0x0000000800d5b2f8.apply',764,0,0)
f(6,730,764,2,'cats/effect/kernel/SyncRef.modify$$anonfun$1',764,0,0)
f(7,730,764,2,'cats/effect/kernel/SyncRef.spin$4',764,0,0)
f(8,730,764,2,'kyo/bench/ForkManyBench$$Lambda$100.0x0000000800d5af28.apply',764,0,0)
f(9,730,764,2,'kyo/bench/ForkManyBench.$anonfun$adapted$1',764,0,0)
f(10,730,764,2,'kyo/bench/ForkManyBench.$anonfun$1',764,0,0)
f(11,730,764,2,'scala/runtime/BoxesRunTime.boxToInteger',764,0,0)
f(12,1493,1,5,'asm_sysvec_hyperv_stimer0')
f(13,1493,1,5,'sysvec_hyperv_stimer0')
f(14,1493,1,5,'irq_exit_rcu')
f(15,1493,1,5,'__irq_exit_rcu')
f(16,1493,1,5,'__softirqentry_text_start')
f(5,1494,16,3,'vtable stub')
f(2,1510,2,1,'cats/effect/unsafe/LocalQueue.enqueueBatch')
f(2,1512,154,2,'cats/effect/unsafe/ScalQueue.poll',151,0,0)
f(3,1514,151,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',151,0,0)
f(4,1516,1,2,'java/util/concurrent/ConcurrentLinkedQueue$Node.casItem',1,0,0)
f(5,1516,1,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',1,0,0)
f(6,1516,1,2,'java/lang/invoke/VarForm.getMemberName',1,0,0)
f(4,1517,148,2,'java/util/concurrent/ConcurrentLinkedQueue.updateHead',148,0,0)
f(5,1608,19,2,'java/lang/invoke/VarHandleGuards.guard_LLL_Z',19,0,0)
f(6,1608,19,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.compareAndSet',19,0,0)
f(5,1627,38,2,'java/lang/invoke/VarHandleGuards.guard_LL_V',38,0,0)
f(6,1636,1,2,'java/lang/invoke/VarForm.getMemberName',1,0,0)
f(6,1637,28,2,'java/lang/invoke/VarHandleReferences$FieldInstanceReadWrite.setRelease',28,0,0)
f(3,1665,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(4,1665,1,2,'java/util/Random.nextInt',1,0,0)
f(5,1665,1,2,'java/util/concurrent/ThreadLocalRandom.next',1,0,0)
f(6,1665,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(2,1666,10,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyIfWorkPending')
f(3,1666,10,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(4,1666,10,1,'java/util/concurrent/locks/LockSupport.unpark')
f(5,1666,10,1,'jdk/internal/misc/Unsafe.unpark')
f(6,1666,10,3,'pthread_cond_signal')
f(7,1667,9,5,'entry_SYSCALL_64_after_hwframe')
f(8,1667,9,5,'do_syscall_64')
f(9,1667,9,5,'__x64_sys_futex')
f(10,1667,9,5,'do_futex')
f(11,1667,9,5,'futex_wake')
f(12,1667,1,5,'mark_wake_futex')
f(12,1668,8,5,'wake_up_q')
f(13,1668,8,5,'_raw_spin_unlock_irqrestore')
f(2,1676,1,2,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked',1,0,0)
f(2,1677,82,1,'cats/effect/unsafe/WorkStealingThreadPool.stealFromOtherWorkerThread')
f(3,1679,77,1,'cats/effect/unsafe/LocalQueue.stealInto')
f(4,1710,2,2,'cats/effect/unsafe/LocalQueue.bufferForwarder',2,0,0)
f(4,1712,3,2,'cats/effect/unsafe/LocalQueue.index',3,0,0)
f(4,1715,1,2,'cats/effect/unsafe/LocalQueue.lsb',1,0,0)
f(4,1716,18,2,'cats/effect/unsafe/LocalQueue.msb',18,0,0)
f(4,1734,6,2,'cats/effect/unsafe/LocalQueue.unsignedShortSubtraction',6,0,0)
f(5,1738,2,2,'cats/effect/unsafe/LocalQueue.lsb',2,0,0)
f(4,1740,13,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.compareAndSet',13,0,0)
f(4,1753,3,2,'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl.get',3,0,0)
f(3,1756,2,2,'cats/effect/unsafe/ScalQueue.poll',2,0,0)
f(4,1757,1,2,'java/util/concurrent/ConcurrentLinkedQueue.poll',1,0,0)
f(3,1758,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(4,1758,1,2,'java/util/Random.nextInt',1,0,0)
f(5,1758,1,2,'java/util/concurrent/ThreadLocalRandom.next',1,0,0)
f(6,1758,1,2,'java/util/concurrent/ThreadLocalRandom.nextInt',1,0,0)
f(7,1758,1,2,'java/util/concurrent/ThreadLocalRandom.nextSeed',1,0,0)
f(2,1759,12,1,'cats/effect/unsafe/WorkStealingThreadPool.transitionWorkerToSearching')
f(2,1771,93,1,'cats/effect/unsafe/WorkerThread.parkLoop$1')
f(3,1771,93,1,'java/util/concurrent/locks/LockSupport.park')
f(4,1771,93,1,'jdk/internal/misc/Unsafe.park')
f(5,1773,1,4,'JavaThread::threadObj() const')
f(5,1774,5,3,'Unsafe_Park')
f(6,1774,2,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,1774,2,5,'entry_SYSCALL_64_after_hwframe')
f(8,1774,2,5,'do_syscall_64')
f(9,1774,2,5,'__x64_sys_futex')
f(10,1775,1,5,'do_futex')
f(11,1775,1,5,'futex_wake')
f(12,1775,1,5,'get_futex_key')
f(6,1776,3,4,'Parker::park(bool, long)')
f(5,1779,85,3,'[unknown]')
f(6,1779,81,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(7,1780,80,5,'entry_SYSCALL_64_after_hwframe')
f(8,1780,80,5,'do_syscall_64')
f(9,1780,73,5,'__x64_sys_futex')
f(10,1782,71,5,'do_futex')
f(11,1782,70,5,'futex_wait')
f(12,1787,1,5,'__get_user_nocheck_4')
f(12,1788,62,5,'futex_wait_queue_me')
f(13,1788,1,5,'__raw_callee_save___pv_queued_spin_unlock')
f(13,1789,61,5,'schedule')
f(14,1790,60,5,'__schedule')
f(15,1790,60,5,'finish_task_switch.isra.0')
f(12,1850,2,5,'futex_wait_setup')
f(11,1852,1,5,'futex_wait_setup')
f(9,1853,2,5,'syscall_enter_from_user_mode')
f(9,1855,4,5,'syscall_exit_to_user_mode')
f(10,1855,4,5,'exit_to_user_mode_prepare')
f(11,1855,1,5,'blkcg_maybe_throttle_current')
f(11,1856,3,5,'exit_to_user_mode_loop')
f(12,1857,2,5,'__rseq_handle_notify_resume')
f(13,1858,1,5,'rseq_ip_fixup')
f(9,1859,1,5,'syscall_exit_to_user_mode_prepare')
f(6,1860,1,3,'_pthread_cleanup_push')
f(6,1861,3,3,'pthread_cond_wait')
f(1,1864,3,1,'java/lang/Thread.run')
f(2,1864,3,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,1864,3,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,1864,3,1,'java/util/concurrent/FutureTask.run')
f(5,1864,3,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,1864,3,1,'java/util/concurrent/FutureTask.run')
f(7,1864,3,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,1864,3,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,1864,3,1,'java/lang/reflect/Method.invoke')
f(10,1864,3,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,1864,3,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,1864,3,1,'kyo/bench/jmh_generated/ForkManyBench_forkCats_jmhTest.forkCats_Throughput')
f(13,1864,3,1,'kyo/bench/jmh_generated/ForkManyBench_forkCats_jmhTest.forkCats_thrpt_jmhStub')
f(14,1864,3,1,'kyo/bench/Bench.forkCats')
f(15,1864,3,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,1864,3,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,1864,1,1,'cats/effect/IO.unsafeRunAsync')
f(18,1864,1,1,'cats/effect/IO.unsafeRunFiber')
f(19,1864,1,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,1864,1,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,1864,1,1,'cats/effect/unsafe/WorkStealingThreadPool.notifyParked')
f(22,1864,1,1,'java/util/concurrent/locks/LockSupport.unpark')
f(23,1864,1,1,'jdk/internal/misc/Unsafe.unpark')
f(24,1864,1,3,'pthread_cond_signal')
f(25,1864,1,5,'entry_SYSCALL_64_after_hwframe')
f(26,1864,1,5,'do_syscall_64')
f(27,1864,1,5,'__x64_sys_futex')
f(28,1864,1,5,'do_futex')
f(29,1864,1,5,'futex_wake')
f(17,1865,2,1,'scala/concurrent/package$.blocking')
f(18,1865,2,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,1865,2,1,'cats/effect/IOPlatform$$Lambda$93.0x0000000800d5e130.apply')
f(20,1865,2,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,1865,2,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,1865,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,1865,1,4,'OptoRuntime::new_instance_C(Klass*, JavaThread*)')
f(23,1866,1,1,'java/util/concurrent/locks/LockSupport.parkNanos')
f(24,1866,1,1,'jdk/internal/misc/Unsafe.park')
f(25,1866,1,3,'[unknown]')
f(26,1866,1,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(27,1866,1,5,'entry_SYSCALL_64_after_hwframe')
f(28,1866,1,5,'do_syscall_64')
f(29,1866,1,5,'__x64_sys_futex')
f(30,1866,1,5,'do_futex')
f(31,1866,1,5,'futex_wait')
f(32,1866,1,5,'futex_wait_queue_me')
f(33,1866,1,5,'schedule')
f(34,1866,1,5,'__schedule')
f(35,1866,1,5,'finish_task_switch.isra.0')
search();
</script></body></html>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 624px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>Allocation profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(39);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,31899,3,'all')
f(1,0,30481,1,'cats/effect/unsafe/WorkerThread.run')
f(2,0,30481,1,'cats/effect/IOFiber.run')
f(3,0,13860,1,'cats/effect/IOFiber.autoCedeR')
f(4,0,13860,1,'cats/effect/IOFiber.runLoop')
f(5,0,3684,2,'cats.effect.IOFiber')
f(5,3684,1,1,'cats/effect/IO$.apply')
f(6,3684,1,1,'cats/effect/IO$.delay')
f(7,3684,1,1,'cats/effect/IO$Delay$.apply')
f(8,3684,1,2,'cats.effect.IO$Delay')
f(5,3685,1,1,'cats/effect/IODeferred$$anon$1$$Lambda$114.0x0000000800d668d0.apply')
f(6,3685,1,1,'cats/effect/IODeferred$$anon$1.$anonfun$1')
f(7,3685,1,1,'cats/effect/CallbackStack.push')
f(8,3685,1,2,'cats.effect.CallbackStack')
f(5,3686,7936,1,'cats/effect/IOFiber.<init>')
f(6,3686,2111,1,'cats/effect/ArrayStack$.apply')
f(7,3686,2111,2,'cats.effect.ArrayStack')
f(6,5797,1131,1,'cats/effect/CallbackStack$.apply')
f(7,5797,1131,2,'cats.effect.CallbackStack')
f(6,6928,1890,1,'cats/effect/IO$.async')
f(7,6928,646,2,'cats.effect.IO$$anon$3')
f(7,7574,1244,1,'cats/effect/IO$IOCont$.apply')
f(8,7574,1244,2,'cats.effect.IO$IOCont')
f(6,8818,1068,1,'cats/effect/IO$.uncancelable')
f(7,8818,1068,1,'cats/effect/IO$Uncancelable$.apply')
f(8,8818,1068,2,'cats.effect.IO$Uncancelable')
f(6,9886,1736,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,9886,1736,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,9886,1736,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,9886,854,2,'cats.effect.IOFiber$$Lambda$93+0x0000000800d5ddf8')
f(9,10740,882,2,'cats.effect.IOFiber$$Lambda$94+0x0000000800d5e3e8')
f(5,11622,4,1,'cats/effect/IOFiber.scheduleFiber')
f(6,11622,4,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(7,11622,4,1,'cats/effect/unsafe/WorkerThread.schedule')
f(8,11622,4,1,'cats/effect/unsafe/LocalQueue.enqueue')
f(9,11622,4,2,'java.lang.Runnable[]')
f(5,11626,2234,1,'cats/effect/IOFiber.succeeded')
f(6,11626,2233,1,'kyo/bench/ForkManyBench$$Lambda$101.0x0000000800d5b518.apply')
f(7,11626,2233,1,'kyo/bench/ForkManyBench.repeat$1$$anonfun$1')
f(8,11626,2233,1,'kyo/bench/ForkManyBench.repeat$1')
f(9,11626,1114,1,'cats/effect/IO.flatMap')
f(10,11626,1114,1,'cats/effect/IO$FlatMap$.apply')
f(11,11626,1114,2,'cats.effect.IO$FlatMap')
f(9,12740,1119,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,12740,1119,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d59400.newInvokeSpecial')
f(11,12740,1119,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,12740,1119,2,'kyo.bench.ForkManyBench$$Lambda$101+0x0000000800d5b518')
f(6,13859,1,1,'kyo/bench/ForkManyBench$$Lambda$102.0x0000000800d5b8e8.apply')
f(7,13859,1,1,'kyo/bench/ForkManyBench.catsBench$$anonfun$1$$anonfun$2$$anonfun$1')
f(8,13859,1,1,'cats/effect/IO.map')
f(9,13859,1,1,'cats/effect/IO$Map$.apply')
f(10,13859,1,2,'cats.effect.IO$Map')
f(3,13860,16621,1,'cats/effect/IOFiber.execR')
f(4,13860,8003,1,'cats/effect/ArrayStack.init')
f(5,13860,8003,2,'java.lang.Object[]')
f(4,21863,1834,1,'cats/effect/ByteStack$.create')
f(5,21863,1834,2,'int[]')
f(4,23697,6784,1,'cats/effect/IOFiber.runLoop')
f(5,23697,150,2,'cats.effect.IOFiber')
f(5,23847,1,1,'cats/effect/IO$$$Lambda$39.0x0000000800c8e1f0.apply')
f(6,23847,1,1,'cats/effect/IO$.deferred$$anonfun$1')
f(7,23847,1,1,'cats/effect/IODeferred.<init>')
f(8,23847,1,1,'cats/effect/CallbackStack$.apply')
f(9,23847,1,2,'cats.effect.CallbackStack')
f(5,23848,1,1,'cats/effect/IO$$$Lambda$96.0x0000000800d5fb28.apply')
f(6,23848,1,1,'cats/effect/IO$.ref$$anonfun$1')
f(7,23848,1,1,'cats/effect/kernel/Ref$.unsafe')
f(8,23848,1,1,'cats/effect/kernel/SyncRef.<init>')
f(9,23848,1,2,'java.util.concurrent.atomic.AtomicReference')
f(5,23849,1,1,'cats/effect/IODeferred$$Lambda$103.0x0000000800d602c0.apply')
f(6,23849,1,1,'cats/effect/IODeferred.complete$$anonfun$1')
f(7,23849,1,1,'scala/util/Right$.apply')
f(8,23849,1,2,'scala.util.Right')
f(5,23850,384,1,'cats/effect/IOFiber.<init>')
f(6,23850,118,1,'cats/effect/ArrayStack$.apply')
f(7,23850,118,2,'cats.effect.ArrayStack')
f(6,23968,56,1,'cats/effect/CallbackStack$.apply')
f(7,23968,56,2,'cats.effect.CallbackStack')
f(6,24024,68,1,'cats/effect/IO$.async')
f(7,24024,26,2,'cats.effect.IO$$anon$3')
f(7,24050,42,1,'cats/effect/IO$IOCont$.apply')
f(8,24050,42,2,'cats.effect.IO$IOCont')
f(6,24092,56,1,'cats/effect/IO$.uncancelable')
f(7,24092,56,1,'cats/effect/IO$Uncancelable$.apply')
f(8,24092,56,2,'cats.effect.IO$Uncancelable')
f(6,24148,86,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(7,24148,86,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(8,24148,86,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(9,24148,49,2,'cats.effect.IOFiber$$Lambda$93+0x0000000800d5ddf8')
f(9,24197,37,2,'cats.effect.IOFiber$$Lambda$94+0x0000000800d5e3e8')
f(5,24234,2227,1,'cats/effect/IOFiber.succeeded')
f(6,24234,2111,1,'cats/effect/IOFiber.runTerminusSuccessK')
f(7,24234,591,1,'cats/effect/IO$.pure')
f(8,24234,591,1,'cats/effect/IO$Pure$.apply')
f(9,24234,591,2,'cats.effect.IO$Pure')
f(7,24825,815,1,'cats/effect/IOFiber.done')
f(8,24825,815,1,'cats/effect/IO$.pure')
f(9,24825,815,1,'cats/effect/IO$Pure$.apply')
f(10,24825,815,2,'cats.effect.IO$Pure')
f(7,25640,705,1,'cats/effect/kernel/Outcome$Succeeded$.apply')
f(8,25640,705,2,'cats.effect.kernel.Outcome$Succeeded')
f(6,26345,116,1,'kyo/bench/ForkManyBench$$Lambda$101.0x0000000800d5b518.apply')
f(7,26345,116,1,'kyo/bench/ForkManyBench.repeat$1$$anonfun$1')
f(8,26345,116,1,'kyo/bench/ForkManyBench.repeat$1')
f(9,26345,53,1,'cats/effect/IO.flatMap')
f(10,26345,53,1,'cats/effect/IO$FlatMap$.apply')
f(11,26345,53,2,'cats.effect.IO$FlatMap')
f(9,26398,63,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(10,26398,63,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d59400.newInvokeSpecial')
f(11,26398,63,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(12,26398,63,2,'kyo.bench.ForkManyBench$$Lambda$101+0x0000000800d5b518')
f(5,26461,4020,1,'cats/effect/kernel/SyncRef$$Lambda$100.0x0000000800d5b038.apply')
f(6,26461,4020,1,'cats/effect/kernel/SyncRef.modify$$anonfun$1')
f(7,26461,4020,1,'cats/effect/kernel/SyncRef.spin$4')
f(8,26461,4020,1,'kyo/bench/ForkManyBench$$Lambda$99.0x0000000800d5ac68.apply')
f(9,26461,4020,1,'kyo/bench/ForkManyBench.$anonfun$adapted$1')
f(10,26461,4020,1,'kyo/bench/ForkManyBench.$anonfun$1')
f(11,26461,2284,1,'scala/Tuple2$.apply')
f(12,26461,2284,2,'scala.Tuple2')
f(11,28745,1736,1,'scala/runtime/BoxesRunTime.boxToInteger')
f(12,28745,1736,1,'java/lang/Integer.valueOf')
f(13,28745,1736,2,'java.lang.Integer')
f(1,30481,1,2,'java.lang.String')
f(1,30482,1394,1,'java/lang/Thread.run')
f(2,30482,1394,1,'java/util/concurrent/ThreadPoolExecutor$Worker.run')
f(3,30482,1394,1,'java/util/concurrent/ThreadPoolExecutor.runWorker')
f(4,30482,1394,1,'java/util/concurrent/FutureTask.run')
f(5,30482,1394,1,'java/util/concurrent/Executors$RunnableAdapter.call')
f(6,30482,1394,1,'java/util/concurrent/FutureTask.run')
f(7,30482,1394,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(8,30482,1394,1,'org/openjdk/jmh/runner/BenchmarkHandler$BenchmarkTask.call')
f(9,30482,1394,1,'java/lang/reflect/Method.invoke')
f(10,30482,1394,1,'jdk/internal/reflect/DelegatingMethodAccessorImpl.invoke')
f(11,30482,1394,1,'jdk/internal/reflect/GeneratedMethodAccessor1.invoke')
f(12,30482,1394,1,'kyo/bench/jmh_generated/ForkManyBench_syncCats_jmhTest.syncCats_Throughput')
f(13,30482,1394,1,'kyo/bench/jmh_generated/ForkManyBench_syncCats_jmhTest.syncCats_thrpt_jmhStub')
f(14,30482,1394,1,'kyo/bench/Bench.syncCats')
f(15,30482,1382,1,'cats/effect/IOPlatform.unsafeRunSync')
f(16,30482,1378,1,'cats/effect/IOPlatform.unsafeRunTimed')
f(17,30482,1187,1,'cats/effect/IO.unsafeRunAsync')
f(18,30482,1186,1,'cats/effect/IO.unsafeRunFiber')
f(19,30482,438,2,'cats.effect.IOFiber')
f(19,30920,121,5,'cats.effect.IOFiber')
f(19,31041,481,1,'cats/effect/IOFiber.<init>')
f(20,31041,214,1,'cats/effect/ArrayStack$.apply')
f(21,31041,214,2,'cats.effect.ArrayStack')
f(20,31255,88,1,'cats/effect/CallbackStack$.apply')
f(21,31255,88,2,'cats.effect.CallbackStack')
f(20,31343,84,1,'cats/effect/IO$.async')
f(21,31343,7,2,'cats.effect.IO$$anon$3')
f(21,31350,77,1,'cats/effect/IO$IOCont$.apply')
f(22,31350,77,2,'cats.effect.IO$IOCont')
f(20,31427,68,1,'cats/effect/IO$.uncancelable')
f(21,31427,68,1,'cats/effect/IO$Uncancelable$.apply')
f(22,31427,68,2,'cats.effect.IO$Uncancelable')
f(20,31495,27,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(21,31495,27,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(22,31495,27,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(23,31495,5,2,'cats.effect.IOFiber$$Lambda$93+0x0000000800d5ddf8')
f(23,31500,22,2,'cats.effect.IOFiber$$Lambda$94+0x0000000800d5e3e8')
f(19,31522,10,1,'cats/effect/unsafe/WorkStealingThreadPool.execute')
f(20,31522,10,1,'cats/effect/unsafe/WorkStealingThreadPool.scheduleExternal')
f(21,31522,10,1,'cats/effect/unsafe/ScalQueue.offer')
f(22,31522,10,1,'java/util/concurrent/ConcurrentLinkedQueue.offer')
f(23,31522,10,2,'java.util.concurrent.ConcurrentLinkedQueue$Node')
f(19,31532,136,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(20,31532,136,1,'java/lang/invoke/LambdaForm$DMH.0x0000000800d58c00.newInvokeSpecial')
f(21,31532,136,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(22,31532,136,2,'cats.effect.IO$$Lambda$92+0x0000000800d5cfc0')
f(18,31668,1,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(19,31668,1,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(20,31668,1,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(21,31668,1,2,'cats.effect.IO$$Lambda$90+0x0000000800d57ac0')
f(17,31669,5,2,'java.util.concurrent.ArrayBlockingQueue')
f(17,31674,91,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(18,31674,91,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(19,31674,91,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(20,31674,91,2,'cats.effect.IOPlatform$$Lambda$95+0x0000000800d5edc8')
f(17,31765,12,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(18,31765,12,1,'java/util/concurrent/ArrayBlockingQueue.<init>')
f(19,31765,5,2,'java.lang.Object[]')
f(19,31770,5,1,'java/util/concurrent/locks/ReentrantLock.<init>')
f(20,31770,5,2,'java.util.concurrent.locks.ReentrantLock$NonfairSync')
f(19,31775,2,1,'java/util/concurrent/locks/ReentrantLock.newCondition')
f(20,31775,2,1,'java/util/concurrent/locks/ReentrantLock$Sync.newCondition')
f(21,31775,2,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject')
f(17,31777,2,1,'scala/concurrent/package$.blocking')
f(18,31777,2,1,'scala/concurrent/BlockContext$DefaultBlockContext$.blockOn')
f(19,31777,2,1,'cats/effect/IOPlatform$$Lambda$95.0x0000000800d5edc8.apply')
f(20,31777,2,1,'cats/effect/IOPlatform.$anonfun$1')
f(21,31777,2,1,'java/util/concurrent/ArrayBlockingQueue.poll')
f(22,31777,2,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject.awaitNanos')
f(23,31777,2,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode')
f(17,31779,81,1,'scala/util/Either.fold')
f(18,31779,81,1,'cats/effect/IOPlatform$$Lambda$110.0x0000000800d61ab8.apply')
f(19,31779,81,1,'cats/effect/IOPlatform.unsafeRunTimed$$anonfun$3')
f(20,31779,81,1,'scala/Some$.apply')
f(21,31779,81,2,'scala.Some')
f(16,31860,4,1,'scala/concurrent/duration/package$DurationLong.nanos')
f(17,31860,4,1,'scala/concurrent/duration/DurationConversions.nanos$')
f(18,31860,4,1,'scala/concurrent/duration/DurationConversions.nanos')
f(19,31860,4,1,'scala/concurrent/duration/package$DurationLong.nanoseconds')
f(20,31860,4,1,'scala/concurrent/duration/DurationConversions.nanoseconds$')
f(21,31860,4,1,'scala/concurrent/duration/DurationConversions.nanoseconds')
f(22,31860,4,1,'scala/concurrent/duration/package$DurationLong.durationIn')
f(23,31860,4,2,'scala.concurrent.duration.FiniteDuration')
f(15,31864,12,1,'kyo/bench/ForkManyBench.catsBench')
f(16,31864,12,1,'java/lang/invoke/Invokers$Holder.linkToTargetMethod')
f(17,31864,12,1,'java/lang/invoke/DirectMethodHandle$Holder.newInvokeSpecial')
f(18,31864,12,1,'java/lang/invoke/DirectMethodHandle.allocateInstance')
f(19,31864,12,2,'kyo.bench.ForkManyBench$$Lambda$41+0x0000000800c8eca8')
f(1,31876,23,1,'org/openjdk/jmh/runner/ForkedMain.main')
f(2,31876,23,1,'org/openjdk/jmh/runner/ForkedRunner.run')
f(3,31876,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmarksForked')
f(4,31876,23,1,'org/openjdk/jmh/runner/BaseRunner.doSingle')
f(5,31876,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(6,31876,23,1,'org/openjdk/jmh/runner/BaseRunner.runBenchmark')
f(7,31876,1,1,'jdk/proxy1/$Proxy0.iteration')
f(8,31876,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient$$Lambda$8.0x0000000800c01c70.invoke')
f(9,31876,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.lambda$new$0')
f(10,31876,1,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(11,31876,1,1,'java/io/ObjectOutputStream.writeObject')
f(12,31876,1,1,'java/io/ObjectOutputStream.writeObject0')
f(13,31876,1,1,'java/io/ObjectOutputStream.writeOrdinaryObject')
f(14,31876,1,1,'java/io/ObjectOutputStream.writeSerialData')
f(15,31876,1,1,'java/io/ObjectOutputStream.defaultWriteFields')
f(16,31876,1,2,'java.lang.Object[]')
f(7,31877,8,1,'org/openjdk/jmh/runner/BenchmarkHandler.runIteration')
f(8,31877,3,1,'java/util/concurrent/ExecutorCompletionService.<init>')
f(9,31877,3,2,'java.util.concurrent.LinkedBlockingQueue')
f(8,31880,5,1,'org/openjdk/jmh/runner/InfraControl.awaitWarmdownReady')
f(9,31880,5,1,'org/openjdk/jmh/runner/InfraControlL2.awaitWarmdownReady')
f(10,31880,5,1,'java/util/concurrent/CountDownLatch.await')
f(11,31880,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly')
f(12,31880,5,1,'java/util/concurrent/locks/AbstractQueuedSynchronizer.acquire')
f(13,31880,5,2,'java.util.concurrent.locks.AbstractQueuedSynchronizer$SharedNode')
f(7,31885,14,1,'org/openjdk/jmh/runner/ForkedRunner$1.accept')
f(8,31885,14,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushResults')
f(9,31885,3,1,'java/lang/ClassLoader.loadClass')
f(10,31885,3,1,'jdk/internal/loader/ClassLoaders$AppClassLoader.loadClass')
f(11,31885,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClass')
f(12,31885,3,1,'jdk/internal/loader/BuiltinClassLoader.loadClassOrNull')
f(13,31885,3,1,'jdk/internal/loader/BuiltinClassLoader.findClassOnClassPathOrNull')
f(14,31885,2,1,'jdk/internal/loader/BuiltinClassLoader.defineClass')
f(15,31885,1,1,'java/security/CodeSource.<init>')
f(16,31885,1,1,'sun/net/util/URLUtil.urlNoFragString')
f(17,31885,1,1,'java/lang/StringBuilder.append')
f(18,31885,1,1,'java/lang/AbstractStringBuilder.append')
f(19,31885,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(20,31885,1,1,'java/util/Arrays.copyOf')
f(21,31885,1,2,'byte[]')
f(15,31886,1,1,'jdk/internal/loader/Resource.getBytes')
f(16,31886,1,1,'java/util/Arrays.copyOf')
f(17,31886,1,5,'byte[]')
f(14,31887,1,1,'jdk/internal/loader/URLClassPath.getResource')
f(15,31887,1,1,'jdk/internal/loader/URLClassPath$JarLoader.getResource')
f(16,31887,1,1,'jdk/internal/loader/URLClassPath$JarLoader.checkResource')
f(17,31887,1,1,'java/net/URL.<init>')
f(18,31887,1,1,'java/net/URL.<init>')
f(19,31887,1,1,'sun/net/www/protocol/jar/Handler.parseURL')
f(20,31887,1,1,'sun/net/www/protocol/jar/Handler.parseContextSpec')
f(21,31887,1,1,'java/lang/StringBuilder.toString')
f(22,31887,1,1,'java/lang/StringLatin1.newString')
f(23,31887,1,2,'java.lang.String')
f(9,31888,11,1,'org/openjdk/jmh/runner/link/BinaryLinkClient.pushFrame')
f(10,31888,11,1,'java/io/ObjectOutputStream.writeObject')
f(11,31888,11,1,'java/io/ObjectOutputStream.writeObject0')
f(12,31888,11,1,'java/io/ObjectStreamClass.lookup')
f(13,31888,11,1,'java/io/ObjectStreamClass.<init>')
f(14,31888,11,1,'java/security/AccessController.doPrivileged')
f(15,31888,11,1,'java/security/AccessController.executePrivileged')
f(16,31888,11,1,'java/io/ObjectStreamClass$2.run')
f(17,31888,11,1,'java/io/ObjectStreamClass$2.run')
f(18,31888,2,1,'java/io/ObjectStreamClass.getInheritableMethod')
f(19,31888,2,1,'java/lang/Class.getDeclaredMethod')
f(20,31888,1,1,'java/lang/Class.methodToString')
f(21,31888,1,1,'java/lang/StringBuilder.append')
f(22,31888,1,1,'java/lang/AbstractStringBuilder.append')
f(23,31888,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,31888,1,1,'java/util/Arrays.copyOf')
f(25,31888,1,2,'byte[]')
f(20,31889,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,31889,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,31889,1,1,'java/lang/Exception.<init>')
f(23,31889,1,1,'java/lang/Throwable.<init>')
f(24,31889,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,31889,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,31889,1,2,'short[]')
f(18,31890,3,1,'java/io/ObjectStreamClass.getPrivateMethod')
f(19,31890,3,1,'java/lang/Class.getDeclaredMethod')
f(20,31890,2,1,'java/lang/Class.methodToString')
f(21,31890,1,1,'java/lang/StringBuilder.append')
f(22,31890,1,1,'java/lang/AbstractStringBuilder.append')
f(23,31890,1,1,'java/lang/AbstractStringBuilder.ensureCapacityInternal')
f(24,31890,1,1,'java/util/Arrays.copyOf')
f(25,31890,1,2,'byte[]')
f(21,31891,1,1,'java/lang/StringBuilder.toString')
f(22,31891,1,1,'java/lang/StringLatin1.newString')
f(23,31891,1,1,'java/util/Arrays.copyOfRange')
f(24,31891,1,2,'byte[]')
f(20,31892,1,1,'java/lang/NoSuchMethodException.<init>')
f(21,31892,1,1,'java/lang/ReflectiveOperationException.<init>')
f(22,31892,1,1,'java/lang/Exception.<init>')
f(23,31892,1,1,'java/lang/Throwable.<init>')
f(24,31892,1,1,'java/lang/Throwable.fillInStackTrace')
f(25,31892,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,31892,1,5,'long[]')
f(18,31893,1,1,'java/io/ObjectStreamClass.getSerialFields')
f(19,31893,1,1,'java/io/ObjectStreamClass.getDeclaredSerialFields')
f(20,31893,1,1,'java/lang/Class.getDeclaredField')
f(21,31893,1,1,'java/lang/NoSuchFieldException.<init>')
f(22,31893,1,1,'java/lang/ReflectiveOperationException.<init>')
f(23,31893,1,1,'java/lang/Exception.<init>')
f(24,31893,1,1,'java/lang/Throwable.<init>')
f(25,31893,1,1,'java/lang/Throwable.fillInStackTrace')
f(26,31893,1,1,'java/lang/Throwable.fillInStackTrace')
f(27,31893,1,2,'long[]')
f(18,31894,5,1,'java/io/ObjectStreamClass.getSerializableConstructor')
f(19,31894,5,1,'jdk/internal/reflect/ReflectionFactory.newConstructorForSerialization')
f(20,31894,5,1,'jdk/internal/reflect/ReflectionFactory.generateConstructor')
f(21,31894,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generateSerializationConstructor')
f(22,31894,5,1,'jdk/internal/reflect/MethodAccessorGenerator.generate')
f(23,31894,1,1,'java/security/AccessController.doPrivileged')
f(24,31894,1,1,'java/security/AccessController.executePrivileged')
f(25,31894,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(26,31894,1,1,'jdk/internal/reflect/MethodAccessorGenerator$1.run')
f(27,31894,1,1,'jdk/internal/reflect/ClassDefiner.defineClass')
f(28,31894,1,1,'java/security/AccessController.doPrivileged')
f(29,31894,1,1,'java/security/AccessController.executePrivileged')
f(30,31894,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(31,31894,1,1,'jdk/internal/reflect/ClassDefiner$1.run')
f(32,31894,1,1,'jdk/internal/reflect/DelegatingClassLoader.<init>')
f(33,31894,1,1,'java/lang/ClassLoader.<init>')
f(34,31894,1,1,'java/lang/ClassLoader.<init>')
f(35,31894,1,1,'java/lang/ClassLoader.nameAndId')
f(36,31894,1,1,'java/lang/StringBuilder.<init>')
f(37,31894,1,1,'java/lang/AbstractStringBuilder.<init>')
f(38,31894,1,2,'byte[]')
f(23,31895,1,1,'jdk/internal/reflect/AccessorGenerator.emitBoxingContantPoolEntries')
f(24,31895,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,31895,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,31895,1,2,'byte[]')
f(23,31896,1,1,'jdk/internal/reflect/AccessorGenerator.emitCommonConstantPoolEntries')
f(24,31896,1,1,'jdk/internal/reflect/ClassFileAssembler.emitConstantPoolUTF8')
f(25,31896,1,1,'jdk/internal/reflect/UTF8.encode')
f(26,31896,1,2,'byte[]')
f(23,31897,1,1,'jdk/internal/reflect/AccessorGenerator.getClassName')
f(24,31897,1,1,'jdk/internal/reflect/AccessorGenerator.internalize')
f(25,31897,1,1,'java/lang/String.replace')
f(26,31897,1,1,'java/lang/StringLatin1.replace')
f(27,31897,1,2,'java.lang.String')
f(23,31898,1,1,'jdk/internal/reflect/ByteVectorImpl.trim')
f(24,31898,1,5,'byte[]')
search();
</script></body></html>
View raw

(Sorry about that, but we can’t show files that are this big right now.)

This file has been truncated, but you can view the full file.
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8'>
<style>
body {margin: 0; padding: 10px; background-color: #ffffff}
h1 {margin: 5px 0 0 0; font-size: 18px; font-weight: normal; text-align: center}
header {margin: -24px 0 5px 0; line-height: 24px}
button {font: 12px sans-serif; cursor: pointer}
p {margin: 5px 0 5px 0}
a {color: #0366d6}
#hl {position: absolute; display: none; overflow: hidden; white-space: nowrap; pointer-events: none; background-color: #ffffe0; outline: 1px solid #ffc000; height: 15px}
#hl span {padding: 0 3px 0 3px}
#status {overflow: hidden; white-space: nowrap}
#match {overflow: hidden; white-space: nowrap; display: none; float: right; text-align: right}
#reset {cursor: pointer}
#canvas {width: 100%; height: 656px}
</style>
</head>
<body style='font: 12px Verdana, sans-serif'>
<h1>CPU profile</h1>
<header style='text-align: left'><button id='reverse' title='Reverse'>&#x1f53b;</button>&nbsp;&nbsp;<button id='search' title='Search'>&#x1f50d;</button></header>
<header style='text-align: right'>Produced by <a href='https://github.com/jvm-profiling-tools/async-profiler'>async-profiler</a></header>
<canvas id='canvas'></canvas>
<div id='hl'><span></span></div>
<p id='match'>Matched: <span id='matchval'></span> <span id='reset' title='Clear'>&#x274c;</span></p>
<p id='status'>&nbsp;</p>
<script>
// Copyright 2020 Andrei Pangin
// Licensed under the Apache License, Version 2.0.
'use strict';
var root, rootLevel, px, pattern;
var reverse = false;
const levels = Array(41);
for (let h = 0; h < levels.length; h++) {
levels[h] = [];
}
const canvas = document.getElementById('canvas');
const c = canvas.getContext('2d');
const hl = document.getElementById('hl');
const status = document.getElementById('status');
const canvasWidth = canvas.offsetWidth;
const canvasHeight = canvas.offsetHeight;
canvas.style.width = canvasWidth + 'px';
canvas.width = canvasWidth * (devicePixelRatio || 1);
canvas.height = canvasHeight * (devicePixelRatio || 1);
if (devicePixelRatio) c.scale(devicePixelRatio, devicePixelRatio);
c.font = document.body.style.font;
const palette = [
[0xb2e1b2, 20, 20, 20],
[0x50e150, 30, 30, 30],
[0x50cccc, 30, 30, 30],
[0xe15a5a, 30, 40, 40],
[0xc8c83c, 30, 30, 10],
[0xe17d00, 30, 30, 0],
[0xcce880, 20, 20, 20],
];
function getColor(p) {
const v = Math.random();
return '#' + (p[0] + ((p[1] * v) << 16 | (p[2] * v) << 8 | (p[3] * v))).toString(16);
}
function f(level, left, width, type, title, inln, c1, int) {
levels[level].push({left: left, width: width, color: getColor(palette[type]), title: title,
details: (int ? ', int=' + int : '') + (c1 ? ', c1=' + c1 : '') + (inln ? ', inln=' + inln : '')
});
}
function samples(n) {
return n === 1 ? '1 sample' : n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') + ' samples';
}
function pct(a, b) {
return a >= b ? '100' : (100 * a / b).toFixed(2);
}
function findFrame(frames, x) {
let left = 0;
let right = frames.length - 1;
while (left <= right) {
const mid = (left + right) >>> 1;
const f = frames[mid];
if (f.left > x) {
right = mid - 1;
} else if (f.left + f.width <= x) {
left = mid + 1;
} else {
return f;
}
}
if (frames[left] && (frames[left].left - x) * px < 0.5) return frames[left];
if (frames[right] && (x - (frames[right].left + frames[right].width)) * px < 0.5) return frames[right];
return null;
}
function search(r) {
if (r === true && (r = prompt('Enter regexp to search:', '')) === null) {
return;
}
pattern = r ? RegExp(r) : undefined;
const matched = render(root, rootLevel);
document.getElementById('matchval').textContent = pct(matched, root.width) + '%';
document.getElementById('match').style.display = r ? 'inherit' : 'none';
}
function render(newRoot, newLevel) {
if (root) {
c.fillStyle = '#ffffff';
c.fillRect(0, 0, canvasWidth, canvasHeight);
}
root = newRoot || levels[0][0];
rootLevel = newLevel || 0;
px = canvasWidth / root.width;
const x0 = root.left;
const x1 = x0 + root.width;
const marked = [];
function mark(f) {
return marked[f.left] >= f.width || (marked[f.left] = f.width);
}
function totalMarked() {
let total = 0;
let left = 0;
Object.keys(marked).sort(function(a, b) { return a - b; }).forEach(function(x) {
if (+x >= left) {
total += marked[x];
left = +x + marked[x];
}
});
return total;
}
function drawFrame(f, y, alpha) {
if (f.left < x1 && f.left + f.width > x0) {
c.fillStyle = pattern && f.title.match(pattern) && mark(f) ? '#ee00ee' : f.color;
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
if (f.width * px >= 21) {
const chars = Math.floor(f.width * px / 7);
const title = f.title.length <= chars ? f.title : f.title.substring(0, chars - 2) + '..';
c.fillStyle = '#000000';
c.fillText(title, Math.max(f.left - x0, 0) * px + 3, y + 12, f.width * px - 6);
}
if (alpha) {
c.fillStyle = 'rgba(255, 255, 255, 0.5)';
c.fillRect((f.left - x0) * px, y, f.width * px, 15);
}
}
}
for (let h = 0; h < levels.length; h++) {
const y = reverse ? h * 16 : canvasHeight - (h + 1) * 16;
const frames = levels[h];
for (let i = 0; i < frames.length; i++) {
drawFrame(frames[i], y, h < rootLevel);
}
}
return totalMarked();
}
canvas.onmousemove = function() {
const h = Math.floor((reverse ? event.offsetY : (canvasHeight - event.offsetY)) / 16);
if (h >= 0 && h < levels.length) {
const f = findFrame(levels[h], event.offsetX / px + root.left);
if (f) {
if (f != root) getSelection().removeAllRanges();
hl.style.left = (Math.max(f.left - root.left, 0) * px + canvas.offsetLeft) + 'px';
hl.style.width = (Math.min(f.width, root.width) * px) + 'px';
hl.style.top = ((reverse ? h * 16 : canvasHeight - (h + 1) * 16) + canvas.offsetTop) + 'px';
hl.firstChild.textContent = f.title;
hl.style.display = 'block';
canvas.title = f.title + '\n(' + samples(f.width) + f.details + ', ' + pct(f.width, levels[0][0].width) + '%)';
canvas.style.cursor = 'pointer';
canvas.onclick = function() {
if (f != root) {
render(f, h);
canvas.onmousemove();
}
};
status.textContent = 'Function: ' + canvas.title;
return;
}
}
canvas.onmouseout();
}
canvas.onmouseout = function() {
hl.style.display = 'none';
status.textContent = '\xa0';
canvas.title = '';
canvas.style.cursor = '';
canvas.onclick = '';
}
canvas.ondblclick = function() {
getSelection().selectAllChildren(hl);
}
document.getElementById('reverse').onclick = function() {
reverse = !reverse;
render();
}
document.getElementById('search').onclick = function() {
search(true);
}
document.getElementById('reset').onclick = function() {
search(false);
}
window.onkeydown = function() {
if (event.ctrlKey && event.keyCode === 70) {
event.preventDefault();
search(true);
} else if (event.keyCode === 27) {
search(false);
}
}
f(0,0,1785,3,'all')
f(1,0,2,3,'/usr/lib/x86_64-linux-gnu/libc.so.6')
f(2,0,2,3,'thread_native_entry(Thread*)')
f(3,0,2,4,'Thread::call_run()')
f(4,0,1,4,'JavaThread::thread_main_inner()')
f(5,0,1,4,'CompileBroker::compiler_thread_loop()')
f(6,0,1,4,'CompileBroker::invoke_compiler_on_method(CompileTask*)')
f(7,0,1,4,'C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)')
f(8,0,1,4,'Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, bool, DirectiveSet*)')
f(9,0,1,4,'Compile::Code_Gen()')
f(10,0,1,4,'Matcher::match()')
f(11,0,1,4,'Matcher::find_shared(Node*)')
f(12,0,1,4,'Matcher::pd_clone_node(Node*, Node*, Matcher::MStack&)')
f(13,0,1,4,'Matcher::is_vshift_con_pattern(Node*, Node*)')
f(4,1,1,4,'VMThread::run()')
f(5,1,1,4,'VMThread::inner_execute(VM_Operation*)')
f(6,1,1,4,'VMThread::evaluate_operation(VM_Operation*)')
f(7,1,1,4,'VM_Operation::evaluate()')
f(8,1,1,4,'VM_G1CollectForAllocation::doit()')
f(9,1,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint(double)')
f(10,1,1,4,'G1CollectedHeap::do_collection_pause_at_safepoint_helper(double)')
f(11,1,1,4,'G1CollectedHeap::evacuate_initial_collection_set(G1ParScanThreadStateSet*, bool)')
f(12,1,1,4,'G1RemSet::merge_heap_roots(bool)')
f(13,1,1,4,'WorkGang::run_task(AbstractGangTask*, unsigned int, bool)')
f(14,1,1,3,'sem_post')
f(15,1,1,5,'entry_SYSCALL_64_after_hwframe')
f(16,1,1,5,'do_syscall_64')
f(17,1,1,5,'__x64_sys_futex')
f(18,1,1,5,'do_futex')
f(19,1,1,5,'futex_wake')
f(20,1,1,5,'wake_up_q')
f(21,1,1,5,'_raw_spin_unlock_irqrestore')
f(1,2,9,3,'[unknown_Java]')
f(2,2,2,6,'cats/effect/IO$Delay.tag',0,2,0)
f(2,4,2,6,'cats/effect/IO$FlatMap.tag',0,2,0)
f(2,6,1,6,'cats/effect/IO$Pure.tag',0,1,0)
f(2,7,1,6,'cats/effect/IO$Start.tag',0,1,0)
f(2,8,3,1,'cats/effect/IOFiber.<init>')
f(1,11,1771,1,'cats/effect/unsafe/WorkerThread.run')
f(2,30,1447,1,'cats/effect/IOFiber.run',44,0,0)
f(3,38,15,2,'cats/effect/IOFiber.asyncContinueSuccessfulR',12,0,0)
f(4,43,6,2,'cats/effect/ArrayStack.pop',6,0,0)
f(4,49,3,1,'cats/effect/IOFiber.succeeded')
f(5,49,3,2,'cats/effect/IOFiber.runTerminusSuccessK',1,0,0)
f(6,49,1,2,'cats/effect/IO$.pure',1,0,0)
f(7,49,1,2,'cats/effect/IO$Pure$.apply',1,0,0)
f(8,49,1,2,'cats/effect/IO$Pure.<init>',1,0,0)
f(9,49,1,2,'cats/effect/IO.<init>',1,0,0)
f(6,50,2,1,'cats/effect/IOFiber.done')
f(7,50,2,1,'cats/effect/CallbackStack.apply')
f(8,50,2,1,'scala/runtime/function/JProcedure1.apply')
f(9,50,2,1,'scala/runtime/function/JProcedure1.apply')
f(10,50,2,1,'cats/effect/IO$$Lambda$92.0x0000000800d5cfc0.applyVoid')
f(11,50,2,1,'cats/effect/IO.$anonfun$6')
f(12,50,2,1,'cats/effect/kernel/Outcome$Succeeded.fold')
f(13,50,2,1,'cats/effect/ker
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment