Skip to content

Instantly share code, notes, and snippets.

@trustin
Last active November 4, 2018 13:23
Show Gist options
  • Save trustin/395659be9d0eb3d5265cbff50a1581c5 to your computer and use it in GitHub Desktop.
Save trustin/395659be9d0eb3d5265cbff50a1581c5 to your computer and use it in GitHub Desktop.
Performance profile of grpc.downstream.DownstreamSimpleBenchmark.empty() with 16 threads
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" width="1200" height="1830" onload="init(evt)" viewBox="0 0 1200 1830" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. -->
<!-- NOTES: -->
<defs >
<linearGradient id="background" y1="0" y2="1" x1="0" x2="0" >
<stop stop-color="#eeeeee" offset="5%" />
<stop stop-color="#eeeeb0" offset="95%" />
</linearGradient>
</defs>
<style type="text/css">
.func_g:hover { stroke:black; stroke-width:0.5; cursor:pointer; }
</style>
<script type="text/ecmascript">
<![CDATA[
var details, searchbtn, matchedtxt, svg;
function init(evt) {
details = document.getElementById("details").firstChild;
searchbtn = document.getElementById("search");
matchedtxt = document.getElementById("matched");
svg = document.getElementsByTagName("svg")[0];
searching = 0;
}
// mouse-over for info
function s(node) { // show
info = g_to_text(node);
details.nodeValue = "Function: " + info;
}
function c() { // clear
details.nodeValue = ' ';
}
// ctrl-F for search
window.addEventListener("keydown",function (e) {
if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
e.preventDefault();
search_prompt();
}
})
// functions
function find_child(parent, name, attr) {
var children = parent.childNodes;
for (var i=0; i<children.length;i++) {
if (children[i].tagName == name)
return (attr != undefined) ? children[i].attributes[attr].value : children[i];
}
return;
}
function orig_save(e, attr, val) {
if (e.attributes["_orig_"+attr] != undefined) return;
if (e.attributes[attr] == undefined) return;
if (val == undefined) val = e.attributes[attr].value;
e.setAttribute("_orig_"+attr, val);
}
function orig_load(e, attr) {
if (e.attributes["_orig_"+attr] == undefined) return;
e.attributes[attr].value = e.attributes["_orig_"+attr].value;
e.removeAttribute("_orig_"+attr);
}
function g_to_text(e) {
var text = find_child(e, "title").firstChild.nodeValue;
return (text)
}
function g_to_func(e) {
var func = g_to_text(e);
// if there's any manipulation we want to do to the function
// name before it's searched, do it here before returning.
return (func);
}
function update_text(e) {
var r = find_child(e, "rect");
var t = find_child(e, "text");
var w = parseFloat(r.attributes["width"].value) -3;
var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,"");
t.attributes["x"].value = parseFloat(r.attributes["x"].value) +3;
// Smaller than this size won't fit anything
if (w < 2*12*0.59) {
t.textContent = "";
return;
}
t.textContent = txt;
// Fit in full text width
if (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w)
return;
for (var x=txt.length-2; x>0; x--) {
if (t.getSubStringLength(0, x+2) <= w) {
t.textContent = txt.substring(0,x) + "..";
return;
}
}
t.textContent = "";
}
// zoom
function zoom_reset(e) {
if (e.attributes != undefined) {
orig_load(e, "x");
orig_load(e, "width");
}
if (e.childNodes == undefined) return;
for(var i=0, c=e.childNodes; i<c.length; i++) {
zoom_reset(c[i]);
}
}
function zoom_child(e, x, ratio) {
if (e.attributes != undefined) {
if (e.attributes["x"] != undefined) {
orig_save(e, "x");
e.attributes["x"].value = (parseFloat(e.attributes["x"].value) - x - 10) * ratio + 10;
if(e.tagName == "text") e.attributes["x"].value = find_child(e.parentNode, "rect", "x") + 3;
}
if (e.attributes["width"] != undefined) {
orig_save(e, "width");
e.attributes["width"].value = parseFloat(e.attributes["width"].value) * ratio;
}
}
if (e.childNodes == undefined) return;
for(var i=0, c=e.childNodes; i<c.length; i++) {
zoom_child(c[i], x-10, ratio);
}
}
function zoom_parent(e) {
if (e.attributes) {
if (e.attributes["x"] != undefined) {
orig_save(e, "x");
e.attributes["x"].value = 10;
}
if (e.attributes["width"] != undefined) {
orig_save(e, "width");
e.attributes["width"].value = parseInt(svg.width.baseVal.value) - (10*2);
}
}
if (e.childNodes == undefined) return;
for(var i=0, c=e.childNodes; i<c.length; i++) {
zoom_parent(c[i]);
}
}
function zoom(node) {
var attr = find_child(node, "rect").attributes;
var width = parseFloat(attr["width"].value);
var xmin = parseFloat(attr["x"].value);
var xmax = parseFloat(xmin + width);
var ymin = parseFloat(attr["y"].value);
var ratio = (svg.width.baseVal.value - 2*10) / width;
// XXX: Workaround for JavaScript float issues (fix me)
var fudge = 0.0001;
var unzoombtn = document.getElementById("unzoom");
unzoombtn.style["opacity"] = "1.0";
var el = document.getElementsByTagName("g");
for(var i=0;i<el.length;i++){
var e = el[i];
var a = find_child(e, "rect").attributes;
var ex = parseFloat(a["x"].value);
var ew = parseFloat(a["width"].value);
// Is it an ancestor
if (0 == 0) {
var upstack = parseFloat(a["y"].value) > ymin;
} else {
var upstack = parseFloat(a["y"].value) < ymin;
}
if (upstack) {
// Direct ancestor
if (ex <= xmin && (ex+ew+fudge) >= xmax) {
e.style["opacity"] = "0.5";
zoom_parent(e);
e.onclick = function(e){unzoom(); zoom(this);};
update_text(e);
}
// not in current path
else
e.style["display"] = "none";
}
// Children maybe
else {
// no common path
if (ex < xmin || ex + fudge >= xmax) {
e.style["display"] = "none";
}
else {
zoom_child(e, xmin, ratio);
e.onclick = function(e){zoom(this);};
update_text(e);
}
}
}
}
function unzoom() {
var unzoombtn = document.getElementById("unzoom");
unzoombtn.style["opacity"] = "0.0";
var el = document.getElementsByTagName("g");
for(i=0;i<el.length;i++) {
el[i].style["display"] = "block";
el[i].style["opacity"] = "1";
zoom_reset(el[i]);
update_text(el[i]);
}
}
// search
function reset_search() {
var el = document.getElementsByTagName("rect");
for (var i=0; i < el.length; i++) {
orig_load(el[i], "fill")
}
}
function search_prompt() {
if (!searching) {
var term = prompt("Enter a search term (regexp " +
"allowed, eg: ^ext4_)", "");
if (term != null) {
search(term)
}
} else {
reset_search();
searching = 0;
searchbtn.style["opacity"] = "0.1";
searchbtn.firstChild.nodeValue = "Search"
matchedtxt.style["opacity"] = "0.0";
matchedtxt.firstChild.nodeValue = ""
}
}
function search(term) {
var re = new RegExp(term);
var el = document.getElementsByTagName("g");
var matches = new Object();
var maxwidth = 0;
for (var i = 0; i < el.length; i++) {
var e = el[i];
if (e.attributes["class"].value != "func_g")
continue;
var func = g_to_func(e);
var rect = find_child(e, "rect");
if (rect == null) {
// the rect might be wrapped in an anchor
// if nameattr href is being used
if (rect = find_child(e, "a")) {
rect = find_child(r, "rect");
}
}
if (func == null || rect == null)
continue;
// Save max width. Only works as we have a root frame
var w = parseFloat(rect.attributes["width"].value);
if (w > maxwidth)
maxwidth = w;
if (func.match(re)) {
// highlight
var x = parseFloat(rect.attributes["x"].value);
orig_save(rect, "fill");
rect.attributes["fill"].value =
"rgb(230,0,230)";
// remember matches
if (matches[x] == undefined) {
matches[x] = w;
} else {
if (w > matches[x]) {
// overwrite with parent
matches[x] = w;
}
}
searching = 1;
}
}
if (!searching)
return;
searchbtn.style["opacity"] = "1.0";
searchbtn.firstChild.nodeValue = "Reset Search"
// calculate percent matched, excluding vertical overlap
var count = 0;
var lastx = -1;
var lastw = 0;
var keys = Array();
for (k in matches) {
if (matches.hasOwnProperty(k))
keys.push(k);
}
// sort the matched frames by their x location
// ascending, then width descending
keys.sort(function(a, b){
return a - b;
});
// Step through frames saving only the biggest bottom-up frames
// thanks to the sort order. This relies on the tree property
// where children are always smaller than their parents.
var fudge = 0.0001; // JavaScript floating point
for (var k in keys) {
var x = parseFloat(keys[k]);
var w = matches[keys[k]];
if (x >= lastx + lastw - fudge) {
count += w;
lastx = x;
lastw = w;
}
}
// display matched percent
matchedtxt.style["opacity"] = "1.0";
pct = 100 * count / maxwidth;
if (pct == 100)
pct = "100"
else
pct = pct.toFixed(1)
matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%";
}
function searchover(e) {
searchbtn.style["opacity"] = "1.0";
}
function searchout(e) {
if (searching) {
searchbtn.style["opacity"] = "1.0";
} else {
searchbtn.style["opacity"] = "0.1";
}
}
]]>
</script>
<rect x="0.0" y="0" width="1200.0" height="1830.0" fill="url(#background)" />
<text text-anchor="middle" x="600.00" y="24" font-size="17" font-family="Verdana" fill="rgb(0,0,0)" >Flame Graph</text>
<text text-anchor="" x="10.00" y="1813" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="details" > </text>
<text text-anchor="" x="10.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="unzoom" onclick="unzoom()" style="opacity:0.0;cursor:pointer" >Reset Zoom</text>
<text text-anchor="" x="1090.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="search" onmouseover="searchover()" onmouseout="searchout()" onclick="search_prompt()" style="opacity:0.1;cursor:pointer" >Search</text>
<text text-anchor="" x="1090.00" y="1813" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="matched" > </text>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/DefaultStreamMessage.subscribe (3,004,510 samples, 8.73%)</title><rect x="540.3" y="1461" width="103.1" height="15.0" fill="rgb(243,219,25)" rx="2" ry="2" />
<text text-anchor="" x="543.35" y="1471.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >com/linecorp..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PoolThreadCache.add (6,705 samples, 0.02%)</title><rect x="925.6" y="629" width="0.3" height="15.0" fill="rgb(234,114,12)" rx="2" ry="2" />
<text text-anchor="" x="928.64" y="639.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_mm_fault (4,173 samples, 0.01%)</title><rect x="581.7" y="1221" width="0.1" height="15.0" fill="rgb(207,184,19)" rx="2" ry="2" />
<text text-anchor="" x="584.70" y="1231.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/AbstractStreamMessageAndWriter.tryWrite (238,340 samples, 0.69%)</title><rect x="78.8" y="1125" width="8.1" height="15.0" fill="rgb(220,26,30)" rx="2" ry="2" />
<text text-anchor="" x="81.76" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>process_backlog (115,659 samples, 0.34%)</title><rect x="835.3" y="373" width="4.0" height="15.0" fill="rgb(245,57,30)" rx="2" ry="2" />
<text text-anchor="" x="838.32" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/HttpResponseDecoder$HttpResponseWrapper.cancelTimeout (6,132 samples, 0.02%)</title><rect x="766.3" y="1557" width="0.2" height="15.0" fill="rgb(234,69,29)" rx="2" ry="2" />
<text text-anchor="" x="769.32" y="1567.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>ip_finish_output (94,977 samples, 0.28%)</title><rect x="686.2" y="517" width="3.3" height="15.0" fill="rgb(208,97,32)" rx="2" ry="2" />
<text text-anchor="" x="689.22" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>ip_output (57,498 samples, 0.17%)</title><rect x="741.6" y="597" width="1.9" height="15.0" fill="rgb(207,200,52)" rx="2" ry="2" />
<text text-anchor="" x="744.58" y="607.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_rcv_established (55,325 samples, 0.16%)</title><rect x="687.6" y="261" width="1.9" height="15.0" fill="rgb(241,212,7)" rx="2" ry="2" />
<text text-anchor="" x="690.55" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite0 (162,449 samples, 0.47%)</title><rect x="943.1" y="885" width="5.6" height="15.0" fill="rgb(208,169,39)" rx="2" ry="2" />
<text text-anchor="" x="946.11" y="895.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/DefaultStreamMessage.notifySubscriber (1,280,659 samples, 3.72%)</title><rect x="113.0" y="1061" width="44.0" height="15.0" fill="rgb(222,168,2)" rx="2" ry="2" />
<text text-anchor="" x="116.03" y="1071.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >com/..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>native_flush_tlb_others (3,099 samples, 0.01%)</title><rect x="357.1" y="837" width="0.1" height="15.0" fill="rgb(228,191,25)" rx="2" ry="2" />
<text text-anchor="" x="360.13" y="847.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/ReferenceCountUtil.release (13,430 samples, 0.04%)</title><rect x="617.0" y="757" width="0.5" height="15.0" fill="rgb(225,175,53)" rx="2" ry="2" />
<text text-anchor="" x="619.99" y="767.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/internal/PlatformDependent.hashCodeAscii (15,552 samples, 0.05%)</title><rect x="544.5" y="1317" width="0.5" height="15.0" fill="rgb(222,62,50)" rx="2" ry="2" />
<text text-anchor="" x="547.46" y="1327.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/CodecOutputList.newInstance (19,307 samples, 0.06%)</title><rect x="366.2" y="1349" width="0.6" height="15.0" fill="rgb(224,135,29)" rx="2" ry="2" />
<text text-anchor="" x="369.15" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__wake_up_common (39,364 samples, 0.11%)</title><rect x="837.3" y="181" width="1.4" height="15.0" fill="rgb(240,59,16)" rx="2" ry="2" />
<text text-anchor="" x="840.31" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/util/AbstractOptions.get0 (20,333 samples, 0.06%)</title><rect x="1048.0" y="1429" width="0.7" height="15.0" fill="rgb(226,78,14)" rx="2" ry="2" />
<text text-anchor="" x="1051.00" y="1439.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_event_data_recv (4,409 samples, 0.01%)</title><rect x="630.4" y="245" width="0.1" height="15.0" fill="rgb(219,211,51)" rx="2" ry="2" />
<text text-anchor="" x="633.35" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeFlush0 (577,695 samples, 1.68%)</title><rect x="891.9" y="1221" width="19.8" height="15.0" fill="rgb(254,126,30)" rx="2" ry="2" />
<text text-anchor="" x="894.85" y="1231.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeChannelReadComplete (1,394,455 samples, 4.05%)</title><rect x="380.4" y="1589" width="47.8" height="15.0" fill="rgb(223,111,40)" rx="2" ry="2" />
<text text-anchor="" x="383.38" y="1599.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >io/n..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>do_futex (10,908 samples, 0.03%)</title><rect x="1051.7" y="1397" width="0.4" height="15.0" fill="rgb(237,4,34)" rx="2" ry="2" />
<text text-anchor="" x="1054.74" y="1407.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/WeightedFairQueueByteDistributor.distributeToChildren (371,362 samples, 1.08%)</title><rect x="937.3" y="1141" width="12.8" height="15.0" fill="rgb(248,141,30)" rx="2" ry="2" />
<text text-anchor="" x="940.33" y="1151.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>futex_wake (47,325 samples, 0.14%)</title><rect x="1103.8" y="1349" width="1.6" height="15.0" fill="rgb(243,1,52)" rx="2" ry="2" />
<text text-anchor="" x="1106.77" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractCoalescingBufferQueue.add (103,348 samples, 0.30%)</title><rect x="914.6" y="1189" width="3.6" height="15.0" fill="rgb(232,55,5)" rx="2" ry="2" />
<text text-anchor="" x="917.63" y="1199.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>do_numa_page (6,832 samples, 0.02%)</title><rect x="659.6" y="1221" width="0.2" height="15.0" fill="rgb(231,162,30)" rx="2" ry="2" />
<text text-anchor="" x="662.60" y="1231.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java_lang_Throwable::fill_in_stack_trace(Handle, methodHandle const&amp;, Thread*) (9,670 samples, 0.03%)</title><rect x="694.5" y="837" width="0.4" height="15.0" fill="rgb(236,104,9)" rx="2" ry="2" />
<text text-anchor="" x="697.54" y="847.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2Headers$Http2HeaderEntry.&lt;init&gt; (67,727 samples, 0.20%)</title><rect x="355.4" y="1061" width="2.4" height="15.0" fill="rgb(219,132,48)" rx="2" ry="2" />
<text text-anchor="" x="358.44" y="1071.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>fget_light (4,672 samples, 0.01%)</title><rect x="520.1" y="1637" width="0.1" height="15.0" fill="rgb(232,205,18)" rx="2" ry="2" />
<text text-anchor="" x="523.06" y="1647.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>org/jctools/queues/MpscChunkedArrayQueue.&lt;init&gt; (71,077 samples, 0.21%)</title><rect x="1076.4" y="1445" width="2.4" height="15.0" fill="rgb(208,45,25)" rx="2" ry="2" />
<text text-anchor="" x="1079.40" y="1455.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/AsciiString.hashCode (3,041 samples, 0.01%)</title><rect x="1166.1" y="1381" width="0.1" height="15.0" fill="rgb(206,74,27)" rx="2" ry="2" />
<text text-anchor="" x="1169.07" y="1391.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/AbstractQueue.add (98,392 samples, 0.29%)</title><rect x="199.3" y="981" width="3.4" height="15.0" fill="rgb(222,183,20)" rx="2" ry="2" />
<text text-anchor="" x="202.28" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/lang/StringLatin1.hashCode (9,539 samples, 0.03%)</title><rect x="265.5" y="965" width="0.3" height="15.0" fill="rgb(220,73,46)" rx="2" ry="2" />
<text text-anchor="" x="268.46" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2FrameWriter.writeData (245,471 samples, 0.71%)</title><rect x="941.2" y="1045" width="8.4" height="15.0" fill="rgb(207,80,1)" rx="2" ry="2" />
<text text-anchor="" x="944.15" y="1055.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.flush (689,673 samples, 2.00%)</title><rect x="767.9" y="1317" width="23.7" height="15.0" fill="rgb(217,111,42)" rx="2" ry="2" />
<text text-anchor="" x="770.94" y="1327.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >i..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>BacktraceBuilder::expand(Thread*) (3,457 samples, 0.01%)</title><rect x="748.0" y="885" width="0.2" height="15.0" fill="rgb(245,86,2)" rx="2" ry="2" />
<text text-anchor="" x="751.04" y="895.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_stream_memory_free (28,123 samples, 0.08%)</title><rect x="44.5" y="1541" width="1.0" height="15.0" fill="rgb(232,115,19)" rx="2" ry="2" />
<text text-anchor="" x="47.54" y="1551.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>do_page_fault (7,735 samples, 0.02%)</title><rect x="190.6" y="1077" width="0.3" height="15.0" fill="rgb(232,12,8)" rx="2" ry="2" />
<text text-anchor="" x="193.63" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite (174,878 samples, 0.51%)</title><rect x="748.8" y="1109" width="6.0" height="15.0" fill="rgb(242,212,11)" rx="2" ry="2" />
<text text-anchor="" x="751.85" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/util/AbstractOptions.get0 (62,842 samples, 0.18%)</title><rect x="1037.8" y="1413" width="2.1" height="15.0" fill="rgb(254,176,30)" rx="2" ry="2" />
<text text-anchor="" x="1040.76" y="1423.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PoolThreadCache$MemoryRegionCache.trim (8,051 samples, 0.02%)</title><rect x="600.4" y="1125" width="0.3" height="15.0" fill="rgb(252,198,25)" rx="2" ry="2" />
<text text-anchor="" x="603.39" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>task_waking_fair (4,765 samples, 0.01%)</title><rect x="1155.6" y="1125" width="0.1" height="15.0" fill="rgb(224,186,49)" rx="2" ry="2" />
<text text-anchor="" x="1158.57" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>skb_release_data (169,678 samples, 0.49%)</title><rect x="498.3" y="1061" width="5.8" height="15.0" fill="rgb(232,39,19)" rx="2" ry="2" />
<text text-anchor="" x="501.30" y="1071.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/LinkedHashMap.newNode (4,181 samples, 0.01%)</title><rect x="595.6" y="1205" width="0.2" height="15.0" fill="rgb(254,178,47)" rx="2" ry="2" />
<text text-anchor="" x="598.62" y="1215.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.flush (720,173 samples, 2.09%)</title><rect x="767.0" y="1525" width="24.7" height="15.0" fill="rgb(248,15,30)" rx="2" ry="2" />
<text text-anchor="" x="770.00" y="1535.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >i..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/DefaultStreamMessage$$Lambda$330/218897112.run (33,344 samples, 0.10%)</title><rect x="999.8" y="1653" width="1.2" height="15.0" fill="rgb(222,153,33)" rx="2" ry="2" />
<text text-anchor="" x="1002.83" y="1663.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>jdk/internal/misc/Unsafe.setMemory (3,625 samples, 0.01%)</title><rect x="715.0" y="1365" width="0.1" height="15.0" fill="rgb(214,166,5)" rx="2" ry="2" />
<text text-anchor="" x="717.99" y="1375.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPromise.addListener (40,450 samples, 0.12%)</title><rect x="596.5" y="1301" width="1.4" height="15.0" fill="rgb(253,177,34)" rx="2" ry="2" />
<text text-anchor="" x="599.53" y="1311.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>org/jctools/queues/BaseMpscLinkedArrayQueue.&lt;init&gt; (118,105 samples, 0.34%)</title><rect x="190.9" y="1077" width="4.1" height="15.0" fill="rgb(215,83,10)" rx="2" ry="2" />
<text text-anchor="" x="193.90" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/util/AbstractOptions.get0 (53,610 samples, 0.16%)</title><rect x="1012.3" y="1461" width="1.8" height="15.0" fill="rgb(227,87,19)" rx="2" ry="2" />
<text text-anchor="" x="1015.25" y="1471.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>try_to_unmap_one (3,861 samples, 0.01%)</title><rect x="194.2" y="853" width="0.1" height="15.0" fill="rgb(209,19,27)" rx="2" ry="2" />
<text text-anchor="" x="197.20" y="863.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/HttpResponseDecoder$HttpResponseWrapper$$Lambda$750/1311671315.accept (633,754 samples, 1.84%)</title><rect x="91.2" y="1125" width="21.8" height="15.0" fill="rgb(210,28,27)" rx="2" ry="2" />
<text text-anchor="" x="94.23" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >c..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__netif_receive_skb_core (118,850 samples, 0.35%)</title><rect x="932.3" y="325" width="4.1" height="15.0" fill="rgb(213,200,19)" rx="2" ry="2" />
<text text-anchor="" x="935.31" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__netif_receive_skb_core (1,074,584 samples, 3.12%)</title><rect x="477.6" y="1237" width="36.9" height="15.0" fill="rgb(230,206,39)" rx="2" ry="2" />
<text text-anchor="" x="480.63" y="1247.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >__n..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_queue_rcv (8,040 samples, 0.02%)</title><rect x="743.2" y="309" width="0.3" height="15.0" fill="rgb(220,25,2)" rx="2" ry="2" />
<text text-anchor="" x="746.24" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/internal/ReadSuppressingHandler.read (94,801 samples, 0.28%)</title><rect x="432.3" y="1381" width="3.2" height="15.0" fill="rgb(244,60,11)" rx="2" ry="2" />
<text text-anchor="" x="435.28" y="1391.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2Connection$ActiveStreams.removeFromActiveStreams (13,806 samples, 0.04%)</title><rect x="692.6" y="1013" width="0.5" height="15.0" fill="rgb(228,229,20)" rx="2" ry="2" />
<text text-anchor="" x="695.65" y="1023.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/grpc/ArmeriaClientCall.&lt;init&gt; (315,924 samples, 0.92%)</title><rect x="1053.1" y="1493" width="10.8" height="15.0" fill="rgb(231,107,47)" rx="2" ry="2" />
<text text-anchor="" x="1056.05" y="1503.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>do_page_fault (8,704 samples, 0.03%)</title><rect x="311.7" y="1109" width="0.3" height="15.0" fill="rgb(238,73,54)" rx="2" ry="2" />
<text text-anchor="" x="314.67" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite (75,146 samples, 0.22%)</title><rect x="794.7" y="1317" width="2.6" height="15.0" fill="rgb(206,1,44)" rx="2" ry="2" />
<text text-anchor="" x="797.73" y="1327.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2Connection$DefaultStream.activate (30,055 samples, 0.09%)</title><rect x="595.3" y="1301" width="1.0" height="15.0" fill="rgb(209,5,49)" rx="2" ry="2" />
<text text-anchor="" x="598.32" y="1311.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_event_new_data_sent (22,117 samples, 0.06%)</title><rect x="777.0" y="869" width="0.8" height="15.0" fill="rgb(231,56,3)" rx="2" ry="2" />
<text text-anchor="" x="780.01" y="879.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeFlush (694,850 samples, 2.02%)</title><rect x="666.8" y="1157" width="23.9" height="15.0" fill="rgb(228,131,20)" rx="2" ry="2" />
<text text-anchor="" x="669.82" y="1167.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >i..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/AsciiString.toLowerCase (8,562 samples, 0.02%)</title><rect x="545.2" y="1317" width="0.3" height="15.0" fill="rgb(252,148,49)" rx="2" ry="2" />
<text text-anchor="" x="548.24" y="1327.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__libc_writev (3,391 samples, 0.01%)</title><rect x="645.4" y="965" width="0.1" height="15.0" fill="rgb(249,136,22)" rx="2" ry="2" />
<text text-anchor="" x="648.38" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/HttpClientDelegate.release (17,142 samples, 0.05%)</title><rect x="524.7" y="1493" width="0.6" height="15.0" fill="rgb(215,47,35)" rx="2" ry="2" />
<text text-anchor="" x="527.71" y="1503.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/AsciiString$2.hashCode (16,028 samples, 0.05%)</title><rect x="358.8" y="1109" width="0.5" height="15.0" fill="rgb(228,36,3)" rx="2" ry="2" />
<text text-anchor="" x="361.77" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeFlush (569,950 samples, 1.66%)</title><rect x="612.2" y="1093" width="19.6" height="15.0" fill="rgb(240,17,38)" rx="2" ry="2" />
<text text-anchor="" x="615.21" y="1103.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PoolThreadCache.trim (4,049 samples, 0.01%)</title><rect x="951.0" y="1253" width="0.1" height="15.0" fill="rgb(211,86,10)" rx="2" ry="2" />
<text text-anchor="" x="953.97" y="1263.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/Collections$SetFromMap.add (138,963 samples, 0.40%)</title><rect x="107.4" y="901" width="4.8" height="15.0" fill="rgb(243,207,21)" rx="2" ry="2" />
<text text-anchor="" x="110.40" y="911.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PoolThreadCache.trim (8,413 samples, 0.02%)</title><rect x="807.8" y="1013" width="0.2" height="15.0" fill="rgb(227,187,50)" rx="2" ry="2" />
<text text-anchor="" x="810.76" y="1023.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>idle_cpu (13,647 samples, 0.04%)</title><rect x="907.5" y="53" width="0.4" height="15.0" fill="rgb(245,26,18)" rx="2" ry="2" />
<text text-anchor="" x="910.47" y="63.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>itable stub (3,992 samples, 0.01%)</title><rect x="435.5" y="1381" width="0.2" height="15.0" fill="rgb(235,100,33)" rx="2" ry="2" />
<text text-anchor="" x="438.53" y="1391.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>sock_def_readable (26,048 samples, 0.08%)</title><rect x="688.1" y="245" width="0.9" height="15.0" fill="rgb(237,185,21)" rx="2" ry="2" />
<text text-anchor="" x="691.06" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/github/benmanes/caffeine/cache/BLCHeader$DrainStatusRef.shouldDrainBuffers (24,615 samples, 0.07%)</title><rect x="847.6" y="1221" width="0.9" height="15.0" fill="rgb(252,208,16)" rx="2" ry="2" />
<text text-anchor="" x="850.64" y="1231.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/CompletableFuture.newIncompleteFuture (152,549 samples, 0.44%)</title><rect x="535.1" y="1429" width="5.2" height="15.0" fill="rgb(214,102,6)" rx="2" ry="2" />
<text text-anchor="" x="538.07" y="1439.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_mm_fault (8,138 samples, 0.02%)</title><rect x="172.5" y="981" width="0.3" height="15.0" fill="rgb(206,198,16)" rx="2" ry="2" />
<text text-anchor="" x="175.52" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PoolArena.allocateNormal (6,348 samples, 0.02%)</title><rect x="722.1" y="1349" width="0.2" height="15.0" fill="rgb(243,199,5)" rx="2" ry="2" />
<text text-anchor="" x="725.06" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/epoll/AbstractEpollStreamChannel.doWriteMultiple (432,511 samples, 1.26%)</title><rect x="825.3" y="805" width="14.8" height="15.0" fill="rgb(242,71,19)" rx="2" ry="2" />
<text text-anchor="" x="828.29" y="815.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>process_backlog (55,050 samples, 0.16%)</title><rect x="741.7" y="469" width="1.8" height="15.0" fill="rgb(246,153,13)" rx="2" ry="2" />
<text text-anchor="" x="744.65" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/github/benmanes/caffeine/cache/LocalLoadingCache.get (95,729 samples, 0.28%)</title><rect x="163.1" y="1125" width="3.2" height="15.0" fill="rgb(223,52,51)" rx="2" ry="2" />
<text text-anchor="" x="166.05" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>org/jctools/queues/BaseMpscLinkedArrayQueueConsumerFields.&lt;init&gt; (71,077 samples, 0.21%)</title><rect x="1076.4" y="1365" width="2.4" height="15.0" fill="rgb(248,67,2)" rx="2" ry="2" />
<text text-anchor="" x="1079.40" y="1375.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeFlush (156,515 samples, 0.45%)</title><rect x="402.3" y="965" width="5.4" height="15.0" fill="rgb(239,152,17)" rx="2" ry="2" />
<text text-anchor="" x="405.32" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>BacktraceBuilder::expand(Thread*) (16,933 samples, 0.05%)</title><rect x="515.7" y="1381" width="0.6" height="15.0" fill="rgb(237,100,37)" rx="2" ry="2" />
<text text-anchor="" x="518.68" y="1391.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/DefaultStreamMessage.addObjectOrEvent (48,945 samples, 0.14%)</title><rect x="75.5" y="1109" width="1.7" height="15.0" fill="rgb(238,145,39)" rx="2" ry="2" />
<text text-anchor="" x="78.48" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/CompletableFuture.newIncompleteFuture (12,872 samples, 0.04%)</title><rect x="277.3" y="1045" width="0.4" height="15.0" fill="rgb(226,172,5)" rx="2" ry="2" />
<text text-anchor="" x="280.27" y="1055.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/ConcurrentHashMap.get (95,521 samples, 0.28%)</title><rect x="163.1" y="1077" width="3.2" height="15.0" fill="rgb(205,132,25)" rx="2" ry="2" />
<text text-anchor="" x="166.06" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/NonWrappingRequestContext.invokeOnExitCallbacks (3,583 samples, 0.01%)</title><rect x="76.3" y="901" width="0.1" height="15.0" fill="rgb(244,185,12)" rx="2" ry="2" />
<text text-anchor="" x="79.31" y="911.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>dequeue_task (34,170 samples, 0.10%)</title><rect x="49.4" y="1509" width="1.2" height="15.0" fill="rgb(232,157,14)" rx="2" ry="2" />
<text text-anchor="" x="52.42" y="1519.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>try_to_wake_up (574,789 samples, 1.67%)</title><rect x="129.4" y="693" width="19.8" height="15.0" fill="rgb(226,185,54)" rx="2" ry="2" />
<text text-anchor="" x="132.45" y="703.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeChannelRead (9,067,703 samples, 26.36%)</title><rect x="60.5" y="1445" width="311.0" height="15.0" fill="rgb(246,178,34)" rx="2" ry="2" />
<text text-anchor="" x="63.51" y="1455.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >io/netty/channel/AbstractChannelHandlerCo..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2Headers.status (3,935 samples, 0.01%)</title><rect x="598.0" y="1317" width="0.1" height="15.0" fill="rgb(206,73,24)" rx="2" ry="2" />
<text text-anchor="" x="600.96" y="1327.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/AbstractReferenceCountedByteBuf.touch (7,730 samples, 0.02%)</title><rect x="706.8" y="1525" width="0.3" height="15.0" fill="rgb(237,77,0)" rx="2" ry="2" />
<text text-anchor="" x="709.85" y="1535.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/ResourceLeakDetector.track0 (10,801 samples, 0.03%)</title><rect x="694.5" y="981" width="0.4" height="15.0" fill="rgb(253,57,28)" rx="2" ry="2" />
<text text-anchor="" x="697.54" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite0 (238,365 samples, 0.69%)</title><rect x="601.3" y="1253" width="8.2" height="15.0" fill="rgb(250,110,24)" rx="2" ry="2" />
<text text-anchor="" x="604.28" y="1263.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/AbstractByteBuf.readableBytes (10,607 samples, 0.03%)</title><rect x="920.9" y="1157" width="0.4" height="15.0" fill="rgb(225,100,20)" rx="2" ry="2" />
<text text-anchor="" x="923.94" y="1167.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__wake_up_locked_key (4,026 samples, 0.01%)</title><rect x="519.6" y="1573" width="0.1" height="15.0" fill="rgb(253,153,41)" rx="2" ry="2" />
<text text-anchor="" x="522.61" y="1583.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/epoll/AbstractEpollStreamChannel.writeBytes (647,540 samples, 1.88%)</title><rect x="769.1" y="1109" width="22.2" height="15.0" fill="rgb(215,74,2)" rx="2" ry="2" />
<text text-anchor="" x="772.06" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >i..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__slab_free (5,067 samples, 0.01%)</title><rect x="829.5" y="485" width="0.1" height="15.0" fill="rgb(246,66,6)" rx="2" ry="2" />
<text text-anchor="" x="832.45" y="495.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>itable stub (8,764 samples, 0.03%)</title><rect x="440.1" y="1525" width="0.3" height="15.0" fill="rgb(228,186,6)" rx="2" ry="2" />
<text text-anchor="" x="443.07" y="1535.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPipeline$HeadContext.readIfIsAutoRead (354,791 samples, 1.03%)</title><rect x="428.2" y="1605" width="12.2" height="15.0" fill="rgb(254,53,19)" rx="2" ry="2" />
<text text-anchor="" x="431.20" y="1615.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>jdk/internal/misc/Unsafe.allocateMemory (6,522 samples, 0.02%)</title><rect x="714.8" y="1381" width="0.2" height="15.0" fill="rgb(229,115,1)" rx="2" ry="2" />
<text text-anchor="" x="717.77" y="1391.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>SafepointSynchronize::begin() (3,255 samples, 0.01%)</title><rect x="1189.2" y="1701" width="0.1" height="15.0" fill="rgb(206,32,9)" rx="2" ry="2" />
<text text-anchor="" x="1192.20" y="1711.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/AbstractExecutorService.submit (43,928 samples, 0.13%)</title><rect x="1119.5" y="1445" width="1.5" height="15.0" fill="rgb(210,76,19)" rx="2" ry="2" />
<text text-anchor="" x="1122.46" y="1455.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeRead (120,588 samples, 0.35%)</title><rect x="431.5" y="1397" width="4.2" height="15.0" fill="rgb(241,165,52)" rx="2" ry="2" />
<text text-anchor="" x="434.53" y="1407.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>jlong_disjoint_arraycopy (3,364 samples, 0.01%)</title><rect x="1168.8" y="1413" width="0.2" height="15.0" fill="rgb(205,118,43)" rx="2" ry="2" />
<text text-anchor="" x="1171.84" y="1423.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/AsciiString.toLowerCase (42,636 samples, 0.12%)</title><rect x="1073.4" y="1397" width="1.5" height="15.0" fill="rgb(217,144,10)" rx="2" ry="2" />
<text text-anchor="" x="1076.40" y="1407.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/ResourceLeakDetector$DefaultResourceLeak.&lt;init&gt; (26,845 samples, 0.08%)</title><rect x="515.6" y="1525" width="0.9" height="15.0" fill="rgb(236,15,36)" rx="2" ry="2" />
<text text-anchor="" x="518.59" y="1535.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/CompletableFuture.uniWhenComplete (20,383 samples, 0.06%)</title><rect x="755.8" y="1461" width="0.7" height="15.0" fill="rgb(227,80,39)" rx="2" ry="2" />
<text text-anchor="" x="758.84" y="1471.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannel.flush (5,674 samples, 0.02%)</title><rect x="645.3" y="1589" width="0.2" height="15.0" fill="rgb(245,92,52)" rx="2" ry="2" />
<text text-anchor="" x="648.31" y="1599.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2Connection$ActiveStreams.removeFromActiveStreams (50,488 samples, 0.15%)</title><rect x="314.2" y="1109" width="1.7" height="15.0" fill="rgb(253,52,15)" rx="2" ry="2" />
<text text-anchor="" x="317.18" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPromise.addListener (26,751 samples, 0.08%)</title><rect x="746.9" y="1125" width="0.9" height="15.0" fill="rgb(221,72,48)" rx="2" ry="2" />
<text text-anchor="" x="749.87" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__do_page_fault (11,111 samples, 0.03%)</title><rect x="1047.6" y="1349" width="0.4" height="15.0" fill="rgb(208,217,24)" rx="2" ry="2" />
<text text-anchor="" x="1050.61" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeChannelRead (9,205,648 samples, 26.76%)</title><rect x="57.4" y="1509" width="315.8" height="15.0" fill="rgb(231,123,5)" rx="2" ry="2" />
<text text-anchor="" x="60.45" y="1519.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >io/netty/channel/AbstractChannelHandlerCon..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPipeline$HeadContext.flush (14,546 samples, 0.04%)</title><rect x="405.7" y="869" width="0.5" height="15.0" fill="rgb(229,125,26)" rx="2" ry="2" />
<text text-anchor="" x="408.71" y="879.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/DefaultPromise.addListener (47,258 samples, 0.14%)</title><rect x="875.6" y="1141" width="1.6" height="15.0" fill="rgb(209,180,52)" rx="2" ry="2" />
<text text-anchor="" x="878.59" y="1151.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/FastThreadLocalRunnable.run (28,716,840 samples, 83.47%)</title><rect x="17.9" y="1749" width="984.9" height="15.0" fill="rgb(207,19,17)" rx="2" ry="2" />
<text text-anchor="" x="20.90" y="1759.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >io/netty/util/concurrent/FastThreadLocalRunnable.run</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PoolArena.free (7,594 samples, 0.02%)</title><rect x="894.9" y="645" width="0.2" height="15.0" fill="rgb(231,124,16)" rx="2" ry="2" />
<text text-anchor="" x="897.87" y="655.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_pte_fault (12,831 samples, 0.04%)</title><rect x="185.8" y="965" width="0.5" height="15.0" fill="rgb(239,156,46)" rx="2" ry="2" />
<text text-anchor="" x="188.83" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2Connection$DefaultStream.close (26,739 samples, 0.08%)</title><rect x="691.7" y="1045" width="0.9" height="15.0" fill="rgb(227,42,42)" rx="2" ry="2" />
<text text-anchor="" x="694.72" y="1055.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/HttpRequestSubscriber.operationComplete (41,688 samples, 0.12%)</title><rect x="733.1" y="533" width="1.5" height="15.0" fill="rgb(252,175,27)" rx="2" ry="2" />
<text text-anchor="" x="736.13" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/collection/IntObjectHashMap.remove (13,742 samples, 0.04%)</title><rect x="692.6" y="981" width="0.5" height="15.0" fill="rgb(222,3,45)" rx="2" ry="2" />
<text text-anchor="" x="695.65" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/timeout/IdleStateHandler.channelReadComplete (9,858 samples, 0.03%)</title><rect x="439.7" y="1525" width="0.4" height="15.0" fill="rgb(249,156,7)" rx="2" ry="2" />
<text text-anchor="" x="442.73" y="1535.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/server/HttpResponseSubscriber.write (1,358,237 samples, 3.95%)</title><rect x="865.4" y="1269" width="46.6" height="15.0" fill="rgb(247,4,4)" rx="2" ry="2" />
<text text-anchor="" x="868.37" y="1279.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >com/..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>system_call_fastpath (9,151 samples, 0.03%)</title><rect x="106.6" y="837" width="0.3" height="15.0" fill="rgb(210,164,33)" rx="2" ry="2" />
<text text-anchor="" x="109.56" y="847.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/Http2ResponseDecoder.addResponse (391,755 samples, 1.14%)</title><rect x="526.9" y="1477" width="13.4" height="15.0" fill="rgb(244,175,14)" rx="2" ry="2" />
<text text-anchor="" x="529.91" y="1487.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/Recycler.get (9,964 samples, 0.03%)</title><rect x="944.9" y="565" width="0.3" height="15.0" fill="rgb(206,126,33)" rx="2" ry="2" />
<text text-anchor="" x="947.87" y="575.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>native_smp_send_reschedule (5,207 samples, 0.02%)</title><rect x="906.3" y="69" width="0.2" height="15.0" fill="rgb(225,40,44)" rx="2" ry="2" />
<text text-anchor="" x="909.34" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_write_xmit (141,105 samples, 0.41%)</title><rect x="684.7" y="597" width="4.8" height="15.0" fill="rgb(223,224,53)" rx="2" ry="2" />
<text text-anchor="" x="687.70" y="607.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/DefaultHeaders$HeaderEntry.pointNeighborsToThis (13,087 samples, 0.04%)</title><rect x="1166.2" y="1333" width="0.4" height="15.0" fill="rgb(242,200,53)" rx="2" ry="2" />
<text text-anchor="" x="1169.17" y="1343.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>do_sync_readv_writev (372,184 samples, 1.08%)</title><rect x="677.6" y="693" width="12.7" height="15.0" fill="rgb(239,170,33)" rx="2" ry="2" />
<text text-anchor="" x="680.56" y="703.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder.requireStream (2,996 samples, 0.01%)</title><rect x="724.5" y="1413" width="0.1" height="15.0" fill="rgb(209,46,21)" rx="2" ry="2" />
<text text-anchor="" x="727.55" y="1423.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__local_bh_enable_ip (116,811 samples, 0.34%)</title><rect x="835.3" y="453" width="4.0" height="15.0" fill="rgb(242,44,33)" rx="2" ry="2" />
<text text-anchor="" x="838.28" y="463.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/RequestContext.push (17,850 samples, 0.05%)</title><rect x="79.0" y="933" width="0.6" height="15.0" fill="rgb(228,72,9)" rx="2" ry="2" />
<text text-anchor="" x="82.02" y="943.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.flush (556,566 samples, 1.62%)</title><rect x="892.4" y="1125" width="19.1" height="15.0" fill="rgb(206,5,48)" rx="2" ry="2" />
<text text-anchor="" x="895.40" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>tcp_v4_do_rcv (84,237 samples, 0.24%)</title><rect x="933.5" y="229" width="2.9" height="15.0" fill="rgb(226,104,42)" rx="2" ry="2" />
<text text-anchor="" x="936.48" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/AbstractQueue.remove (81,253 samples, 0.24%)</title><rect x="704.0" y="1461" width="2.8" height="15.0" fill="rgb(217,162,12)" rx="2" ry="2" />
<text text-anchor="" x="707.02" y="1471.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__GI___libc_write (5,874 samples, 0.02%)</title><rect x="520.1" y="1685" width="0.2" height="15.0" fill="rgb(216,126,37)" rx="2" ry="2" />
<text text-anchor="" x="523.06" y="1695.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/ReferenceCountUtil.touch (15,064 samples, 0.04%)</title><rect x="605.6" y="837" width="0.5" height="15.0" fill="rgb(210,13,16)" rx="2" ry="2" />
<text text-anchor="" x="608.57" y="847.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/ChannelDuplexHandler.flush (345,197 samples, 1.00%)</title><rect x="732.3" y="1045" width="11.8" height="15.0" fill="rgb(212,148,19)" rx="2" ry="2" />
<text text-anchor="" x="735.27" y="1055.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPipeline.touch (24,424 samples, 0.07%)</title><rect x="947.7" y="741" width="0.8" height="15.0" fill="rgb(228,110,48)" rx="2" ry="2" />
<text text-anchor="" x="950.67" y="751.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>BacktraceBuilder::expand(Thread*) (3,455 samples, 0.01%)</title><rect x="950.6" y="1125" width="0.2" height="15.0" fill="rgb(251,105,40)" rx="2" ry="2" />
<text text-anchor="" x="953.64" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/epoll/AbstractEpollChannel$AbstractEpollUnsafe.flush0 (432,511 samples, 1.26%)</title><rect x="825.3" y="853" width="14.8" height="15.0" fill="rgb(230,78,15)" rx="2" ry="2" />
<text text-anchor="" x="828.29" y="863.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>VMThread::run() (21,516 samples, 0.06%)</title><rect x="1189.2" y="1733" width="0.7" height="15.0" fill="rgb(210,207,23)" rx="2" ry="2" />
<text text-anchor="" x="1192.20" y="1743.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>ksize (8,007 samples, 0.02%)</title><rect x="683.6" y="597" width="0.2" height="15.0" fill="rgb(251,103,48)" rx="2" ry="2" />
<text text-anchor="" x="686.55" y="607.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/DefaultHttp2FrameReader.readDataFrame (452,676 samples, 1.32%)</title><rect x="72.8" y="1237" width="15.5" height="15.0" fill="rgb(249,17,47)" rx="2" ry="2" />
<text text-anchor="" x="75.77" y="1247.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/DefaultPromise.setValue0 (6,275 samples, 0.02%)</title><rect x="643.8" y="1589" width="0.3" height="15.0" fill="rgb(237,21,52)" rx="2" ry="2" />
<text text-anchor="" x="646.84" y="1599.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/AbstractList.hashCode (8,275 samples, 0.02%)</title><rect x="274.7" y="981" width="0.3" height="15.0" fill="rgb(234,170,52)" rx="2" ry="2" />
<text text-anchor="" x="277.73" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>sys_writev (312,034 samples, 0.91%)</title><rect x="925.9" y="693" width="10.7" height="15.0" fill="rgb(217,26,7)" rx="2" ry="2" />
<text text-anchor="" x="928.92" y="703.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/AbstractQueue.add (40,748 samples, 0.12%)</title><rect x="733.2" y="469" width="1.4" height="15.0" fill="rgb(246,162,9)" rx="2" ry="2" />
<text text-anchor="" x="736.15" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/internal/grpc/HttpStreamReader.onNext (37,752 samples, 0.11%)</title><rect x="75.8" y="1045" width="1.3" height="15.0" fill="rgb(248,42,26)" rx="2" ry="2" />
<text text-anchor="" x="78.82" y="1055.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/AsciiString.toLowerCase (29,594 samples, 0.09%)</title><rect x="186.3" y="1077" width="1.0" height="15.0" fill="rgb(241,28,20)" rx="2" ry="2" />
<text text-anchor="" x="189.31" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>numa_migrate_prep (9,596 samples, 0.03%)</title><rect x="357.2" y="949" width="0.4" height="15.0" fill="rgb(232,59,16)" rx="2" ry="2" />
<text text-anchor="" x="360.25" y="959.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/unix/FileDescriptor.writevAddresses (466,811 samples, 1.36%)</title><rect x="895.2" y="757" width="16.0" height="15.0" fill="rgb(251,161,28)" rx="2" ry="2" />
<text text-anchor="" x="898.16" y="767.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PooledSlicedByteBuf.newInstance0 (15,138 samples, 0.04%)</title><rect x="878.2" y="1109" width="0.5" height="15.0" fill="rgb(221,54,35)" rx="2" ry="2" />
<text text-anchor="" x="881.22" y="1119.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/ArrayList.grow (33,668 samples, 0.10%)</title><rect x="719.0" y="1477" width="1.1" height="15.0" fill="rgb(219,167,17)" rx="2" ry="2" />
<text text-anchor="" x="721.97" y="1487.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_mm_fault (4,891 samples, 0.01%)</title><rect x="89.3" y="1061" width="0.1" height="15.0" fill="rgb(244,64,43)" rx="2" ry="2" />
<text text-anchor="" x="92.28" y="1071.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__dev_queue_xmit (9,418 samples, 0.03%)</title><rect x="477.2" y="1349" width="0.3" height="15.0" fill="rgb(241,42,47)" rx="2" ry="2" />
<text text-anchor="" x="480.18" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/RequestContextThreadLocal.getAndSet (40,832 samples, 0.12%)</title><rect x="844.2" y="1301" width="1.4" height="15.0" fill="rgb(245,169,13)" rx="2" ry="2" />
<text text-anchor="" x="847.25" y="1311.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/FastThreadLocal.addToVariablesToRemove (17,584 samples, 0.05%)</title><rect x="79.0" y="853" width="0.6" height="15.0" fill="rgb(233,57,20)" rx="2" ry="2" />
<text text-anchor="" x="82.02" y="863.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/internal/InternalThreadLocalMap.get (5,442 samples, 0.02%)</title><rect x="616.8" y="661" width="0.2" height="15.0" fill="rgb(213,107,0)" rx="2" ry="2" />
<text text-anchor="" x="619.78" y="671.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>jdk/internal/misc/Unsafe.freeMemory (65,702 samples, 0.19%)</title><rect x="671.6" y="501" width="2.3" height="15.0" fill="rgb(214,48,36)" rx="2" ry="2" />
<text text-anchor="" x="674.64" y="511.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/DefaultHttpHeaders.&lt;init&gt; (4,248 samples, 0.01%)</title><rect x="859.0" y="1365" width="0.2" height="15.0" fill="rgb(216,105,38)" rx="2" ry="2" />
<text text-anchor="" x="862.01" y="1375.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__list_add (3,215 samples, 0.01%)</title><rect x="781.7" y="469" width="0.1" height="15.0" fill="rgb(246,189,32)" rx="2" ry="2" />
<text text-anchor="" x="784.71" y="479.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPromise.addListener (47,258 samples, 0.14%)</title><rect x="875.6" y="1157" width="1.6" height="15.0" fill="rgb(207,209,17)" rx="2" ry="2" />
<text text-anchor="" x="878.59" y="1167.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/DefaultChannelPipeline.read (354,791 samples, 1.03%)</title><rect x="428.2" y="1573" width="12.2" height="15.0" fill="rgb(218,98,20)" rx="2" ry="2" />
<text text-anchor="" x="431.20" y="1583.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>ip_rcv_finish (350,555 samples, 1.02%)</title><rect x="778.9" y="629" width="12.0" height="15.0" fill="rgb(253,158,52)" rx="2" ry="2" />
<text text-anchor="" x="781.90" y="639.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/AsciiString.hashCode (16,028 samples, 0.05%)</title><rect x="358.8" y="1077" width="0.5" height="15.0" fill="rgb(226,173,11)" rx="2" ry="2" />
<text text-anchor="" x="361.77" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>do_page_fault (8,742 samples, 0.03%)</title><rect x="268.8" y="1013" width="0.3" height="15.0" fill="rgb(230,197,51)" rx="2" ry="2" />
<text text-anchor="" x="271.85" y="1023.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite0 (61,002 samples, 0.18%)</title><rect x="749.6" y="933" width="2.1" height="15.0" fill="rgb(235,154,46)" rx="2" ry="2" />
<text text-anchor="" x="752.65" y="943.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>jdk/internal/misc/Unsafe.setMemory0 (3,501 samples, 0.01%)</title><rect x="715.0" y="1349" width="0.1" height="15.0" fill="rgb(209,46,7)" rx="2" ry="2" />
<text text-anchor="" x="717.99" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/AbstractByteBuf.isReadable (6,036 samples, 0.02%)</title><rect x="942.9" y="949" width="0.2" height="15.0" fill="rgb(207,11,54)" rx="2" ry="2" />
<text text-anchor="" x="945.90" y="959.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/epoll/EpollEventLoop.wakeup (18,686 samples, 0.05%)</title><rect x="642.7" y="1429" width="0.6" height="15.0" fill="rgb(207,116,47)" rx="2" ry="2" />
<text text-anchor="" x="645.69" y="1439.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/AbstractReferenceCountedByteBuf.release0 (5,803 samples, 0.02%)</title><rect x="677.2" y="725" width="0.2" height="15.0" fill="rgb(234,150,22)" rx="2" ry="2" />
<text text-anchor="" x="680.21" y="735.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeFlush (497,418 samples, 1.45%)</title><rect x="823.5" y="1061" width="17.0" height="15.0" fill="rgb(213,91,47)" rx="2" ry="2" />
<text text-anchor="" x="826.46" y="1071.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/WeightedFairQueueByteDistributor$State.updateStreamableBytes (6,311 samples, 0.02%)</title><rect x="722.1" y="1333" width="0.2" height="15.0" fill="rgb(215,8,35)" rx="2" ry="2" />
<text text-anchor="" x="725.06" y="1343.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.flush (624,694 samples, 1.82%)</title><rect x="610.9" y="1365" width="21.4" height="15.0" fill="rgb(221,35,4)" rx="2" ry="2" />
<text text-anchor="" x="613.90" y="1375.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >i..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/grpc/stub/ClientCalls$ThreadlessExecutor.waitAndDrain (793,534 samples, 2.31%)</title><rect x="1091.3" y="1509" width="27.2" height="15.0" fill="rgb(248,61,38)" rx="2" ry="2" />
<text text-anchor="" x="1094.26" y="1519.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >i..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>Java_java_lang_Throwable_fillInStackTrace (20,561 samples, 0.06%)</title><rect x="880.4" y="965" width="0.7" height="15.0" fill="rgb(235,83,3)" rx="2" ry="2" />
<text text-anchor="" x="883.44" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/RequestContextThreadLocal.getAndSet (7,928 samples, 0.02%)</title><rect x="1169.0" y="1413" width="0.3" height="15.0" fill="rgb(218,8,40)" rx="2" ry="2" />
<text text-anchor="" x="1172.03" y="1423.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.write (171,723 samples, 0.50%)</title><rect x="884.3" y="965" width="5.9" height="15.0" fill="rgb(216,69,33)" rx="2" ry="2" />
<text text-anchor="" x="887.28" y="975.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/DefaultPromise.trySuccess (43,484 samples, 0.13%)</title><rect x="733.1" y="741" width="1.5" height="15.0" fill="rgb(245,185,21)" rx="2" ry="2" />
<text text-anchor="" x="736.09" y="751.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/logging/DefaultRequestLog.requestHeaders (7,673 samples, 0.02%)</title><rect x="632.4" y="1413" width="0.3" height="15.0" fill="rgb(251,120,15)" rx="2" ry="2" />
<text text-anchor="" x="635.45" y="1423.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/logging/DefaultRequestLog.endRequest0 (4,602 samples, 0.01%)</title><rect x="721.9" y="1429" width="0.1" height="15.0" fill="rgb(209,40,11)" rx="2" ry="2" />
<text text-anchor="" x="724.89" y="1439.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/http2/WeightedFairQueueByteDistributor$1.onStreamRemoved (44,128 samples, 0.13%)</title><rect x="818.6" y="1093" width="1.5" height="15.0" fill="rgb(215,219,15)" rx="2" ry="2" />
<text text-anchor="" x="821.55" y="1103.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/grpc/ArmeriaClientCall.transportReportStatus (1,105,065 samples, 3.21%)</title><rect x="115.0" y="981" width="37.9" height="15.0" fill="rgb(248,212,40)" rx="2" ry="2" />
<text text-anchor="" x="118.00" y="991.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >com..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/CompletableFuture.encodeThrowable (1,129,285 samples, 3.28%)</title><rect x="951.2" y="1605" width="38.7" height="15.0" fill="rgb(207,33,20)" rx="2" ry="2" />
<text text-anchor="" x="954.21" y="1615.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >jav..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/Recycler$Stack.push (3,689 samples, 0.01%)</title><rect x="668.3" y="741" width="0.2" height="15.0" fill="rgb(205,98,19)" rx="2" ry="2" />
<text text-anchor="" x="671.33" y="751.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/FastThreadLocal.removeFromVariablesToRemove (7,765 samples, 0.02%)</title><rect x="107.1" y="917" width="0.3" height="15.0" fill="rgb(248,68,52)" rx="2" ry="2" />
<text text-anchor="" x="110.11" y="927.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/ArrayList$Itr.next (9,480 samples, 0.03%)</title><rect x="849.0" y="1349" width="0.3" height="15.0" fill="rgb(229,170,7)" rx="2" ry="2" />
<text text-anchor="" x="851.97" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/DefaultHeaders.remove0 (3,386 samples, 0.01%)</title><rect x="1064.0" y="1461" width="0.1" height="15.0" fill="rgb(229,149,12)" rx="2" ry="2" />
<text text-anchor="" x="1067.03" y="1471.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>down_read_trylock (4,601 samples, 0.01%)</title><rect x="214.7" y="837" width="0.2" height="15.0" fill="rgb(227,165,42)" rx="2" ry="2" />
<text text-anchor="" x="217.71" y="847.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_mm_fault (8,646 samples, 0.03%)</title><rect x="1047.7" y="1333" width="0.3" height="15.0" fill="rgb(222,224,42)" rx="2" ry="2" />
<text text-anchor="" x="1050.67" y="1343.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/DefaultHttpHeaders.&lt;init&gt; (250,620 samples, 0.73%)</title><rect x="1064.1" y="1445" width="8.6" height="15.0" fill="rgb(223,172,47)" rx="2" ry="2" />
<text text-anchor="" x="1067.14" y="1455.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite (29,290 samples, 0.09%)</title><rect x="795.4" y="1077" width="1.0" height="15.0" fill="rgb(254,85,42)" rx="2" ry="2" />
<text text-anchor="" x="798.39" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/FastThreadLocal.get (40,832 samples, 0.12%)</title><rect x="844.2" y="1285" width="1.4" height="15.0" fill="rgb(240,126,23)" rx="2" ry="2" />
<text text-anchor="" x="847.25" y="1295.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/flush/FlushConsolidationHandler.flush (373,279 samples, 1.08%)</title><rect x="924.2" y="1013" width="12.8" height="15.0" fill="rgb(249,69,12)" rx="2" ry="2" />
<text text-anchor="" x="927.23" y="1023.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/epoll/AbstractEpollStreamChannel.doWrite (319,161 samples, 0.93%)</title><rect x="732.9" y="917" width="10.9" height="15.0" fill="rgb(243,192,49)" rx="2" ry="2" />
<text text-anchor="" x="735.88" y="927.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/ArrayList.get (4,794 samples, 0.01%)</title><rect x="96.6" y="901" width="0.2" height="15.0" fill="rgb(253,174,11)" rx="2" ry="2" />
<text text-anchor="" x="99.65" y="911.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_pte_fault (3,050 samples, 0.01%)</title><rect x="86.0" y="741" width="0.1" height="15.0" fill="rgb(209,198,29)" rx="2" ry="2" />
<text text-anchor="" x="89.02" y="751.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/buffer/PooledSlicedByteBuf.newInstance0 (6,938 samples, 0.02%)</title><rect x="806.3" y="1125" width="0.2" height="15.0" fill="rgb(243,56,17)" rx="2" ry="2" />
<text text-anchor="" x="809.29" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>system_call_fastpath (39,477 samples, 0.11%)</title><rect x="518.5" y="1653" width="1.4" height="15.0" fill="rgb(206,185,19)" rx="2" ry="2" />
<text text-anchor="" x="521.50" y="1663.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/FastThreadLocal.get (4,261 samples, 0.01%)</title><rect x="770.0" y="885" width="0.1" height="15.0" fill="rgb(221,181,35)" rx="2" ry="2" />
<text text-anchor="" x="772.99" y="895.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/internal/ArmeriaHttpUtil$1.hashCode (39,689 samples, 0.12%)</title><rect x="870.2" y="1141" width="1.4" height="15.0" fill="rgb(251,42,29)" rx="2" ry="2" />
<text text-anchor="" x="873.21" y="1151.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/DefaultStreamMessage.notifySubscriber (1,379,092 samples, 4.01%)</title><rect x="864.7" y="1349" width="47.3" height="15.0" fill="rgb(254,148,11)" rx="2" ry="2" />
<text text-anchor="" x="867.69" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >com/..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__do_page_fault (7,696 samples, 0.02%)</title><rect x="190.6" y="1061" width="0.3" height="15.0" fill="rgb(243,139,33)" rx="2" ry="2" />
<text text-anchor="" x="193.63" y="1071.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.flush (571,695 samples, 1.66%)</title><rect x="612.1" y="1173" width="19.7" height="15.0" fill="rgb(231,150,4)" rx="2" ry="2" />
<text text-anchor="" x="615.15" y="1183.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/DefaultHttpHeaders.&lt;init&gt; (58,052 samples, 0.17%)</title><rect x="856.0" y="1397" width="2.0" height="15.0" fill="rgb(218,203,12)" rx="2" ry="2" />
<text text-anchor="" x="859.03" y="1407.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/DefaultPromise.setUncancellable (4,945 samples, 0.01%)</title><rect x="613.3" y="869" width="0.2" height="15.0" fill="rgb(206,96,4)" rx="2" ry="2" />
<text text-anchor="" x="616.34" y="879.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite (231,696 samples, 0.67%)</title><rect x="882.9" y="1125" width="8.0" height="15.0" fill="rgb(224,119,4)" rx="2" ry="2" />
<text text-anchor="" x="885.92" y="1135.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/client/HttpRequestSubscriber.autoFillHeaders (7,982 samples, 0.02%)</title><rect x="644.5" y="1605" width="0.3" height="15.0" fill="rgb(248,229,12)" rx="2" ry="2" />
<text text-anchor="" x="647.52" y="1615.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_mm_fault (2,982 samples, 0.01%)</title><rect x="643.5" y="1429" width="0.1" height="15.0" fill="rgb(245,56,47)" rx="2" ry="2" />
<text text-anchor="" x="646.54" y="1439.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>ip_local_deliver_finish (230,933 samples, 0.67%)</title><rect x="903.0" y="261" width="8.0" height="15.0" fill="rgb(241,148,48)" rx="2" ry="2" />
<text text-anchor="" x="906.04" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/nio/DirectByteBuffer$Deallocator.run (154,079 samples, 0.45%)</title><rect x="669.9" y="517" width="5.3" height="15.0" fill="rgb(210,79,54)" rx="2" ry="2" />
<text text-anchor="" x="672.92" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/DefaultHeaders$HeaderEntry.&lt;init&gt; (17,033 samples, 0.05%)</title><rect x="1072.8" y="1381" width="0.6" height="15.0" fill="rgb(244,28,3)" rx="2" ry="2" />
<text text-anchor="" x="1075.82" y="1391.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite0 (47,933 samples, 0.14%)</title><rect x="811.8" y="709" width="1.6" height="15.0" fill="rgb(224,30,13)" rx="2" ry="2" />
<text text-anchor="" x="814.75" y="719.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.write (246,571 samples, 0.72%)</title><rect x="601.3" y="1285" width="8.4" height="15.0" fill="rgb(244,197,13)" rx="2" ry="2" />
<text text-anchor="" x="604.28" y="1295.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/timeout/IdleStateHandler.write (3,792 samples, 0.01%)</title><rect x="889.7" y="757" width="0.1" height="15.0" fill="rgb(212,215,46)" rx="2" ry="2" />
<text text-anchor="" x="892.66" y="767.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>page_fault (3,747 samples, 0.01%)</title><rect x="643.5" y="1477" width="0.2" height="15.0" fill="rgb(228,173,49)" rx="2" ry="2" />
<text text-anchor="" x="646.53" y="1487.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/DefaultHttpHeaders.&lt;init&gt; (4,168 samples, 0.01%)</title><rect x="913.7" y="1365" width="0.1" height="15.0" fill="rgb(225,93,34)" rx="2" ry="2" />
<text text-anchor="" x="916.65" y="1375.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/codec/DefaultHeaders.set (188,923 samples, 0.55%)</title><rect x="858.0" y="1397" width="6.5" height="15.0" fill="rgb(242,8,11)" rx="2" ry="2" />
<text text-anchor="" x="861.02" y="1407.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>ip_finish_output (195,181 samples, 0.57%)</title><rect x="624.4" y="517" width="6.7" height="15.0" fill="rgb(238,124,41)" rx="2" ry="2" />
<text text-anchor="" x="627.41" y="527.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>handle_pte_fault (6,972 samples, 0.02%)</title><rect x="659.6" y="1237" width="0.2" height="15.0" fill="rgb(226,229,34)" rx="2" ry="2" />
<text text-anchor="" x="662.59" y="1247.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>_raw_qspin_lock (50,198 samples, 0.15%)</title><rect x="121.9" y="725" width="1.7" height="15.0" fill="rgb(236,43,8)" rx="2" ry="2" />
<text text-anchor="" x="124.91" y="735.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/github/benmanes/caffeine/cache/LocalManualCache.getIfPresent (54,516 samples, 0.16%)</title><rect x="273.1" y="1045" width="1.9" height="15.0" fill="rgb(243,53,3)" rx="2" ry="2" />
<text text-anchor="" x="276.15" y="1055.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__wake_up_sync_key (121,932 samples, 0.35%)</title><rect x="626.2" y="229" width="4.1" height="15.0" fill="rgb(230,56,14)" rx="2" ry="2" />
<text text-anchor="" x="629.16" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/epoll/EpollEventLoop.epollWait (973,722 samples, 2.83%)</title><rect x="18.6" y="1701" width="33.4" height="15.0" fill="rgb(206,148,16)" rx="2" ry="2" />
<text text-anchor="" x="21.61" y="1711.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >io..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/lang/Throwable.fillInStackTrace (4,380 samples, 0.01%)</title><rect x="793.3" y="1365" width="0.1" height="15.0" fill="rgb(208,111,16)" rx="2" ry="2" />
<text text-anchor="" x="796.27" y="1375.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/ChannelOutboundBuffer$Entry.newInstance (16,405 samples, 0.05%)</title><rect x="604.3" y="773" width="0.6" height="15.0" fill="rgb(221,148,2)" rx="2" ry="2" />
<text text-anchor="" x="607.31" y="783.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannel$AbstractUnsafe.write (20,677 samples, 0.06%)</title><rect x="795.7" y="1029" width="0.7" height="15.0" fill="rgb(210,157,4)" rx="2" ry="2" />
<text text-anchor="" x="798.66" y="1039.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/ResourceLeakDetector.track (11,823 samples, 0.03%)</title><rect x="941.3" y="949" width="0.5" height="15.0" fill="rgb(206,13,3)" rx="2" ry="2" />
<text text-anchor="" x="944.35" y="959.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/ChannelOutboundHandlerAdapter.flush (381,460 samples, 1.11%)</title><rect x="924.0" y="1077" width="13.0" height="15.0" fill="rgb(222,80,22)" rx="2" ry="2" />
<text text-anchor="" x="926.95" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/internal/DefaultPriorityQueue.removeTyped (6,957 samples, 0.02%)</title><rect x="727.7" y="1269" width="0.3" height="15.0" fill="rgb(221,163,53)" rx="2" ry="2" />
<text text-anchor="" x="730.74" y="1279.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite0 (108,607 samples, 0.32%)</title><rect x="696.9" y="773" width="3.7" height="15.0" fill="rgb(254,90,10)" rx="2" ry="2" />
<text text-anchor="" x="699.90" y="783.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>java/util/concurrent/CompletableFuture.handleAsync (52,159 samples, 0.15%)</title><rect x="277.8" y="1077" width="1.7" height="15.0" fill="rgb(226,114,41)" rx="2" ry="2" />
<text text-anchor="" x="280.76" y="1087.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite0 (156,207 samples, 0.45%)</title><rect x="943.2" y="805" width="5.3" height="15.0" fill="rgb(233,134,14)" rx="2" ry="2" />
<text text-anchor="" x="946.18" y="815.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>com/linecorp/armeria/common/stream/DefaultStreamMessage.notifySubscriber0 (1,273,704 samples, 3.70%)</title><rect x="798.5" y="1349" width="43.7" height="15.0" fill="rgb(249,118,51)" rx="2" ry="2" />
<text text-anchor="" x="801.55" y="1359.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >com/..</text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite (61,002 samples, 0.18%)</title><rect x="749.6" y="949" width="2.1" height="15.0" fill="rgb(219,71,5)" rx="2" ry="2" />
<text text-anchor="" x="752.65" y="959.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/util/concurrent/DefaultPromise.setUncancellable (13,176 samples, 0.04%)</title><rect x="762.4" y="1637" width="0.4" height="15.0" fill="rgb(234,102,22)" rx="2" ry="2" />
<text text-anchor="" x="765.38" y="1647.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>__ip_local_out_sk (5,277 samples, 0.02%)</title><rect x="686.0" y="533" width="0.2" height="15.0" fill="rgb(205,166,37)" rx="2" ry="2" />
<text text-anchor="" x="689.03" y="543.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/handler/logging/LoggingHandler.write (179,509 samples, 0.52%)</title><rect x="602.7" y="1141" width="6.2" height="15.0" fill="rgb(244,112,19)" rx="2" ry="2" />
<text text-anchor="" x="605.75" y="1151.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text>
</g>
<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
<title>io/netty/channel/AbstractChannelHandlerContext.invokeWrite (195,678 samples, 0.57%)</title><rect x="695.3" y="1045" width="6.7" height="15.0" fill="rgb(239,39,3
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment