Skip to content

Instantly share code, notes, and snippets.

@Merovius
Created July 16, 2021 22:55
Show Gist options
  • Save Merovius/ce87350f880dbb3b6a78c6ea3eb813c2 to your computer and use it in GitHub Desktop.
Save Merovius/ce87350f880dbb3b6a78c6ea3eb813c2 to your computer and use it in GitHub Desktop.
MergeSlice benchmarks

The post Go is not C, so there is not an extreme fast way to merge slices alleges a performance problem with Go's model of zeroing memory on allocation, in cases where it might not be needed. The methodology is

  • Run a benchmark that merges some slices, by makeing one of the appropriate size and copying the individual slices over
  • Run a benchmark that zeros a slice of the appropriate slice
  • Subtract the two numbers and call it the "overhead of zeroing"

I have some trouble with that methodology. For one, it assumes that the zeroing actually happens on every allocation. However, there are strategies the runtime could employ that would mitigate that cost, while still only returning zeroed memory. For example, it could zero memory when releasing it, instead of when allocating it - and only request zeroed pages from the OS (or zero pages when getting them from the OS). That would mean under a realistic workload, the cost of zeroing is paid mostly or only in a background GC thread. And as far as I know, the Go runtime actually does something like that.

So I set out to write a better benchmark. I added a function to the runtime, which allocates a slice without zeroing it. I then made that available using //go:linkname. I then ran the same benchmarks the post above runs, once using a regular make and once using my modified version. These are the results on my machine (I ran the benchmark a couple of times to make sure the numbers are stable):

goos: linux       
goarch: amd64
pkg: x
cpu: Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
Benchmark_MergeSlicesZero-4     	   58723	     20018 ns/op
Benchmark_MergeSlicesNoZero-4   	   70490	     16722 ns/op
PASS
ok  	x	2.740s

So it does seem there is a significant effect for this benchmark, even under my revised methodology. The profiling graphs also show the function memclrNoHeapPointers using significant CPU time for the version with plain make and it doesn't have that function for the version with the modified make.

So, while I set out to show the original post was wrong, this seems to confirm their findings. I'm still not entirely convinced this problem is significant in a real workload (where other allocations happen and the GC would have more opportunities to do work in the background). But at least my immediate criticism of the posts methodology is invalidated.

I attached the runtime patch (against go1.17beta1, commit dc00dc6c6bf3b5554e37f60799aec092276ff807), as well as the benchmark code I used and the pprof output graphs below, so you can verify the results yourself and experiment further.

package main
import (
"reflect"
"testing"
"unsafe"
)
var (
x = make([]byte, 10000)
y = make([]byte, 20000)
z = make([]byte, 50000)
w = MergeSlicesZero(x, y, z)
r [128][]byte
byteType unsafe.Pointer
)
func init() {
var x interface{} = byte(0)
byteType = *(*unsafe.Pointer)(unsafe.Pointer(&x))
}
//go:linkname makesliceNoZero runtime.makesliceNoZero
func makesliceNoZero(et unsafe.Pointer, len, cap int) unsafe.Pointer
func makeNoZero(len, cap int) (s []byte) {
data := makesliceNoZero(byteType, len, cap)
*(*reflect.SliceHeader)(unsafe.Pointer(&s)) = reflect.SliceHeader{
Data: uintptr(data),
Len: len,
Cap: cap,
}
return s
}
func MergeSlicesZero(data ...[]byte) []byte {
type _ int
n := 0
for _, s := range data {
n += len(s)
}
r := make([]byte, 0, n)
for _, s := range data {
r = append(r, s...)
}
return r
}
func MergeSlicesNoZero(data ...[]byte) []byte {
type _ int
n := 0
for _, s := range data {
n += len(s)
}
r := makeNoZero(0, n)
for _, s := range data {
r = append(r, s...)
}
return r
}
func Benchmark_MergeSlicesZero(b *testing.B) {
for i := 0; i < b.N; i++ {
r[i&127] = MergeSlicesZero(x, y, z)
}
}
func Benchmark_MergeSlicesNoZero(b *testing.B) {
for i := 0; i < b.N; i++ {
r[i&127] = MergeSlicesNoZero(x, y, z)
}
}
diff --git a/src/runtime/slice.go b/src/runtime/slice.go
index f9d4154acf..43839d38ae 100644
--- a/src/runtime/slice.go
+++ b/src/runtime/slice.go
@@ -98,6 +98,24 @@ func makeslice(et *_type, len, cap int) unsafe.Pointer {
return mallocgc(mem, et, true)
}
+func makesliceNoZero(et *_type, len, cap int) unsafe.Pointer {
+ mem, overflow := math.MulUintptr(et.size, uintptr(cap))
+ if overflow || mem > maxAlloc || len < 0 || len > cap {
+ // NOTE: Produce a 'len out of range' error instead of a
+ // 'cap out of range' error when someone does make([]T, bignumber).
+ // 'cap out of range' is true too, but since the cap is only being
+ // supplied implicitly, saying len is clearer.
+ // See golang.org/issue/4085.
+ mem, overflow := math.MulUintptr(et.size, uintptr(len))
+ if overflow || mem > maxAlloc || len < 0 {
+ panicmakeslicelen()
+ }
+ panicmakeslicecap()
+ }
+
+ return mallocgc(mem, et, false)
+}
+
func makeslice64(et *_type, len64, cap64 int64) unsafe.Pointer {
len := int(len64)
if int64(len) != len64 {
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.44.0 (0)
-->
<!-- Title: x.test Pages: 1 -->
<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/**
* SVGPan library 1.2.2
* ======================
*
* Given an unique existing element with id "viewport" (or when missing, the
* first g-element), including the library into any SVG adds the following
* capabilities:
*
* - Mouse panning
* - Mouse zooming (using the wheel)
* - Object dragging
*
* You can configure the behaviour of the pan/zoom/drag with the variables
* listed in the CONFIGURATION section of this file.
*
* Known issues:
*
* - Zooming (while panning) on Safari has still some issues
*
* Releases:
*
* 1.2.2, Tue Aug 30 17:21:56 CEST 2011, Andrea Leofreddi
* - Fixed viewBox on root tag (#7)
* - Improved zoom speed (#2)
*
* 1.2.1, Mon Jul 4 00:33:18 CEST 2011, Andrea Leofreddi
* - Fixed a regression with mouse wheel (now working on Firefox 5)
* - Working with viewBox attribute (#4)
* - Added "use strict;" and fixed resulting warnings (#5)
* - Added configuration variables, dragging is disabled by default (#3)
*
* 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui
* Fixed a bug with browser mouse handler interaction
*
* 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui
* Updated the zoom code to support the mouse wheel on Safari/Chrome
*
* 1.0, Andrea Leofreddi
* First release
*
* This code is licensed under the following BSD license:
*
* Copyright 2009-2017 Andrea Leofreddi <a.leofreddi@vleo.net>. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* The views and conclusions contained in the software and documentation are those of the
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of Andrea Leofreddi.
*/
"use strict";
/// CONFIGURATION
/// ====>
var enablePan = 1; // 1 or 0: enable or disable panning (default enabled)
var enableZoom = 1; // 1 or 0: enable or disable zooming (default enabled)
var enableDrag = 0; // 1 or 0: enable or disable dragging (default disabled)
var zoomScale = 0.2; // Zoom sensitivity
/// <====
/// END OF CONFIGURATION
var root = document.documentElement;
var state = 'none', svgRoot = null, stateTarget, stateOrigin, stateTf;
setupHandlers(root);
/**
* Register handlers
*/
function setupHandlers(root){
setAttributes(root, {
"onmouseup" : "handleMouseUp(evt)",
"onmousedown" : "handleMouseDown(evt)",
"onmousemove" : "handleMouseMove(evt)",
//"onmouseout" : "handleMouseUp(evt)", // Decomment this to stop the pan functionality when dragging out of the SVG element
});
if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0)
window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari
else
window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others
}
/**
* Retrieves the root element for SVG manipulation. The element is then cached into the svgRoot global variable.
*/
function getRoot(root) {
if(svgRoot == null) {
var r = root.getElementById("viewport") ? root.getElementById("viewport") : root.documentElement, t = r;
while(t != root) {
if(t.getAttribute("viewBox")) {
setCTM(r, t.getCTM());
t.removeAttribute("viewBox");
}
t = t.parentNode;
}
svgRoot = r;
}
return svgRoot;
}
/**
* Instance an SVGPoint object with given event coordinates.
*/
function getEventPoint(evt) {
var p = root.createSVGPoint();
p.x = evt.clientX;
p.y = evt.clientY;
return p;
}
/**
* Sets the current transform matrix of an element.
*/
function setCTM(element, matrix) {
var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")";
element.setAttribute("transform", s);
}
/**
* Dumps a matrix to a string (useful for debug).
*/
function dumpMatrix(matrix) {
var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]";
return s;
}
/**
* Sets attributes of an element.
*/
function setAttributes(element, attributes){
for (var i in attributes)
element.setAttributeNS(null, i, attributes[i]);
}
/**
* Handle mouse wheel event.
*/
function handleMouseWheel(evt) {
if(!enableZoom)
return;
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var delta;
if(evt.wheelDelta)
delta = evt.wheelDelta / 360; // Chrome/Safari
else
delta = evt.detail / -9; // Mozilla
var z = Math.pow(1 + zoomScale, delta);
var g = getRoot(svgDoc);
var p = getEventPoint(evt);
p = p.matrixTransform(g.getCTM().inverse());
// Compute new scale matrix in current mouse position
var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y);
setCTM(g, g.getCTM().multiply(k));
if(typeof(stateTf) == "undefined")
stateTf = g.getCTM().inverse();
stateTf = stateTf.multiply(k.inverse());
}
/**
* Handle mouse move event.
*/
function handleMouseMove(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var g = getRoot(svgDoc);
if(state == 'pan' && enablePan) {
// Pan mode
var p = getEventPoint(evt).matrixTransform(stateTf);
setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y));
} else if(state == 'drag' && enableDrag) {
// Drag mode
var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse());
setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM()));
stateOrigin = p;
}
}
/**
* Handle click event.
*/
function handleMouseDown(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
var g = getRoot(svgDoc);
if(
evt.target.tagName == "svg"
|| !enableDrag // Pan anyway when drag is disabled and the user clicked on an element
) {
// Pan mode
state = 'pan';
stateTf = g.getCTM().inverse();
stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
} else {
// Drag mode
state = 'drag';
stateTarget = evt.target;
stateTf = g.getCTM().inverse();
stateOrigin = getEventPoint(evt).matrixTransform(stateTf);
}
}
/**
* Handle mouse button release event.
*/
function handleMouseUp(evt) {
if(evt.preventDefault)
evt.preventDefault();
evt.returnValue = false;
var svgDoc = evt.target.ownerDocument;
if(state == 'pan' || state == 'drag') {
// Quit pan mode
state = '';
}
}
]]></script><g id="viewport" transform="scale(0.5,0.5) translate(0,0)"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1847)">
<title>x.test</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1847 1958,-1847 1958,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="black" points="8,-1666 8,-1835 506,-1835 506,-1666 8,-1666"/>
</g>
<!-- File: x.test -->
<g id="node1" class="node">
<title>File: x.test</title>
<g id="a_node1"><a xlink:title="x.test">
<polygon fill="#f8f8f8" stroke="black" points="498,-1827 16,-1827 16,-1674 498,-1674 498,-1827"/>
<text text-anchor="start" x="24" y="-1810.2" font-family="Times-Roman" font-size="16.00">File: x.test</text>
<text text-anchor="start" x="24" y="-1792.2" font-family="Times-Roman" font-size="16.00">Type: cpu</text>
<text text-anchor="start" x="24" y="-1774.2" font-family="Times-Roman" font-size="16.00">Time: Jul 17, 2021 at 12:53am (CEST)</text>
<text text-anchor="start" x="24" y="-1756.2" font-family="Times-Roman" font-size="16.00">Duration: 1.51s, Total samples = 1.60s (106.17%)</text>
<text text-anchor="start" x="24" y="-1738.2" font-family="Times-Roman" font-size="16.00">Showing nodes accounting for 1.60s, 100% of 1.60s total</text>
<text text-anchor="start" x="24" y="-1720.2" font-family="Times-Roman" font-size="16.00">Showing top 80 nodes out of 117</text>
<text text-anchor="start" x="24" y="-1683.2" font-family="Times-Roman" font-size="16.00">See https://git.io/JfYMW for how to read the graph</text>
</a>
</g>
</g>
<!-- N1 -->
<g id="node1" class="node">
<title>N1</title>
<g id="a_node1"><a xlink:title="runtime.memmove (1.07s)">
<polygon fill="#edd8d5" stroke="#b21400" points="662.5,-1520 465.5,-1520 465.5,-1434 662.5,-1434 662.5,-1520"/>
<text text-anchor="middle" x="564" y="-1496.8" font-family="Times-Roman" font-size="24.00">runtime</text>
<text text-anchor="middle" x="564" y="-1470.8" font-family="Times-Roman" font-size="24.00">memmove</text>
<text text-anchor="middle" x="564" y="-1444.8" font-family="Times-Roman" font-size="24.00">1.07s (66.88%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node2" class="node">
<title>N2</title>
<g id="a_node2"><a xlink:title="runtime.systemstack (0.35s)">
<polygon fill="#edded5" stroke="#b24100" points="854,-1178 758,-1178 758,-1142 854,-1142 854,-1178"/>
<text text-anchor="middle" x="806" y="-1167.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="806" y="-1158.1" font-family="Times-Roman" font-size="8.00">systemstack</text>
<text text-anchor="middle" x="806" y="-1149.1" font-family="Times-Roman" font-size="8.00">0 of 0.35s (21.88%)</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node8" class="node">
<title>N8</title>
<g id="a_node8"><a xlink:title="runtime.gcDrain (0.13s)">
<polygon fill="#ede8e3" stroke="#b29069" points="846.5,-1082.5 755.5,-1082.5 755.5,-1046.5 846.5,-1046.5 846.5,-1082.5"/>
<text text-anchor="middle" x="801" y="-1071.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="801" y="-1062.6" font-family="Times-Roman" font-size="8.00">gcDrain</text>
<text text-anchor="middle" x="801" y="-1053.6" font-family="Times-Roman" font-size="8.00">0 of 0.13s (8.12%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N8 -->
<g id="edge5" class="edge">
<title>N2&#45;&gt;N8</title>
<g id="a_edge5"><a xlink:title="runtime.systemstack ... runtime.gcDrain (0.13s)">
<path fill="none" stroke="#b29069" stroke-dasharray="1,5" d="M803.72,-1141.94C803.04,-1136.25 802.38,-1129.86 802,-1124 801.33,-1113.8 801.03,-1102.58 800.92,-1092.72"/>
<polygon fill="#b29069" stroke="#b29069" points="804.42,-1092.65 800.86,-1082.67 797.42,-1092.69 804.42,-1092.65"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.systemstack ... runtime.gcDrain (0.13s)">
<text text-anchor="middle" x="824" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.13s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node27" class="node">
<title>N27</title>
<g id="a_node27"><a xlink:title="runtime.(*mheap).alloc.func1 (0.09s)">
<polygon fill="#edeae6" stroke="#b29d80" points="1109.5,-1091 1018.5,-1091 1018.5,-1038 1109.5,-1038 1109.5,-1091"/>
<text text-anchor="middle" x="1064" y="-1080.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1064" y="-1071.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1064" y="-1062.6" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="1064" y="-1053.6" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="1064" y="-1044.6" font-family="Times-Roman" font-size="8.00">0 of 0.09s (5.62%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N27 -->
<g id="edge9" class="edge">
<title>N2&#45;&gt;N27</title>
<g id="a_edge9"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<path fill="none" stroke="#b29d80" d="M854.06,-1143.04C871.42,-1137.18 891.13,-1130.41 909,-1124 942.2,-1112.1 979.17,-1098.17 1008.67,-1086.9"/>
<polygon fill="#b29d80" stroke="#b29d80" points="1010.28,-1090.03 1018.37,-1083.18 1007.78,-1083.49 1010.28,-1090.03"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<text text-anchor="middle" x="969" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.09s</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node33" class="node">
<title>N33</title>
<g id="a_node33"><a xlink:title="runtime.(*mheap).freeSpan.func1 (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1945.5,-503 1854.5,-503 1854.5,-450 1945.5,-450 1945.5,-503"/>
<text text-anchor="middle" x="1900" y="-492.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1900" y="-483.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1900" y="-474.6" font-family="Times-Roman" font-size="8.00">freeSpan</text>
<text text-anchor="middle" x="1900" y="-465.6" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="1900" y="-456.6" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N33 -->
<g id="edge45" class="edge">
<title>N2&#45;&gt;N33</title>
<g id="a_edge45"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.02s)">
<path fill="none" stroke="#b2afa7" d="M854.22,-1158.05C974,-1155.42 1294.61,-1146.67 1561,-1124 1713.34,-1111.04 1900,-1218.39 1900,-1065.5 1900,-1065.5 1900,-1065.5 1900,-584.5 1900,-560.77 1900,-534.08 1900,-513.3"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1903.5,-513.01 1900,-503.01 1896.5,-513.01 1903.5,-513.01"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.02s)">
<text text-anchor="middle" x="1922" y="-836.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node73" class="node">
<title>N73</title>
<g id="a_node73"><a xlink:title="runtime.callers.func1 (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="955.5,-1086.5 864.5,-1086.5 864.5,-1042.5 955.5,-1042.5 955.5,-1086.5"/>
<text text-anchor="middle" x="910" y="-1076.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="910" y="-1067.1" font-family="Times-Roman" font-size="8.00">callers</text>
<text text-anchor="middle" x="910" y="-1058.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="910" y="-1049.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N73 -->
<g id="edge33" class="edge">
<title>N2&#45;&gt;N73</title>
<g id="a_edge33"><a xlink:title="runtime.systemstack &#45;&gt; runtime.callers.func1 (0.03s)">
<path fill="none" stroke="#b2ada1" d="M825.61,-1141.99C832.12,-1136.3 839.4,-1129.91 846,-1124 857.02,-1114.15 868.99,-1103.25 879.58,-1093.56"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="882,-1096.08 887,-1086.74 877.27,-1090.92 882,-1096.08"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.callers.func1 (0.03s)">
<text text-anchor="middle" x="883" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node74" class="node">
<title>N74</title>
<g id="a_node74"><a xlink:title="runtime.finishsweep_m (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="489.5,-1082.5 398.5,-1082.5 398.5,-1046.5 489.5,-1046.5 489.5,-1082.5"/>
<text text-anchor="middle" x="444" y="-1071.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="444" y="-1062.6" font-family="Times-Roman" font-size="8.00">finishsweep_m</text>
<text text-anchor="middle" x="444" y="-1053.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N74 -->
<g id="edge91" class="edge">
<title>N2&#45;&gt;N74</title>
<g id="a_edge91"><a xlink:title="runtime.systemstack ... runtime.finishsweep_m (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M757.78,-1152.75C716.18,-1146.88 654.67,-1137.05 602,-1124 556.16,-1112.64 545.06,-1108 501,-1091 497.35,-1089.59 493.6,-1088.07 489.84,-1086.5"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="491.13,-1083.25 480.56,-1082.53 488.37,-1089.68 491.13,-1083.25"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.systemstack ... runtime.finishsweep_m (0.01s)">
<text text-anchor="middle" x="624" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N75 -->
<g id="node75" class="node">
<title>N75</title>
<g id="a_node75"><a xlink:title="runtime.forEachP (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="344.5,-1082.5 253.5,-1082.5 253.5,-1046.5 344.5,-1046.5 344.5,-1082.5"/>
<text text-anchor="middle" x="299" y="-1071.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="299" y="-1062.6" font-family="Times-Roman" font-size="8.00">forEachP</text>
<text text-anchor="middle" x="299" y="-1053.6" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N75 -->
<g id="edge34" class="edge">
<title>N2&#45;&gt;N75</title>
<g id="a_edge34"><a xlink:title="runtime.systemstack ... runtime.forEachP (0.03s)">
<path fill="none" stroke="#b2ada1" stroke-dasharray="1,5" d="M757.97,-1155.94C697.72,-1151.54 591.47,-1141.91 502,-1124 451.33,-1113.86 394.95,-1097.16 354.49,-1084.2"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="355.41,-1080.81 344.82,-1081.07 353.26,-1087.48 355.41,-1080.81"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.systemstack ... runtime.forEachP (0.03s)">
<text text-anchor="middle" x="524" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node77" class="node">
<title>N77</title>
<g id="a_node77"><a xlink:title="runtime.futexwakeup (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="601.5,-1082.5 510.5,-1082.5 510.5,-1046.5 601.5,-1046.5 601.5,-1082.5"/>
<text text-anchor="middle" x="556" y="-1071.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="556" y="-1062.6" font-family="Times-Roman" font-size="8.00">futexwakeup</text>
<text text-anchor="middle" x="556" y="-1053.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N77 -->
<g id="edge92" class="edge">
<title>N2&#45;&gt;N77</title>
<g id="a_edge92"><a xlink:title="runtime.systemstack ... runtime.futexwakeup (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M757.75,-1146.39C735.92,-1140.29 709.93,-1132.45 687,-1124 657.47,-1113.12 625.17,-1098.73 600.04,-1086.94"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="601.31,-1083.67 590.78,-1082.56 598.32,-1090 601.31,-1083.67"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.systemstack ... runtime.futexwakeup (0.01s)">
<text text-anchor="middle" x="709" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node79" class="node">
<title>N79</title>
<g id="a_node79"><a xlink:title="runtime.gcAssistAlloc.func1 (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="728.5,-1086.5 637.5,-1086.5 637.5,-1042.5 728.5,-1042.5 728.5,-1086.5"/>
<text text-anchor="middle" x="683" y="-1076.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="683" y="-1067.1" font-family="Times-Roman" font-size="8.00">gcAssistAlloc</text>
<text text-anchor="middle" x="683" y="-1058.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="683" y="-1049.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N79 -->
<g id="edge35" class="edge">
<title>N2&#45;&gt;N79</title>
<g id="a_edge35"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (0.03s)">
<path fill="none" stroke="#b2ada1" d="M778.91,-1141.95C770.47,-1136.42 761.23,-1130.12 753,-1124 740.2,-1114.47 726.63,-1103.38 714.89,-1093.44"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="716.95,-1090.6 707.07,-1086.77 712.41,-1095.92 716.95,-1090.6"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (0.03s)">
<text text-anchor="middle" x="775" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node3" class="node">
<title>N3</title>
<g id="a_node3"><a xlink:title="testing.(*B).launch (1.31s)">
<polygon fill="#edd6d5" stroke="#b20a00" points="612,-1772.5 516,-1772.5 516,-1728.5 612,-1728.5 612,-1772.5"/>
<text text-anchor="middle" x="564" y="-1762.1" font-family="Times-Roman" font-size="8.00">testing</text>
<text text-anchor="middle" x="564" y="-1753.1" font-family="Times-Roman" font-size="8.00">(*B)</text>
<text text-anchor="middle" x="564" y="-1744.1" font-family="Times-Roman" font-size="8.00">launch</text>
<text text-anchor="middle" x="564" y="-1735.1" font-family="Times-Roman" font-size="8.00">0 of 1.31s (81.88%)</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node4" class="node">
<title>N4</title>
<g id="a_node4"><a xlink:title="x.MergeSlicesNoZero (1.31s)">
<polygon fill="#edd6d5" stroke="#b20a00" points="620,-1623 508,-1623 508,-1571 620,-1571 620,-1623"/>
<text text-anchor="middle" x="564" y="-1611" font-family="Times-Roman" font-size="10.00">x</text>
<text text-anchor="middle" x="564" y="-1600" font-family="Times-Roman" font-size="10.00">MergeSlicesNoZero</text>
<text text-anchor="middle" x="564" y="-1589" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
<text text-anchor="middle" x="564" y="-1578" font-family="Times-Roman" font-size="10.00">of 1.31s (81.88%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N4 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N4</title>
<g id="a_edge1"><a xlink:title="testing.(*B).launch ... x.MergeSlicesNoZero (1.31s)">
<path fill="none" stroke="#b20a00" stroke-width="5" stroke-dasharray="1,5" d="M564,-1728.43C564,-1703.89 564,-1662.93 564,-1633.46"/>
<polygon fill="#b20a00" stroke="#b20a00" stroke-width="5" points="568.38,-1633.17 564,-1623.17 559.63,-1633.17 568.38,-1633.17"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="testing.(*B).launch ... x.MergeSlicesNoZero (1.31s)">
<text text-anchor="middle" x="586" y="-1644.8" font-family="Times-Roman" font-size="14.00"> 1.31s</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge2" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge2"><a xlink:title="x.MergeSlicesNoZero &#45;&gt; runtime.memmove (1.07s)">
<path fill="none" stroke="#b21400" stroke-width="4" d="M564,-1570.98C564,-1559.11 564,-1544.46 564,-1530.33"/>
<polygon fill="#b21400" stroke="#b21400" stroke-width="4" points="567.5,-1530.17 564,-1520.17 560.5,-1530.17 567.5,-1530.17"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="x.MergeSlicesNoZero &#45;&gt; runtime.memmove (1.07s)">
<text text-anchor="middle" x="586" y="-1541.8" font-family="Times-Roman" font-size="14.00"> 1.07s</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node5" class="node">
<title>N5</title>
<g id="a_node5"><a xlink:title="runtime.mallocgc (0.23s)">
<polygon fill="#ede3dc" stroke="#b26a32" points="777,-1495 681,-1495 681,-1459 777,-1459 777,-1495"/>
<text text-anchor="middle" x="729" y="-1484.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="729" y="-1475.1" font-family="Times-Roman" font-size="8.00">mallocgc</text>
<text text-anchor="middle" x="729" y="-1466.1" font-family="Times-Roman" font-size="8.00">0 of 0.23s (14.37%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N5 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N5</title>
<g id="a_edge3"><a xlink:title="x.MergeSlicesNoZero ... runtime.mallocgc (0.23s)">
<path fill="none" stroke="#b26a32" stroke-dasharray="1,5" d="M600.14,-1570.86C621.19,-1556.15 648.19,-1537.15 672,-1520 680.45,-1513.91 689.56,-1507.25 697.95,-1501.07"/>
<polygon fill="#b26a32" stroke="#b26a32" points="700.1,-1503.83 706.06,-1495.08 695.94,-1498.2 700.1,-1503.83"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="x.MergeSlicesNoZero ... runtime.mallocgc (0.23s)">
<text text-anchor="middle" x="667" y="-1541.8" font-family="Times-Roman" font-size="14.00"> 0.23s</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node12" class="node">
<title>N12</title>
<g id="a_node12"><a xlink:title="runtime.(*mcache).allocLarge (0.12s)">
<polygon fill="#ede9e4" stroke="#b2936f" points="774.5,-1368 683.5,-1368 683.5,-1324 774.5,-1324 774.5,-1368"/>
<text text-anchor="middle" x="729" y="-1357.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="729" y="-1348.6" font-family="Times-Roman" font-size="8.00">(*mcache)</text>
<text text-anchor="middle" x="729" y="-1339.6" font-family="Times-Roman" font-size="8.00">allocLarge</text>
<text text-anchor="middle" x="729" y="-1330.6" font-family="Times-Roman" font-size="8.00">0 of 0.12s (7.50%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N12 -->
<g id="edge6" class="edge">
<title>N5&#45;&gt;N12</title>
<g id="a_edge6"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).allocLarge (0.12s)">
<path fill="none" stroke="#b2936f" d="M729,-1458.87C729,-1438.36 729,-1403.61 729,-1378.27"/>
<polygon fill="#b2936f" stroke="#b2936f" points="732.5,-1378.06 729,-1368.06 725.5,-1378.06 732.5,-1378.06"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).allocLarge (0.12s)">
<text text-anchor="middle" x="751" y="-1397.3" font-family="Times-Roman" font-size="14.00"> 0.12s</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node38" class="node">
<title>N38</title>
<g id="a_node38"><a xlink:title="runtime.gcStart (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="352.5,-1269 261.5,-1269 261.5,-1233 352.5,-1233 352.5,-1269"/>
<text text-anchor="middle" x="307" y="-1258.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="307" y="-1249.1" font-family="Times-Roman" font-size="8.00">gcStart</text>
<text text-anchor="middle" x="307" y="-1240.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N38 -->
<g id="edge29" class="edge">
<title>N5&#45;&gt;N38</title>
<g id="a_edge29"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.03s)">
<path fill="none" stroke="#b2ada1" d="M711.3,-1458.93C700.76,-1449.86 686.62,-1439.48 672,-1434 521.33,-1377.48 414.39,-1495.33 316,-1368 296.66,-1342.97 297.61,-1305.14 301.27,-1279.55"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="304.77,-1279.84 302.95,-1269.41 297.86,-1278.7 304.77,-1279.84"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.03s)">
<text text-anchor="middle" x="338" y="-1342.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node49" class="node">
<title>N49</title>
<g id="a_node49"><a xlink:title="runtime.getMCache (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="563,-1366.5 479,-1366.5 479,-1325.5 563,-1325.5 563,-1366.5"/>
<text text-anchor="middle" x="521" y="-1354.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="521" y="-1343.5" font-family="Times-Roman" font-size="10.00">getMCache</text>
<text text-anchor="middle" x="521" y="-1332.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N49 -->
<g id="edge74" class="edge">
<title>N5&#45;&gt;N49</title>
<g id="a_edge74"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.getMCache (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M709.97,-1458.85C699.45,-1450.22 685.75,-1440.28 672,-1434 638.85,-1418.87 624.05,-1433.35 592,-1416 573,-1405.71 555.54,-1388.89 542.68,-1374.43"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="545.21,-1372 536.04,-1366.7 539.9,-1376.56 545.21,-1372"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.getMCache (0.01s)">
<text text-anchor="middle" x="618.5" y="-1404.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="618.5" y="-1389.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N55 -->
<g id="node55" class="node">
<title>N55</title>
<g id="a_node55"><a xlink:title="runtime.pageIndexOf (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="665,-1366.5 581,-1366.5 581,-1325.5 665,-1325.5 665,-1366.5"/>
<text text-anchor="middle" x="623" y="-1354.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="623" y="-1343.5" font-family="Times-Roman" font-size="10.00">pageIndexOf</text>
<text text-anchor="middle" x="623" y="-1332.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N55 -->
<g id="edge75" class="edge">
<title>N5&#45;&gt;N55</title>
<g id="a_edge75"><a xlink:title="runtime.mallocgc ... runtime.pageIndexOf (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M711.35,-1458.75C699.73,-1447.08 684.42,-1431.09 672,-1416 661.3,-1403 650.37,-1387.82 641.55,-1375.01"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="644.33,-1372.88 635.81,-1366.58 638.54,-1376.82 644.33,-1372.88"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.mallocgc ... runtime.pageIndexOf (0.01s)">
<text text-anchor="middle" x="698.5" y="-1404.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="698.5" y="-1389.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node72" class="node">
<title>N72</title>
<g id="a_node72"><a xlink:title="runtime.callers (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="460.5,-1364 369.5,-1364 369.5,-1328 460.5,-1328 460.5,-1364"/>
<text text-anchor="middle" x="415" y="-1353.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="415" y="-1344.1" font-family="Times-Roman" font-size="8.00">callers</text>
<text text-anchor="middle" x="415" y="-1335.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N72 -->
<g id="edge27" class="edge">
<title>N5&#45;&gt;N72</title>
<g id="a_edge27"><a xlink:title="runtime.mallocgc ... runtime.callers (0.03s)">
<path fill="none" stroke="#b2ada1" stroke-dasharray="1,5" d="M711,-1458.86C700.47,-1449.88 686.43,-1439.62 672,-1434 602.85,-1407.06 574.96,-1443.41 506,-1416 480.6,-1405.9 456.16,-1386.66 439.02,-1371.06"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="441.37,-1368.47 431.68,-1364.2 436.59,-1373.58 441.37,-1368.47"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.mallocgc ... runtime.callers (0.03s)">
<text text-anchor="middle" x="528" y="-1397.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node78" class="node">
<title>N78</title>
<g id="a_node78"><a xlink:title="runtime.gcAssistAlloc (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="926.5,-1364 835.5,-1364 835.5,-1328 926.5,-1328 926.5,-1364"/>
<text text-anchor="middle" x="881" y="-1353.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="881" y="-1344.1" font-family="Times-Roman" font-size="8.00">gcAssistAlloc</text>
<text text-anchor="middle" x="881" y="-1335.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N78 -->
<g id="edge28" class="edge">
<title>N5&#45;&gt;N78</title>
<g id="a_edge28"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcAssistAlloc (0.03s)">
<path fill="none" stroke="#b2ada1" d="M749.18,-1458.87C775.87,-1436.22 823.02,-1396.2 853.1,-1370.68"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="855.37,-1373.34 860.73,-1364.2 850.84,-1368 855.37,-1373.34"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcAssistAlloc (0.03s)">
<text text-anchor="middle" x="853" y="-1397.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node6" class="node">
<title>N6</title>
<g id="a_node6"><a xlink:title="runtime.markroot (0.10s)">
<polygon fill="#ede9e5" stroke="#b29a7a" points="763.5,-732.5 672.5,-732.5 672.5,-696.5 763.5,-696.5 763.5,-732.5"/>
<text text-anchor="middle" x="718" y="-721.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="718" y="-712.6" font-family="Times-Roman" font-size="8.00">markroot</text>
<text text-anchor="middle" x="718" y="-703.6" font-family="Times-Roman" font-size="8.00">0 of 0.10s (6.25%)</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node19" class="node">
<title>N19</title>
<g id="a_node19"><a xlink:title="runtime.scanblock (0.05s)">
<polygon fill="#edebe9" stroke="#b2a896" points="772,-613.5 664,-613.5 664,-557.5 772,-557.5 772,-613.5"/>
<text text-anchor="middle" x="718" y="-600.7" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="718" y="-588.7" font-family="Times-Roman" font-size="11.00">scanblock</text>
<text text-anchor="middle" x="718" y="-576.7" font-family="Times-Roman" font-size="11.00">0.03s (1.88%)</text>
<text text-anchor="middle" x="718" y="-564.7" font-family="Times-Roman" font-size="11.00">of 0.05s (3.12%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N19 -->
<g id="edge13" class="edge">
<title>N6&#45;&gt;N19</title>
<g id="a_edge13"><a xlink:title="runtime.markroot ... runtime.scanblock (0.05s)">
<path fill="none" stroke="#b2a896" stroke-dasharray="1,5" d="M718,-696.37C718,-677.85 718,-647.76 718,-623.75"/>
<polygon fill="#b2a896" stroke="#b2a896" points="721.5,-623.55 718,-613.55 714.5,-623.55 721.5,-623.55"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.markroot ... runtime.scanblock (0.05s)">
<text text-anchor="middle" x="740" y="-646.3" font-family="Times-Roman" font-size="14.00"> 0.05s</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node28" class="node">
<title>N28</title>
<g id="a_node28"><a xlink:title="runtime.markroot.func1 (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="645.5,-607.5 554.5,-607.5 554.5,-563.5 645.5,-563.5 645.5,-607.5"/>
<text text-anchor="middle" x="600" y="-597.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="600" y="-588.1" font-family="Times-Roman" font-size="8.00">markroot</text>
<text text-anchor="middle" x="600" y="-579.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="600" y="-570.1" font-family="Times-Roman" font-size="8.00">0 of 0.04s (2.50%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N28 -->
<g id="edge15" class="edge">
<title>N6&#45;&gt;N28</title>
<g id="a_edge15"><a xlink:title="runtime.markroot &#45;&gt; runtime.markroot.func1 (0.04s)">
<path fill="none" stroke="#b2ab9c" d="M700.45,-696.2C691.26,-687.04 679.9,-675.53 670,-665 654.91,-648.94 638.5,-630.58 625.36,-615.66"/>
<polygon fill="#b2ab9c" stroke="#b2ab9c" points="627.65,-612.97 618.43,-607.76 622.39,-617.58 627.65,-612.97"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.markroot &#45;&gt; runtime.markroot.func1 (0.04s)">
<text text-anchor="middle" x="692" y="-646.3" font-family="Times-Roman" font-size="14.00"> 0.04s</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node53" class="node">
<title>N53</title>
<g id="a_node53"><a xlink:title="runtime.markrootSpans (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="881.5,-606 790.5,-606 790.5,-565 881.5,-565 881.5,-606"/>
<text text-anchor="middle" x="836" y="-594" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="836" y="-583" font-family="Times-Roman" font-size="10.00">markrootSpans</text>
<text text-anchor="middle" x="836" y="-572" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N6&#45;&gt;N53 -->
<g id="edge76" class="edge">
<title>N6&#45;&gt;N53</title>
<g id="a_edge76"><a xlink:title="runtime.markroot &#45;&gt; runtime.markrootSpans (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M735.55,-696.2C744.74,-687.04 756.1,-675.53 766,-665 781.76,-648.23 798.97,-628.94 812.38,-613.69"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="815.06,-615.94 819.02,-606.11 809.79,-611.32 815.06,-615.94"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.markroot &#45;&gt; runtime.markrootSpans (0.01s)">
<text text-anchor="middle" x="815" y="-646.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node7" class="node">
<title>N7</title>
<g id="a_node7"><a xlink:title="runtime.sweepone (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="1615,-868 1507,-868 1507,-812 1615,-812 1615,-868"/>
<text text-anchor="middle" x="1561" y="-855.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1561" y="-843.2" font-family="Times-Roman" font-size="11.00">sweepone</text>
<text text-anchor="middle" x="1561" y="-831.2" font-family="Times-Roman" font-size="11.00">0.03s (1.88%)</text>
<text text-anchor="middle" x="1561" y="-819.2" font-family="Times-Roman" font-size="11.00">of 0.08s (5.00%)</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node20" class="node">
<title>N20</title>
<g id="a_node20"><a xlink:title="runtime.(*sweepLocked).sweep (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="1588.5,-736.5 1497.5,-736.5 1497.5,-692.5 1588.5,-692.5 1588.5,-736.5"/>
<text text-anchor="middle" x="1543" y="-726.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1543" y="-717.1" font-family="Times-Roman" font-size="8.00">(*sweepLocked)</text>
<text text-anchor="middle" x="1543" y="-708.1" font-family="Times-Roman" font-size="8.00">sweep</text>
<text text-anchor="middle" x="1543" y="-699.1" font-family="Times-Roman" font-size="8.00">0 of 0.04s (2.50%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N20 -->
<g id="edge32" class="edge">
<title>N7&#45;&gt;N20</title>
<g id="a_edge32"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*sweepLocked).sweep (0.03s)">
<path fill="none" stroke="#b2ada1" d="M1557.05,-811.9C1554.25,-792.67 1550.48,-766.82 1547.55,-746.72"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="1551.01,-746.2 1546.11,-736.81 1544.08,-747.21 1551.01,-746.2"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*sweepLocked).sweep (0.03s)">
<text text-anchor="middle" x="1576" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node46" class="node">
<title>N46</title>
<g id="a_node46"><a xlink:title="runtime.(*sweepLocker).tryAcquire (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1699,-740.5 1607,-740.5 1607,-688.5 1699,-688.5 1699,-740.5"/>
<text text-anchor="middle" x="1653" y="-728.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1653" y="-717.5" font-family="Times-Roman" font-size="10.00">(*sweepLocker)</text>
<text text-anchor="middle" x="1653" y="-706.5" font-family="Times-Roman" font-size="10.00">tryAcquire</text>
<text text-anchor="middle" x="1653" y="-695.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N46 -->
<g id="edge90" class="edge">
<title>N7&#45;&gt;N46</title>
<g id="a_edge90"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*sweepLocker).tryAcquire (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1587.32,-811.53C1592.36,-805.87 1597.48,-799.86 1602,-794 1612.94,-779.83 1623.91,-763.32 1632.85,-749.11"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1635.84,-750.94 1638.14,-740.6 1629.89,-747.25 1635.84,-750.94"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*sweepLocker).tryAcquire (0.01s)">
<text text-anchor="middle" x="1648.5" y="-782.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1648.5" y="-767.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node66" class="node">
<title>N66</title>
<g id="a_node66"><a xlink:title="runtime.(*mheap).nextSpanForSweep (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1812.5,-736.5 1717.5,-736.5 1717.5,-692.5 1812.5,-692.5 1812.5,-736.5"/>
<text text-anchor="middle" x="1765" y="-726.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1765" y="-717.1" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1765" y="-708.1" font-family="Times-Roman" font-size="8.00">nextSpanForSweep</text>
<text text-anchor="middle" x="1765" y="-699.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N66 -->
<g id="edge89" class="edge">
<title>N7&#45;&gt;N66</title>
<g id="a_edge89"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*mheap).nextSpanForSweep (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1615.27,-823.1C1636.03,-815.81 1659.4,-806.07 1679,-794 1701.39,-780.21 1723.23,-760.17 1739.3,-743.78"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1741.85,-746.18 1746.26,-736.55 1736.8,-741.33 1741.85,-746.18"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*mheap).nextSpanForSweep (0.01s)">
<text text-anchor="middle" x="1739" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N6 -->
<g id="edge12" class="edge">
<title>N8&#45;&gt;N6</title>
<g id="a_edge12"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.markroot (0.08s)">
<path fill="none" stroke="#b2a085" d="M802.6,-1046.44C805.89,-1004.96 810.85,-896.08 782,-812 772.83,-785.29 754.46,-758.83 739.73,-740.4"/>
<polygon fill="#b2a085" stroke="#b2a085" points="742.32,-738.03 733.28,-732.52 736.91,-742.47 742.32,-738.03"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.markroot (0.08s)">
<text text-anchor="middle" x="822" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node11" class="node">
<title>N11</title>
<g id="a_node11"><a xlink:title="runtime.scanobject (0.05s)">
<polygon fill="#edebe9" stroke="#b2a896" points="592,-742.5 484,-742.5 484,-686.5 592,-686.5 592,-742.5"/>
<text text-anchor="middle" x="538" y="-729.7" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="538" y="-717.7" font-family="Times-Roman" font-size="11.00">scanobject</text>
<text text-anchor="middle" x="538" y="-705.7" font-family="Times-Roman" font-size="11.00">0.03s (1.88%)</text>
<text text-anchor="middle" x="538" y="-693.7" font-family="Times-Roman" font-size="11.00">of 0.05s (3.12%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N11 -->
<g id="edge14" class="edge">
<title>N8&#45;&gt;N11</title>
<g id="a_edge14"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (0.04s)">
<path fill="none" stroke="#b2ab9c" d="M760.58,-1046.38C753.12,-1043.44 745.37,-1040.52 738,-1038 658.92,-1010.95 609.75,-1051.83 557,-987 502.4,-919.89 516.18,-809.89 528.46,-752.68"/>
<polygon fill="#b2ab9c" stroke="#b2ab9c" points="531.94,-753.16 530.72,-742.64 525.11,-751.62 531.94,-753.16"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (0.04s)">
<text text-anchor="middle" x="544" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.04s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node64" class="node">
<title>N64</title>
<g id="a_node64"><a xlink:title="runtime.(*gcWork).balance (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="771.5,-975 680.5,-975 680.5,-931 771.5,-931 771.5,-975"/>
<text text-anchor="middle" x="726" y="-964.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="726" y="-955.6" font-family="Times-Roman" font-size="8.00">(*gcWork)</text>
<text text-anchor="middle" x="726" y="-946.6" font-family="Times-Roman" font-size="8.00">balance</text>
<text text-anchor="middle" x="726" y="-937.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N64 -->
<g id="edge66" class="edge">
<title>N8&#45;&gt;N64</title>
<g id="a_edge66"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.(*gcWork).balance (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M770.43,-1046.38C760.38,-1039.39 750,-1030.46 743,-1020 736.08,-1009.66 731.97,-996.67 729.54,-984.96"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="732.99,-984.34 727.81,-975.09 726.09,-985.55 732.99,-984.34"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.(*gcWork).balance (0.01s)">
<text text-anchor="middle" x="765" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node9" class="node">
<title>N9</title>
<g id="a_node9"><a xlink:title="runtime.gcBgMarkWorker (0.16s)">
<polygon fill="#ede7e1" stroke="#b28559" points="856,-1269 760,-1269 760,-1233 856,-1233 856,-1269"/>
<text text-anchor="middle" x="808" y="-1258.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="808" y="-1249.1" font-family="Times-Roman" font-size="8.00">gcBgMarkWorker</text>
<text text-anchor="middle" x="808" y="-1240.1" font-family="Times-Roman" font-size="8.00">0 of 0.16s (10.00%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N2 -->
<g id="edge4" class="edge">
<title>N9&#45;&gt;N2</title>
<g id="a_edge4"><a xlink:title="runtime.gcBgMarkWorker ... runtime.systemstack (0.16s)">
<path fill="none" stroke="#b28559" stroke-dasharray="1,5" d="M807.61,-1232.84C807.33,-1220.28 806.94,-1202.98 806.62,-1188.5"/>
<polygon fill="#b28559" stroke="#b28559" points="810.11,-1188.03 806.38,-1178.11 803.11,-1188.18 810.11,-1188.03"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="runtime.gcBgMarkWorker ... runtime.systemstack (0.16s)">
<text text-anchor="middle" x="829" y="-1199.8" font-family="Times-Roman" font-size="14.00"> 0.16s</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node10" class="node">
<title>N10</title>
<g id="a_node10"><a xlink:title="runtime.(*mheap).allocSpan (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="1118,-987 1010,-987 1010,-919 1118,-919 1118,-987"/>
<text text-anchor="middle" x="1064" y="-974.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1064" y="-962.2" font-family="Times-Roman" font-size="11.00">(*mheap)</text>
<text text-anchor="middle" x="1064" y="-950.2" font-family="Times-Roman" font-size="11.00">allocSpan</text>
<text text-anchor="middle" x="1064" y="-938.2" font-family="Times-Roman" font-size="11.00">0.02s (1.25%)</text>
<text text-anchor="middle" x="1064" y="-926.2" font-family="Times-Roman" font-size="11.00">of 0.08s (5.00%)</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node23" class="node">
<title>N23</title>
<g id="a_node23"><a xlink:title="runtime.newMarkBits (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1112.5,-866 1015.5,-866 1015.5,-814 1112.5,-814 1112.5,-866"/>
<text text-anchor="middle" x="1064" y="-854" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1064" y="-843" font-family="Times-Roman" font-size="10.00">newMarkBits</text>
<text text-anchor="middle" x="1064" y="-832" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
<text text-anchor="middle" x="1064" y="-821" font-family="Times-Roman" font-size="10.00">of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N23 -->
<g id="edge17" class="edge">
<title>N10&#45;&gt;N23</title>
<g id="a_edge17"><a xlink:title="runtime.(*mheap).allocSpan ... runtime.newMarkBits (0.03s)">
<path fill="none" stroke="#b2ada1" stroke-dasharray="1,5" d="M1064,-919C1064,-905.55 1064,-889.99 1064,-876.32"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="1067.5,-876.3 1064,-866.3 1060.5,-876.3 1067.5,-876.3"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.(*mheap).allocSpan ... runtime.newMarkBits (0.03s)">
<text text-anchor="middle" x="1086" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node34" class="node">
<title>N34</title>
<g id="a_node34"><a xlink:title="runtime.(*pageAlloc).alloc (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1367.5,-862 1276.5,-862 1276.5,-818 1367.5,-818 1367.5,-862"/>
<text text-anchor="middle" x="1322" y="-851.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1322" y="-842.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1322" y="-833.6" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="1322" y="-824.6" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N34 -->
<g id="edge16" class="edge">
<title>N10&#45;&gt;N34</title>
<g id="a_edge16"><a xlink:title="runtime.(*mheap).allocSpan &#45;&gt; runtime.(*pageAlloc).alloc (0.03s)">
<path fill="none" stroke="#b2ada1" d="M1118.09,-928.73C1161.72,-909.96 1222.87,-883.65 1266.8,-864.75"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="1268.38,-867.88 1276.18,-860.71 1265.61,-861.45 1268.38,-867.88"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.(*mheap).allocSpan &#45;&gt; runtime.(*pageAlloc).alloc (0.03s)">
<text text-anchor="middle" x="1238" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node16" class="node">
<title>N16</title>
<g id="a_node16"><a xlink:title="runtime.findObject (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="765,-498.5 671,-498.5 671,-454.5 765,-454.5 765,-498.5"/>
<text text-anchor="middle" x="718" y="-485.7" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="718" y="-473.7" font-family="Times-Roman" font-size="11.00">findObject</text>
<text text-anchor="middle" x="718" y="-461.7" font-family="Times-Roman" font-size="11.00">0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N16 -->
<g id="edge82" class="edge">
<title>N11&#45;&gt;N16</title>
<g id="a_edge82"><a xlink:title="runtime.scanobject &#45;&gt; runtime.findObject (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M519.69,-686.42C499.26,-652.49 472.58,-593.96 501,-554 542.79,-495.25 587.04,-527.07 655,-503 657.08,-502.26 659.19,-501.5 661.32,-500.71"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="662.58,-503.98 670.7,-497.17 660.11,-497.43 662.58,-503.98"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.findObject (0.01s)">
<text text-anchor="middle" x="523" y="-581.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node51" class="node">
<title>N51</title>
<g id="a_node51"><a xlink:title="runtime.heapBits.bits (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="456,-611.5 372,-611.5 372,-559.5 456,-559.5 456,-611.5"/>
<text text-anchor="middle" x="414" y="-599.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="414" y="-588.5" font-family="Times-Roman" font-size="10.00">heapBits</text>
<text text-anchor="middle" x="414" y="-577.5" font-family="Times-Roman" font-size="10.00">bits</text>
<text text-anchor="middle" x="414" y="-566.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N51 -->
<g id="edge83" class="edge">
<title>N11&#45;&gt;N51</title>
<g id="a_edge83"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBits.bits (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M483.86,-702.48C462.33,-695.35 439.32,-683.75 425,-665 415.72,-652.86 412.43,-636.48 411.66,-621.82"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="415.16,-621.49 411.51,-611.54 408.16,-621.59 415.16,-621.49"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBits.bits (0.01s)">
<text text-anchor="middle" x="451.5" y="-653.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="451.5" y="-638.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node24" class="node">
<title>N24</title>
<g id="a_node24"><a xlink:title="runtime.(*spanSet).push (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1217.5,-617 1120.5,-617 1120.5,-554 1217.5,-554 1217.5,-617"/>
<text text-anchor="middle" x="1169" y="-605" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1169" y="-594" font-family="Times-Roman" font-size="10.00">(*spanSet)</text>
<text text-anchor="middle" x="1169" y="-583" font-family="Times-Roman" font-size="10.00">push</text>
<text text-anchor="middle" x="1169" y="-572" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
<text text-anchor="middle" x="1169" y="-561" font-family="Times-Roman" font-size="10.00">of 0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N24 -->
<g id="edge48" class="edge">
<title>N12&#45;&gt;N24</title>
<g id="a_edge48"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.(*spanSet).push (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M774.56,-1333.53C826.5,-1319.63 907.06,-1295.29 929,-1273 1048.16,-1151.94 982,-1064.36 982,-894.5 982,-894.5 982,-894.5 982,-713.5 982,-650.38 1055.82,-616.44 1110.7,-599.93"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1111.72,-603.28 1120.36,-597.15 1109.78,-596.55 1111.72,-603.28"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.(*spanSet).push (0.01s)">
<text text-anchor="middle" x="1013" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N65 -->
<g id="node65" class="node">
<title>N65</title>
<g id="a_node65"><a xlink:title="runtime.(*mheap).alloc (0.09s)">
<polygon fill="#edeae6" stroke="#b29d80" points="741.5,-1273 650.5,-1273 650.5,-1229 741.5,-1229 741.5,-1273"/>
<text text-anchor="middle" x="696" y="-1262.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="696" y="-1253.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="696" y="-1244.6" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="696" y="-1235.6" font-family="Times-Roman" font-size="8.00">0 of 0.09s (5.62%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N65 -->
<g id="edge7" class="edge">
<title>N12&#45;&gt;N65</title>
<g id="a_edge7"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.(*mheap).alloc (0.09s)">
<path fill="none" stroke="#b29d80" d="M721.51,-1323.9C717.17,-1311.65 711.62,-1296.01 706.8,-1282.45"/>
<polygon fill="#b29d80" stroke="#b29d80" points="710.1,-1281.27 703.46,-1273.02 703.5,-1283.61 710.1,-1281.27"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.(*mheap).alloc (0.09s)">
<text text-anchor="middle" x="736" y="-1294.8" font-family="Times-Roman" font-size="14.00"> 0.09s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node13" class="node">
<title>N13</title>
<g id="a_node13"><a xlink:title="runtime.futex (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="419.5,-738 320.5,-738 320.5,-691 419.5,-691 419.5,-738"/>
<text text-anchor="middle" x="370" y="-724.4" font-family="Times-Roman" font-size="12.00">runtime</text>
<text text-anchor="middle" x="370" y="-711.4" font-family="Times-Roman" font-size="12.00">futex</text>
<text text-anchor="middle" x="370" y="-698.4" font-family="Times-Roman" font-size="12.00">0.04s (2.50%)</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node14" class="node">
<title>N14</title>
<g id="a_node14"><a xlink:title="runtime.gentraceback (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="955.5,-368 864.5,-368 864.5,-332 955.5,-332 955.5,-368"/>
<text text-anchor="middle" x="910" y="-357.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="910" y="-348.1" font-family="Times-Roman" font-size="8.00">gentraceback</text>
<text text-anchor="middle" x="910" y="-339.1" font-family="Times-Roman" font-size="8.00">0 of 0.04s (2.50%)</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node50" class="node">
<title>N50</title>
<g id="a_node50"><a xlink:title="runtime.gotraceback (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1058,-248.5 974,-248.5 974,-207.5 1058,-207.5 1058,-248.5"/>
<text text-anchor="middle" x="1016" y="-236.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1016" y="-225.5" font-family="Times-Roman" font-size="10.00">gotraceback</text>
<text text-anchor="middle" x="1016" y="-214.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N50 -->
<g id="edge70" class="edge">
<title>N14&#45;&gt;N50</title>
<g id="a_edge70"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.gotraceback (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M926.68,-331.76C936.03,-321.98 947.82,-309.45 958,-298 969.95,-284.57 982.85,-269.31 993.44,-256.55"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="996.36,-258.52 1000.04,-248.58 990.96,-254.05 996.36,-258.52"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.gotraceback (0.01s)">
<text text-anchor="middle" x="1009.5" y="-286.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1009.5" y="-271.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node57" class="node">
<title>N57</title>
<g id="a_node57"><a xlink:title="runtime.scanframeworker (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="846.5,-248.5 745.5,-248.5 745.5,-207.5 846.5,-207.5 846.5,-248.5"/>
<text text-anchor="middle" x="796" y="-236.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="796" y="-225.5" font-family="Times-Roman" font-size="10.00">scanframeworker</text>
<text text-anchor="middle" x="796" y="-214.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N57 -->
<g id="edge71" class="edge">
<title>N14&#45;&gt;N57</title>
<g id="a_edge71"><a xlink:title="runtime.gentraceback ... runtime.scanframeworker (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M893.67,-331.81C874.86,-312.01 843.73,-279.24 821.67,-256.03"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="824,-253.39 814.57,-248.55 818.92,-258.21 824,-253.39"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.gentraceback ... runtime.scanframeworker (0.01s)">
<text text-anchor="middle" x="881" y="-279.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N76 -->
<g id="node76" class="node">
<title>N76</title>
<g id="a_node76"><a xlink:title="runtime.funcspdelta (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="955.5,-246 864.5,-246 864.5,-210 955.5,-210 955.5,-246"/>
<text text-anchor="middle" x="910" y="-235.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="910" y="-226.1" font-family="Times-Roman" font-size="8.00">funcspdelta</text>
<text text-anchor="middle" x="910" y="-217.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N76 -->
<g id="edge69" class="edge">
<title>N14&#45;&gt;N76</title>
<g id="a_edge69"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.funcspdelta (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M910,-331.81C910,-312.11 910,-279.58 910,-256.39"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="913.5,-256.16 910,-246.16 906.5,-256.16 913.5,-256.16"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.funcspdelta (0.01s)">
<text text-anchor="middle" x="932" y="-279.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node15" class="node">
<title>N15</title>
<g id="a_node15"><a xlink:title="runtime.nanotime (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="317,-372 223,-372 223,-328 317,-328 317,-372"/>
<text text-anchor="middle" x="270" y="-359.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="270" y="-347.2" font-family="Times-Roman" font-size="11.00">nanotime</text>
<text text-anchor="middle" x="270" y="-335.2" font-family="Times-Roman" font-size="11.00">0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node17" class="node">
<title>N17</title>
<g id="a_node17"><a xlink:title="runtime.memclrNoHeapPointers (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1262,-736.5 1116,-736.5 1116,-692.5 1262,-692.5 1262,-736.5"/>
<text text-anchor="middle" x="1189" y="-723.7" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1189" y="-711.7" font-family="Times-Roman" font-size="11.00">memclrNoHeapPointers</text>
<text text-anchor="middle" x="1189" y="-699.7" font-family="Times-Roman" font-size="11.00">0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node18" class="node">
<title>N18</title>
<g id="a_node18"><a xlink:title="runtime.bgsweep (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="1606.5,-971 1515.5,-971 1515.5,-935 1606.5,-935 1606.5,-971"/>
<text text-anchor="middle" x="1561" y="-960.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1561" y="-951.1" font-family="Times-Roman" font-size="8.00">bgsweep</text>
<text text-anchor="middle" x="1561" y="-942.1" font-family="Times-Roman" font-size="8.00">0 of 0.08s (5.00%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N7 -->
<g id="edge11" class="edge">
<title>N18&#45;&gt;N7</title>
<g id="a_edge11"><a xlink:title="runtime.bgsweep &#45;&gt; runtime.sweepone (0.08s)">
<path fill="none" stroke="#b2a085" d="M1561,-934.66C1561,-919.63 1561,-897.38 1561,-878.34"/>
<polygon fill="#b2a085" stroke="#b2a085" points="1564.5,-878.15 1561,-868.15 1557.5,-878.15 1564.5,-878.15"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.bgsweep &#45;&gt; runtime.sweepone (0.08s)">
<text text-anchor="middle" x="1583" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N16 -->
<g id="edge44" class="edge">
<title>N19&#45;&gt;N16</title>
<g id="a_edge44"><a xlink:title="runtime.scanblock &#45;&gt; runtime.findObject (0.02s)">
<path fill="none" stroke="#b2afa7" d="M718,-557.5C718,-542.71 718,-524.31 718,-508.88"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="721.5,-508.76 718,-498.76 714.5,-508.76 721.5,-508.76"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.scanblock &#45;&gt; runtime.findObject (0.02s)">
<text text-anchor="middle" x="740" y="-524.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N24 -->
<g id="edge61" class="edge">
<title>N20&#45;&gt;N24</title>
<g id="a_edge61"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*spanSet).push (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1534.13,-692.48C1525.26,-674.17 1509.78,-648.51 1488,-635 1482.5,-631.59 1318.58,-607.81 1227.92,-594.86"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1228.17,-591.36 1217.77,-593.41 1227.18,-598.29 1228.17,-591.36"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*spanSet).push (0.01s)">
<text text-anchor="middle" x="1539" y="-646.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node32" class="node">
<title>N32</title>
<g id="a_node32"><a xlink:title="runtime.(*mheap).freeSpan (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1713.5,-607.5 1622.5,-607.5 1622.5,-563.5 1713.5,-563.5 1713.5,-607.5"/>
<text text-anchor="middle" x="1668" y="-597.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1668" y="-588.1" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1668" y="-579.1" font-family="Times-Roman" font-size="8.00">freeSpan</text>
<text text-anchor="middle" x="1668" y="-570.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N32 -->
<g id="edge19" class="edge">
<title>N20&#45;&gt;N32</title>
<g id="a_edge19"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*mheap).freeSpan (0.03s)">
<path fill="none" stroke="#b2ada1" d="M1563.92,-692.24C1584.74,-671.09 1616.83,-638.49 1639.87,-615.08"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="1642.49,-617.41 1647.01,-607.83 1637.5,-612.5 1642.49,-617.41"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*mheap).freeSpan (0.03s)">
<text text-anchor="middle" x="1638" y="-646.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node21" class="node">
<title>N21</title>
<g id="a_node21"><a xlink:title="runtime.schedule (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="226.5,-1082.5 135.5,-1082.5 135.5,-1046.5 226.5,-1046.5 226.5,-1082.5"/>
<text text-anchor="middle" x="181" y="-1071.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="181" y="-1062.6" font-family="Times-Roman" font-size="8.00">schedule</text>
<text text-anchor="middle" x="181" y="-1053.6" font-family="Times-Roman" font-size="8.00">0 of 0.04s (2.50%)</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node35" class="node">
<title>N35</title>
<g id="a_node35"><a xlink:title="runtime.findrunnable (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="226.5,-971 135.5,-971 135.5,-935 226.5,-935 226.5,-971"/>
<text text-anchor="middle" x="181" y="-960.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="181" y="-951.1" font-family="Times-Roman" font-size="8.00">findrunnable</text>
<text text-anchor="middle" x="181" y="-942.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N35 -->
<g id="edge31" class="edge">
<title>N21&#45;&gt;N35</title>
<g id="a_edge31"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.03s)">
<path fill="none" stroke="#b2ada1" d="M181,-1046.39C181,-1029.06 181,-1001.96 181,-981.59"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="184.5,-981.35 181,-971.35 177.5,-981.35 184.5,-981.35"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.03s)">
<text text-anchor="middle" x="203" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node47" class="node">
<title>N47</title>
<g id="a_node47"><a xlink:title="runtime.execute (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="117,-973.5 33,-973.5 33,-932.5 117,-932.5 117,-973.5"/>
<text text-anchor="middle" x="75" y="-961.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="75" y="-950.5" font-family="Times-Roman" font-size="10.00">execute</text>
<text text-anchor="middle" x="75" y="-939.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N47 -->
<g id="edge86" class="edge">
<title>N21&#45;&gt;N47</title>
<g id="a_edge86"><a xlink:title="runtime.schedule &#45;&gt; runtime.execute (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M160.91,-1046.21C152.13,-1038.42 141.84,-1028.97 133,-1020 120.88,-1007.7 108.14,-993.37 97.7,-981.21"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="100.34,-978.92 91.19,-973.58 95.02,-983.46 100.34,-978.92"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.execute (0.01s)">
<text text-anchor="middle" x="155" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node22" class="node">
<title>N22</title>
<g id="a_node22"><a xlink:title="runtime.procyield (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="453,-372 359,-372 359,-328 453,-328 453,-372"/>
<text text-anchor="middle" x="406" y="-359.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="406" y="-347.2" font-family="Times-Roman" font-size="11.00">procyield</text>
<text text-anchor="middle" x="406" y="-335.2" font-family="Times-Roman" font-size="11.00">0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N17 -->
<g id="edge79" class="edge">
<title>N23&#45;&gt;N17</title>
<g id="a_edge79"><a xlink:title="runtime.newMarkBits ... runtime.memclrNoHeapPointers (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1094.84,-813.93C1102.26,-807.6 1110.04,-800.7 1117,-794 1133.34,-778.27 1150.55,-759.6 1164.04,-744.42"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1166.74,-746.64 1170.73,-736.83 1161.49,-742.01 1166.74,-746.64"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.newMarkBits ... runtime.memclrNoHeapPointers (0.01s)">
<text text-anchor="middle" x="1167" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node40" class="node">
<title>N40</title>
<g id="a_node40"><a xlink:title="runtime.(*gcBitsArena).tryAlloc (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1098,-740.5 1010,-740.5 1010,-688.5 1098,-688.5 1098,-740.5"/>
<text text-anchor="middle" x="1054" y="-728.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1054" y="-717.5" font-family="Times-Roman" font-size="10.00">(*gcBitsArena)</text>
<text text-anchor="middle" x="1054" y="-706.5" font-family="Times-Roman" font-size="10.00">tryAlloc</text>
<text text-anchor="middle" x="1054" y="-695.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N40 -->
<g id="edge78" class="edge">
<title>N23&#45;&gt;N40</title>
<g id="a_edge78"><a xlink:title="runtime.newMarkBits &#45;&gt; runtime.(*gcBitsArena).tryAlloc (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1061.95,-813.71C1060.48,-795.56 1058.48,-770.87 1056.86,-750.78"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1060.34,-750.44 1056.05,-740.76 1053.36,-751.01 1060.34,-750.44"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.newMarkBits &#45;&gt; runtime.(*gcBitsArena).tryAlloc (0.01s)">
<text text-anchor="middle" x="1086.5" y="-782.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1086.5" y="-767.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node71" class="node">
<title>N71</title>
<g id="a_node71"><a xlink:title="runtime.(*spanSetBlockAlloc).alloc (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1219.5,-498.5 1118.5,-498.5 1118.5,-454.5 1219.5,-454.5 1219.5,-498.5"/>
<text text-anchor="middle" x="1169" y="-488.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1169" y="-479.1" font-family="Times-Roman" font-size="8.00">(*spanSetBlockAlloc)</text>
<text text-anchor="middle" x="1169" y="-470.1" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="1169" y="-461.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N71 -->
<g id="edge59" class="edge">
<title>N24&#45;&gt;N71</title>
<g id="a_edge59"><a xlink:title="runtime.(*spanSet).push &#45;&gt; runtime.(*spanSetBlockAlloc).alloc (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1169,-553.84C1169,-539.76 1169,-523.09 1169,-508.93"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1172.5,-508.67 1169,-498.67 1165.5,-508.67 1172.5,-508.67"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.(*spanSet).push &#45;&gt; runtime.(*spanSetBlockAlloc).alloc (0.01s)">
<text text-anchor="middle" x="1191" y="-524.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node25" class="node">
<title>N25</title>
<g id="a_node25"><a xlink:title="runtime.pcvalue (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="958.5,-155 861.5,-155 861.5,-103 958.5,-103 958.5,-155"/>
<text text-anchor="middle" x="910" y="-143" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="910" y="-132" font-family="Times-Roman" font-size="10.00">pcvalue</text>
<text text-anchor="middle" x="910" y="-121" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
<text text-anchor="middle" x="910" y="-110" font-family="Times-Roman" font-size="10.00">of 0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node59" class="node">
<title>N59</title>
<g id="a_node59"><a xlink:title="runtime.step (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="952,-46.5 868,-46.5 868,-5.5 952,-5.5 952,-46.5"/>
<text text-anchor="middle" x="910" y="-34.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="910" y="-23.5" font-family="Times-Roman" font-size="10.00">step</text>
<text text-anchor="middle" x="910" y="-12.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N59 -->
<g id="edge81" class="edge">
<title>N25&#45;&gt;N59</title>
<g id="a_edge81"><a xlink:title="runtime.pcvalue &#45;&gt; runtime.step (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M910,-102.77C910,-88.76 910,-71.25 910,-56.6"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="913.5,-56.52 910,-46.52 906.5,-56.52 913.5,-56.52"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.pcvalue &#45;&gt; runtime.step (0.01s)">
<text text-anchor="middle" x="932" y="-73.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node26" class="node">
<title>N26</title>
<g id="a_node26"><a xlink:title="runtime.(*mheap).freeSpanLocked (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1954,-384 1846,-384 1846,-316 1954,-316 1954,-384"/>
<text text-anchor="middle" x="1900" y="-371.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1900" y="-359.2" font-family="Times-Roman" font-size="11.00">(*mheap)</text>
<text text-anchor="middle" x="1900" y="-347.2" font-family="Times-Roman" font-size="11.00">freeSpanLocked</text>
<text text-anchor="middle" x="1900" y="-335.2" font-family="Times-Roman" font-size="11.00">0.02s (1.25%)</text>
<text text-anchor="middle" x="1900" y="-323.2" font-family="Times-Roman" font-size="11.00">of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node69" class="node">
<title>N69</title>
<g id="a_node69"><a xlink:title="runtime.(*pageAlloc).free (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1945.5,-250 1854.5,-250 1854.5,-206 1945.5,-206 1945.5,-250"/>
<text text-anchor="middle" x="1900" y="-239.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1900" y="-230.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1900" y="-221.6" font-family="Times-Roman" font-size="8.00">free</text>
<text text-anchor="middle" x="1900" y="-212.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N69 -->
<g id="edge51" class="edge">
<title>N26&#45;&gt;N69</title>
<g id="a_edge51"><a xlink:title="runtime.(*mheap).freeSpanLocked &#45;&gt; runtime.(*pageAlloc).free (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1900,-315.89C1900,-298.54 1900,-277.41 1900,-260.33"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1903.5,-260.29 1900,-250.29 1896.5,-260.29 1903.5,-260.29"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mheap).freeSpanLocked &#45;&gt; runtime.(*pageAlloc).free (0.01s)">
<text text-anchor="middle" x="1922" y="-279.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N10 -->
<g id="edge10" class="edge">
<title>N27&#45;&gt;N10</title>
<g id="a_edge10"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).allocSpan (0.08s)">
<path fill="none" stroke="#b2a085" d="M1064,-1037.83C1064,-1025.84 1064,-1011.23 1064,-997.59"/>
<polygon fill="#b2a085" stroke="#b2a085" points="1067.5,-997.4 1064,-987.4 1060.5,-997.4 1067.5,-997.4"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).allocSpan (0.08s)">
<text text-anchor="middle" x="1086" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node67" class="node">
<title>N67</title>
<g id="a_node67"><a xlink:title="runtime.(*mheap).reclaim (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1371.5,-975 1280.5,-975 1280.5,-931 1371.5,-931 1371.5,-975"/>
<text text-anchor="middle" x="1326" y="-964.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1326" y="-955.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1326" y="-946.6" font-family="Times-Roman" font-size="8.00">reclaim</text>
<text text-anchor="middle" x="1326" y="-937.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N67 -->
<g id="edge49" class="edge">
<title>N27&#45;&gt;N67</title>
<g id="a_edge49"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).reclaim (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1109.64,-1044.43C1154.58,-1025.64 1223.27,-996.93 1271.16,-976.92"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1272.57,-980.12 1280.45,-973.04 1269.87,-973.67 1272.57,-980.12"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).reclaim (0.01s)">
<text text-anchor="middle" x="1224" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node58" class="node">
<title>N58</title>
<g id="a_node58"><a xlink:title="runtime.scanstack (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="645.5,-494.5 554.5,-494.5 554.5,-458.5 645.5,-458.5 645.5,-494.5"/>
<text text-anchor="middle" x="600" y="-483.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="600" y="-474.6" font-family="Times-Roman" font-size="8.00">scanstack</text>
<text text-anchor="middle" x="600" y="-465.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N58 -->
<g id="edge41" class="edge">
<title>N28&#45;&gt;N58</title>
<g id="a_edge41"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.scanstack (0.02s)">
<path fill="none" stroke="#b2afa7" d="M600,-563.36C600,-546.56 600,-522.94 600,-504.72"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="603.5,-504.72 600,-494.72 596.5,-504.72 603.5,-504.72"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.scanstack (0.02s)">
<text text-anchor="middle" x="622" y="-524.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node60" class="node">
<title>N60</title>
<g id="a_node60"><a xlink:title="runtime.suspendG (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="469.5,-494.5 378.5,-494.5 378.5,-458.5 469.5,-458.5 469.5,-494.5"/>
<text text-anchor="middle" x="424" y="-483.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="424" y="-474.6" font-family="Times-Roman" font-size="8.00">suspendG</text>
<text text-anchor="middle" x="424" y="-465.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N60 -->
<g id="edge42" class="edge">
<title>N28&#45;&gt;N60</title>
<g id="a_edge42"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.suspendG (0.02s)">
<path fill="none" stroke="#b2afa7" d="M565.23,-563.36C535.05,-545.01 491.49,-518.53 460.74,-499.84"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="462.4,-496.75 452.04,-494.55 458.76,-502.73 462.4,-496.75"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.markroot.func1 &#45;&gt; runtime.suspendG (0.02s)">
<text text-anchor="middle" x="540" y="-524.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node29" class="node">
<title>N29</title>
<g id="a_node29"><a xlink:title="runtime.(*pageAlloc).find (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1479.5,-746 1382.5,-746 1382.5,-683 1479.5,-683 1479.5,-746"/>
<text text-anchor="middle" x="1431" y="-734" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1431" y="-723" font-family="Times-Roman" font-size="10.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1431" y="-712" font-family="Times-Roman" font-size="10.00">find</text>
<text text-anchor="middle" x="1431" y="-701" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
<text text-anchor="middle" x="1431" y="-690" font-family="Times-Roman" font-size="10.00">of 0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node56" class="node">
<title>N56</title>
<g id="a_node56"><a xlink:title="runtime.pallocSum.start (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1473,-611.5 1389,-611.5 1389,-559.5 1473,-559.5 1473,-611.5"/>
<text text-anchor="middle" x="1431" y="-599.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1431" y="-588.5" font-family="Times-Roman" font-size="10.00">pallocSum</text>
<text text-anchor="middle" x="1431" y="-577.5" font-family="Times-Roman" font-size="10.00">start</text>
<text text-anchor="middle" x="1431" y="-566.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N56 -->
<g id="edge56" class="edge">
<title>N29&#45;&gt;N56</title>
<g id="a_edge56"><a xlink:title="runtime.(*pageAlloc).find &#45;&gt; runtime.pallocSum.start (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1431,-682.76C1431,-664.42 1431,-641.07 1431,-621.96"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1434.5,-621.84 1431,-611.84 1427.5,-621.84 1434.5,-621.84"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.(*pageAlloc).find &#45;&gt; runtime.pallocSum.start (0.01s)">
<text text-anchor="middle" x="1457.5" y="-653.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1457.5" y="-638.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node30" class="node">
<title>N30</title>
<g id="a_node30"><a xlink:title="runtime.mcall (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="233.5,-1178 142.5,-1178 142.5,-1142 233.5,-1142 233.5,-1178"/>
<text text-anchor="middle" x="188" y="-1167.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="188" y="-1158.1" font-family="Times-Roman" font-size="8.00">mcall</text>
<text text-anchor="middle" x="188" y="-1149.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N21 -->
<g id="edge30" class="edge">
<title>N30&#45;&gt;N21</title>
<g id="a_edge30"><a xlink:title="runtime.mcall ... runtime.schedule (0.03s)">
<path fill="none" stroke="#b2ada1" stroke-dasharray="1,5" d="M186.72,-1141.85C185.69,-1128.14 184.23,-1108.67 183.05,-1092.82"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="186.51,-1092.25 182.28,-1082.54 179.53,-1092.77 186.51,-1092.25"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.mcall ... runtime.schedule (0.03s)">
<text text-anchor="middle" x="208" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node31" class="node">
<title>N31</title>
<g id="a_node31"><a xlink:title="runtime.nanotime1 (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="714,-1771 630,-1771 630,-1730 714,-1730 714,-1771"/>
<text text-anchor="middle" x="672" y="-1759" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="672" y="-1748" font-family="Times-Roman" font-size="10.00">nanotime1</text>
<text text-anchor="middle" x="672" y="-1737" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N2 -->
<g id="edge36" class="edge">
<title>N32&#45;&gt;N2</title>
<g id="a_edge36"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.systemstack (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1702.12,-607.6C1708.86,-611.14 1716.02,-614.48 1723,-617 1763.42,-631.61 1786.16,-606.13 1818,-635 1844.93,-659.42 1841,-677.14 1841,-713.5 1841,-1065.5 1841,-1065.5 1841,-1065.5 1841,-1114.9 1083.3,-1148.21 864.5,-1156.8"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="864.04,-1153.32 854.19,-1157.21 864.32,-1160.31 864.04,-1153.32"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.systemstack (0.02s)">
<text text-anchor="middle" x="1863" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N33 -->
<g id="edge50" class="edge">
<title>N32&#45;&gt;N33</title>
<g id="a_edge50"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1704.72,-563.49C1710.77,-560.21 1717.02,-556.94 1723,-554 1763.09,-534.28 1809.48,-514.33 1844.71,-499.75"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1846.42,-502.83 1854.34,-495.79 1843.76,-496.36 1846.42,-502.83"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.01s)">
<text text-anchor="middle" x="1812" y="-524.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N26 -->
<g id="edge18" class="edge">
<title>N33&#45;&gt;N26</title>
<g id="a_edge18"><a xlink:title="runtime.(*mheap).freeSpan.func1 &#45;&gt; runtime.(*mheap).freeSpanLocked (0.03s)">
<path fill="none" stroke="#b2ada1" d="M1900,-449.7C1900,-433.79 1900,-412.97 1900,-394.56"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="1903.5,-394.34 1900,-384.34 1896.5,-394.34 1903.5,-394.34"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.(*mheap).freeSpan.func1 &#45;&gt; runtime.(*mheap).freeSpanLocked (0.03s)">
<text text-anchor="middle" x="1922" y="-413.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N29 -->
<g id="edge37" class="edge">
<title>N34&#45;&gt;N29</title>
<g id="a_edge37"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).find (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1346.16,-817.74C1354.02,-810.46 1362.61,-802.1 1370,-794 1381.25,-781.65 1392.72,-767.42 1402.63,-754.49"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1405.64,-756.3 1408.89,-746.22 1400.07,-752.08 1405.64,-756.3"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).find (0.02s)">
<text text-anchor="middle" x="1416" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node42" class="node">
<title>N42</title>
<g id="a_node42"><a xlink:title="runtime.(*pageAlloc).allocRange (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1364,-740.5 1280,-740.5 1280,-688.5 1364,-688.5 1364,-740.5"/>
<text text-anchor="middle" x="1322" y="-728.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1322" y="-717.5" font-family="Times-Roman" font-size="10.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1322" y="-706.5" font-family="Times-Roman" font-size="10.00">allocRange</text>
<text text-anchor="middle" x="1322" y="-695.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N42 -->
<g id="edge55" class="edge">
<title>N34&#45;&gt;N42</title>
<g id="a_edge55"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).allocRange (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1322,-817.77C1322,-799.4 1322,-772.46 1322,-750.84"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1325.5,-750.71 1322,-740.71 1318.5,-750.71 1325.5,-750.71"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).allocRange (0.01s)">
<text text-anchor="middle" x="1344" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node36" class="node">
<title>N36</title>
<g id="a_node36"><a xlink:title="runtime.futexsleep (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="415.5,-858 324.5,-858 324.5,-822 415.5,-822 415.5,-858"/>
<text text-anchor="middle" x="370" y="-847.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="370" y="-838.1" font-family="Times-Roman" font-size="8.00">futexsleep</text>
<text text-anchor="middle" x="370" y="-829.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N36 -->
<g id="edge62" class="edge">
<title>N35&#45;&gt;N36</title>
<g id="a_edge62"><a xlink:title="runtime.findrunnable ... runtime.futexsleep (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M209.22,-934.97C217.8,-929.82 227.28,-924.16 236,-919 268.17,-899.99 304.85,-878.66 331.69,-863.12"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="333.49,-866.12 340.39,-858.08 329.99,-860.06 333.49,-866.12"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.findrunnable ... runtime.futexsleep (0.01s)">
<text text-anchor="middle" x="314" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node52" class="node">
<title>N52</title>
<g id="a_node52"><a xlink:title="runtime.lock2 (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="226.5,-858 135.5,-858 135.5,-822 226.5,-822 226.5,-858"/>
<text text-anchor="middle" x="181" y="-847.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="181" y="-838.1" font-family="Times-Roman" font-size="8.00">lock2</text>
<text text-anchor="middle" x="181" y="-829.1" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.25%)</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N52 -->
<g id="edge38" class="edge">
<title>N35&#45;&gt;N52</title>
<g id="a_edge38"><a xlink:title="runtime.findrunnable ... runtime.lock2 (0.02s)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M181,-934.66C181,-916.9 181,-889.04 181,-868.32"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="184.5,-868.22 181,-858.22 177.5,-868.22 184.5,-868.22"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.findrunnable ... runtime.lock2 (0.02s)">
<text text-anchor="middle" x="203" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N13 -->
<g id="edge23" class="edge">
<title>N36&#45;&gt;N13</title>
<g id="a_edge23"><a xlink:title="runtime.futexsleep &#45;&gt; runtime.futex (0.03s)">
<path fill="none" stroke="#b2ada1" d="M370,-821.83C370,-802.98 370,-772.25 370,-748.67"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="373.5,-748.4 370,-738.4 366.5,-748.4 373.5,-748.4"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.futexsleep &#45;&gt; runtime.futex (0.03s)">
<text text-anchor="middle" x="392" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node37" class="node">
<title>N37</title>
<g id="a_node37"><a xlink:title="runtime.gcDrainN (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="657.5,-858 566.5,-858 566.5,-822 657.5,-822 657.5,-858"/>
<text text-anchor="middle" x="612" y="-847.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="612" y="-838.1" font-family="Times-Roman" font-size="8.00">gcDrainN</text>
<text text-anchor="middle" x="612" y="-829.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N6 -->
<g id="edge39" class="edge">
<title>N37&#45;&gt;N6</title>
<g id="a_edge39"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.markroot (0.02s)">
<path fill="none" stroke="#b2afa7" d="M626.74,-821.83C644.93,-800.63 676.01,-764.42 696.77,-740.23"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="699.53,-742.39 703.39,-732.53 694.22,-737.83 699.53,-742.39"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.markroot (0.02s)">
<text text-anchor="middle" x="696" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N37&#45;&gt;N11 -->
<g id="edge67" class="edge">
<title>N37&#45;&gt;N11</title>
<g id="a_edge67"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.scanobject (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M601.71,-821.83C590.91,-803.81 573.61,-774.94 559.77,-751.83"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="562.6,-749.75 554.46,-742.97 556.6,-753.34 562.6,-749.75"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.scanobject (0.01s)">
<text text-anchor="middle" x="605" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N2 -->
<g id="edge40" class="edge">
<title>N38&#45;&gt;N2</title>
<g id="a_edge40"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.02s)">
<path fill="none" stroke="#b2afa7" d="M343.82,-1232.89C372,-1220.57 412.15,-1204.65 449,-1196 552.44,-1171.72 676.56,-1164.26 747.86,-1161.98"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="748.1,-1165.47 757.99,-1161.68 747.89,-1158.48 748.1,-1165.47"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.02s)">
<text text-anchor="middle" x="471" y="-1199.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N38&#45;&gt;N15 -->
<g id="edge68" class="edge">
<title>N38&#45;&gt;N15</title>
<g id="a_edge68"><a xlink:title="runtime.gcStart &#45;&gt; runtime.nanotime (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M261.46,-1246.1C177.09,-1237.61 5,-1213.82 5,-1161 5,-1161 5,-1161 5,-475.5 5,-384.41 134.86,-359.84 212.77,-353.3"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="213.22,-356.77 222.93,-352.52 212.69,-349.79 213.22,-356.77"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.nanotime (0.01s)">
<text text-anchor="middle" x="31.5" y="-843.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="31.5" y="-828.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node39" class="node">
<title>N39</title>
<g id="a_node39"><a xlink:title="runtime.notetsleep_internal (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="341,-971 245,-971 245,-935 341,-935 341,-971"/>
<text text-anchor="middle" x="293" y="-960.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="293" y="-951.1" font-family="Times-Roman" font-size="8.00">notetsleep_internal</text>
<text text-anchor="middle" x="293" y="-942.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N15 -->
<g id="edge80" class="edge">
<title>N39&#45;&gt;N15</title>
<g id="a_edge80"><a xlink:title="runtime.notetsleep_internal &#45;&gt; runtime.nanotime (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M287.2,-934.92C280.38,-913.32 270,-874.85 270,-841 270,-841 270,-841 270,-475.5 270,-443.73 270,-407.39 270,-382.21"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="273.5,-382.15 270,-372.15 266.5,-382.15 273.5,-382.15"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.notetsleep_internal &#45;&gt; runtime.nanotime (0.01s)">
<text text-anchor="middle" x="296.5" y="-653.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="296.5" y="-638.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N39&#45;&gt;N36 -->
<g id="edge43" class="edge">
<title>N39&#45;&gt;N36</title>
<g id="a_edge43"><a xlink:title="runtime.notetsleep_internal &#45;&gt; runtime.futexsleep (0.02s)">
<path fill="none" stroke="#b2afa7" d="M316.02,-934.9C326.93,-925.83 339.41,-913.9 348,-901 354.66,-890.99 359.63,-878.7 363.14,-867.86"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="366.56,-868.61 366.06,-858.03 359.85,-866.62 366.56,-868.61"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.notetsleep_internal &#45;&gt; runtime.futexsleep (0.02s)">
<text text-anchor="middle" x="378" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node41" class="node">
<title>N41</title>
<g id="a_node41"><a xlink:title="runtime.(*lfstack).pop (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1211,-376 1127,-376 1127,-324 1211,-324 1211,-376"/>
<text text-anchor="middle" x="1169" y="-364" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1169" y="-353" font-family="Times-Roman" font-size="10.00">(*lfstack)</text>
<text text-anchor="middle" x="1169" y="-342" font-family="Times-Roman" font-size="10.00">pop</text>
<text text-anchor="middle" x="1169" y="-331" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node43" class="node">
<title>N43</title>
<g id="a_node43"><a xlink:title="runtime.(*pallocBits).summarize (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1942,-52 1858,-52 1858,0 1942,0 1942,-52"/>
<text text-anchor="middle" x="1900" y="-40" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1900" y="-29" font-family="Times-Roman" font-size="10.00">(*pallocBits)</text>
<text text-anchor="middle" x="1900" y="-18" font-family="Times-Roman" font-size="10.00">summarize</text>
<text text-anchor="middle" x="1900" y="-7" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node44" class="node">
<title>N44</title>
<g id="a_node44"><a xlink:title="runtime.(*spanSet).pop (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1816,-611.5 1732,-611.5 1732,-559.5 1816,-559.5 1816,-611.5"/>
<text text-anchor="middle" x="1774" y="-599.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1774" y="-588.5" font-family="Times-Roman" font-size="10.00">(*spanSet)</text>
<text text-anchor="middle" x="1774" y="-577.5" font-family="Times-Roman" font-size="10.00">pop</text>
<text text-anchor="middle" x="1774" y="-566.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node45" class="node">
<title>N45</title>
<g id="a_node45"><a xlink:title="runtime.(*spanSet).reset (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="443,-979 359,-979 359,-927 443,-927 443,-979"/>
<text text-anchor="middle" x="401" y="-967" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="401" y="-956" font-family="Times-Roman" font-size="10.00">(*spanSet)</text>
<text text-anchor="middle" x="401" y="-945" font-family="Times-Roman" font-size="10.00">reset</text>
<text text-anchor="middle" x="401" y="-934" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node48" class="node">
<title>N48</title>
<g id="a_node48"><a xlink:title="runtime.findfunc (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="642,-370.5 558,-370.5 558,-329.5 642,-329.5 642,-370.5"/>
<text text-anchor="middle" x="600" y="-358.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="600" y="-347.5" font-family="Times-Roman" font-size="10.00">findfunc</text>
<text text-anchor="middle" x="600" y="-336.5" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N22 -->
<g id="edge73" class="edge">
<title>N52&#45;&gt;N22</title>
<g id="a_edge73"><a xlink:title="runtime.lock2 &#45;&gt; runtime.procyield (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M182.28,-821.99C187.77,-759.38 214.27,-538.37 322,-402 329.6,-392.38 339.56,-384.14 349.94,-377.26"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="352.08,-380.06 358.73,-371.81 348.39,-374.11 352.08,-380.06"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.lock2 &#45;&gt; runtime.procyield (0.01s)">
<text text-anchor="middle" x="262" y="-581.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N54 -->
<g id="node54" class="node">
<title>N54</title>
<g id="a_node54"><a xlink:title="runtime.osyield (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="170,-735 86,-735 86,-694 170,-694 170,-735"/>
<text text-anchor="middle" x="128" y="-723" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="128" y="-712" font-family="Times-Roman" font-size="10.00">osyield</text>
<text text-anchor="middle" x="128" y="-701" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N52&#45;&gt;N54 -->
<g id="edge72" class="edge">
<title>N52&#45;&gt;N54</title>
<g id="a_edge72"><a xlink:title="runtime.lock2 &#45;&gt; runtime.osyield (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M160.66,-821.6C152.98,-813.92 144.92,-804.3 140,-794 132.83,-778.98 129.76,-760.67 128.51,-745.52"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="131.98,-744.9 127.89,-735.13 124.99,-745.32 131.98,-744.9"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.lock2 &#45;&gt; runtime.osyield (0.01s)">
<text text-anchor="middle" x="162" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N14 -->
<g id="edge85" class="edge">
<title>N58&#45;&gt;N14</title>
<g id="a_edge85"><a xlink:title="runtime.scanstack &#45;&gt; runtime.gentraceback (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M641.33,-458.43C648.23,-455.6 655.31,-452.71 662,-450 729.41,-422.68 807.34,-391.67 857.58,-371.74"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="858.93,-374.97 866.94,-368.03 856.35,-368.47 858.93,-374.97"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.scanstack &#45;&gt; runtime.gentraceback (0.01s)">
<text text-anchor="middle" x="799" y="-413.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N48 -->
<g id="edge84" class="edge">
<title>N58&#45;&gt;N48</title>
<g id="a_edge84"><a xlink:title="runtime.scanstack ... runtime.findfunc (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M600,-458.45C600,-438.49 600,-405.09 600,-380.82"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="603.5,-380.71 600,-370.71 596.5,-380.71 603.5,-380.71"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.scanstack ... runtime.findfunc (0.01s)">
<text text-anchor="middle" x="622" y="-413.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N15 -->
<g id="edge87" class="edge">
<title>N60&#45;&gt;N15</title>
<g id="a_edge87"><a xlink:title="runtime.suspendG &#45;&gt; runtime.nanotime (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M395.21,-458.35C383.09,-450.74 369.03,-441.39 357,-432 336.12,-415.7 314.31,-395.39 297.75,-379.18"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="300.11,-376.59 290.53,-372.05 295.19,-381.57 300.11,-376.59"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.suspendG &#45;&gt; runtime.nanotime (0.01s)">
<text text-anchor="middle" x="383.5" y="-420.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="383.5" y="-405.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N22 -->
<g id="edge88" class="edge">
<title>N60&#45;&gt;N22</title>
<g id="a_edge88"><a xlink:title="runtime.suspendG &#45;&gt; runtime.procyield (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M421.53,-458.45C418.72,-438.96 414.04,-406.64 410.56,-382.53"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="413.99,-381.83 409.1,-372.43 407.07,-382.83 413.99,-381.83"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.suspendG &#45;&gt; runtime.procyield (0.01s)">
<text text-anchor="middle" x="440" y="-413.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node61" class="node">
<title>N61</title>
<g id="a_node61"><a xlink:title="runtime.tgkill (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="874,-735 790,-735 790,-694 874,-694 874,-735"/>
<text text-anchor="middle" x="832" y="-723" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="832" y="-712" font-family="Times-Roman" font-size="10.00">tgkill</text>
<text text-anchor="middle" x="832" y="-701" font-family="Times-Roman" font-size="10.00">0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node62" class="node">
<title>N62</title>
<g id="a_node62"><a xlink:title="runtime.morestack (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="124.5,-1178 33.5,-1178 33.5,-1142 124.5,-1142 124.5,-1178"/>
<text text-anchor="middle" x="79" y="-1167.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="79" y="-1158.1" font-family="Times-Roman" font-size="8.00">morestack</text>
<text text-anchor="middle" x="79" y="-1149.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N21 -->
<g id="edge77" class="edge">
<title>N62&#45;&gt;N21</title>
<g id="a_edge77"><a xlink:title="runtime.morestack ... runtime.schedule (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M97.71,-1141.85C113.67,-1127.22 136.8,-1106.02 154.63,-1089.67"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="157.4,-1091.88 162.41,-1082.54 152.67,-1086.72 157.4,-1091.88"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.morestack ... runtime.schedule (0.01s)">
<text text-anchor="middle" x="156" y="-1112.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N63 -->
<g id="node63" class="node">
<title>N63</title>
<g id="a_node63"><a xlink:title="runtime.(*gcControllerState).enlistWorker (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="772.5,-862 675.5,-862 675.5,-818 772.5,-818 772.5,-862"/>
<text text-anchor="middle" x="724" y="-851.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="724" y="-842.6" font-family="Times-Roman" font-size="8.00">(*gcControllerState)</text>
<text text-anchor="middle" x="724" y="-833.6" font-family="Times-Roman" font-size="8.00">enlistWorker</text>
<text text-anchor="middle" x="724" y="-824.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N61 -->
<g id="edge46" class="edge">
<title>N63&#45;&gt;N61</title>
<g id="a_edge46"><a xlink:title="runtime.(*gcControllerState).enlistWorker ... runtime.tgkill (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M742.57,-817.77C760.69,-797.04 788.36,-765.41 808.12,-742.81"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="810.8,-745.06 814.75,-735.23 805.53,-740.45 810.8,-745.06"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.(*gcControllerState).enlistWorker ... runtime.tgkill (0.01s)">
<text text-anchor="middle" x="809" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N63 -->
<g id="edge47" class="edge">
<title>N64&#45;&gt;N63</title>
<g id="a_edge47"><a xlink:title="runtime.(*gcWork).balance &#45;&gt; runtime.(*gcControllerState).enlistWorker (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M725.62,-930.86C725.32,-914.27 724.9,-890.93 724.56,-872.2"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="728.06,-872 724.38,-862.06 721.06,-872.12 728.06,-872"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.(*gcWork).balance &#45;&gt; runtime.(*gcControllerState).enlistWorker (0.01s)">
<text text-anchor="middle" x="747" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N2 -->
<g id="edge8" class="edge">
<title>N65&#45;&gt;N2</title>
<g id="a_edge8"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.systemstack (0.09s)">
<path fill="none" stroke="#b29d80" d="M719.15,-1229C730.63,-1218.8 744.83,-1206.5 758,-1196 762.97,-1192.03 768.34,-1187.95 773.61,-1184.03"/>
<polygon fill="#b29d80" stroke="#b29d80" points="775.77,-1186.78 781.77,-1178.05 771.63,-1181.14 775.77,-1186.78"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.systemstack (0.09s)">
<text text-anchor="middle" x="780" y="-1199.8" font-family="Times-Roman" font-size="14.00"> 0.09s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N44 -->
<g id="edge52" class="edge">
<title>N66&#45;&gt;N44</title>
<g id="a_edge52"><a xlink:title="runtime.(*mheap).nextSpanForSweep &#45;&gt; runtime.(*spanSet).pop (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1766.51,-692.24C1767.86,-673.1 1769.88,-644.59 1771.48,-621.99"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1774.99,-621.99 1772.21,-611.76 1768.01,-621.49 1774.99,-621.99"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.(*mheap).nextSpanForSweep &#45;&gt; runtime.(*spanSet).pop (0.01s)">
<text text-anchor="middle" x="1792" y="-646.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N68 -->
<g id="node68" class="node">
<title>N68</title>
<g id="a_node68"><a xlink:title="runtime.(*mheap).reclaimChunk (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1484.5,-862 1393.5,-862 1393.5,-818 1484.5,-818 1484.5,-862"/>
<text text-anchor="middle" x="1439" y="-851.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1439" y="-842.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1439" y="-833.6" font-family="Times-Roman" font-size="8.00">reclaimChunk</text>
<text text-anchor="middle" x="1439" y="-824.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N68 -->
<g id="edge53" class="edge">
<title>N67&#45;&gt;N68</title>
<g id="a_edge53"><a xlink:title="runtime.(*mheap).reclaim &#45;&gt; runtime.(*mheap).reclaimChunk (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1347.52,-930.86C1365.35,-913.35 1390.84,-888.31 1410.39,-869.11"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1412.88,-871.57 1417.56,-862.06 1407.97,-866.57 1412.88,-871.57"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.(*mheap).reclaim &#45;&gt; runtime.(*mheap).reclaimChunk (0.01s)">
<text text-anchor="middle" x="1414" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N20 -->
<g id="edge54" class="edge">
<title>N68&#45;&gt;N20</title>
<g id="a_edge54"><a xlink:title="runtime.(*mheap).reclaimChunk &#45;&gt; runtime.(*sweepLocked).sweep (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1456.63,-817.97C1469.26,-802.93 1486.66,-782.21 1502,-764 1507.3,-757.72 1512.98,-750.98 1518.38,-744.59"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1521.24,-746.63 1525.02,-736.74 1515.89,-742.11 1521.24,-746.63"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.(*mheap).reclaimChunk &#45;&gt; runtime.(*sweepLocked).sweep (0.01s)">
<text text-anchor="middle" x="1524" y="-775.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node70" class="node">
<title>N70</title>
<g id="a_node70"><a xlink:title="runtime.(*pageAlloc).update (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1945.5,-151 1854.5,-151 1854.5,-107 1945.5,-107 1945.5,-151"/>
<text text-anchor="middle" x="1900" y="-140.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1900" y="-131.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1900" y="-122.6" font-family="Times-Roman" font-size="8.00">update</text>
<text text-anchor="middle" x="1900" y="-113.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.62%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N70 -->
<g id="edge57" class="edge">
<title>N69&#45;&gt;N70</title>
<g id="a_edge57"><a xlink:title="runtime.(*pageAlloc).free &#45;&gt; runtime.(*pageAlloc).update (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1900,-205.95C1900,-192.86 1900,-175.79 1900,-161.15"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1903.5,-161.01 1900,-151.01 1896.5,-161.01 1903.5,-161.01"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.(*pageAlloc).free &#45;&gt; runtime.(*pageAlloc).update (0.01s)">
<text text-anchor="middle" x="1922" y="-176.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N43 -->
<g id="edge58" class="edge">
<title>N70&#45;&gt;N43</title>
<g id="a_edge58"><a xlink:title="runtime.(*pageAlloc).update &#45;&gt; runtime.(*pallocBits).summarize (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1900,-106.58C1900,-93.81 1900,-77.28 1900,-62.6"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1903.5,-62.32 1900,-52.32 1896.5,-62.32 1903.5,-62.32"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.(*pageAlloc).update &#45;&gt; runtime.(*pallocBits).summarize (0.01s)">
<text text-anchor="middle" x="1922" y="-73.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N41 -->
<g id="edge60" class="edge">
<title>N71&#45;&gt;N41</title>
<g id="a_edge60"><a xlink:title="runtime.(*spanSetBlockAlloc).alloc &#45;&gt; runtime.(*lfstack).pop (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1169,-454.38C1169,-435.78 1169,-408.31 1169,-386.36"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1172.5,-386.09 1169,-376.09 1165.5,-386.09 1172.5,-386.09"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.(*spanSetBlockAlloc).alloc &#45;&gt; runtime.(*lfstack).pop (0.01s)">
<text text-anchor="middle" x="1195.5" y="-420.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1195.5" y="-405.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N2 -->
<g id="edge20" class="edge">
<title>N72&#45;&gt;N2</title>
<g id="a_edge20"><a xlink:title="runtime.callers &#45;&gt; runtime.systemstack (0.03s)">
<path fill="none" stroke="#b2ada1" d="M437.9,-1327.83C471.53,-1303.24 536.92,-1257.79 598,-1229 646.68,-1206.06 705.17,-1187.68 747.71,-1175.85"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="748.9,-1179.15 757.62,-1173.13 747.05,-1172.4 748.9,-1179.15"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.callers &#45;&gt; runtime.systemstack (0.03s)">
<text text-anchor="middle" x="620" y="-1247.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N14 -->
<g id="edge21" class="edge">
<title>N73&#45;&gt;N14</title>
<g id="a_edge21"><a xlink:title="runtime.callers.func1 &#45;&gt; runtime.gentraceback (0.03s)">
<path fill="none" stroke="#b2ada1" d="M910,-1042.1C910,-1020.03 910,-984.61 910,-954 910,-954 910,-954 910,-475.5 910,-442.17 910,-403.83 910,-378.6"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="913.5,-378.32 910,-368.32 906.5,-378.32 913.5,-378.32"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.callers.func1 &#45;&gt; runtime.gentraceback (0.03s)">
<text text-anchor="middle" x="932" y="-710.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N45 -->
<g id="edge63" class="edge">
<title>N74&#45;&gt;N45</title>
<g id="a_edge63"><a xlink:title="runtime.finishsweep_m &#45;&gt; runtime.(*spanSet).reset (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M424.97,-1046.18C418.11,-1038.81 411.07,-1029.69 407,-1020 403.03,-1010.55 401.1,-999.69 400.26,-989.54"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="403.75,-989.13 399.75,-979.31 396.76,-989.47 403.75,-989.13"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.finishsweep_m &#45;&gt; runtime.(*spanSet).reset (0.01s)">
<text text-anchor="middle" x="429" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N39 -->
<g id="edge22" class="edge">
<title>N75&#45;&gt;N39</title>
<g id="a_edge22"><a xlink:title="runtime.forEachP ... runtime.notetsleep_internal (0.03s)">
<path fill="none" stroke="#b2ada1" stroke-dasharray="1,5" d="M298.06,-1046.39C297.11,-1029.06 295.63,-1001.96 294.51,-981.59"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="297.99,-981.14 293.95,-971.35 291,-981.53 297.99,-981.14"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.forEachP ... runtime.notetsleep_internal (0.03s)">
<text text-anchor="middle" x="319" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N25 -->
<g id="edge64" class="edge">
<title>N76&#45;&gt;N25</title>
<g id="a_edge64"><a xlink:title="runtime.funcspdelta &#45;&gt; runtime.pcvalue (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M910,-209.66C910,-197.35 910,-180.4 910,-165.3"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="913.5,-165.21 910,-155.21 906.5,-165.21 913.5,-165.21"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.funcspdelta &#45;&gt; runtime.pcvalue (0.01s)">
<text text-anchor="middle" x="932" y="-176.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N13 -->
<g id="edge65" class="edge">
<title>N77&#45;&gt;N13</title>
<g id="a_edge65"><a xlink:title="runtime.futexwakeup &#45;&gt; runtime.futex (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M546.33,-1046.23C530.06,-1016.86 496.56,-955.07 472,-901 444.94,-841.41 453.75,-818.82 418,-764 413.91,-757.72 408.91,-751.59 403.7,-745.91"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="405.99,-743.24 396.53,-738.47 400.95,-748.1 405.99,-743.24"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.futexwakeup &#45;&gt; runtime.futex (0.01s)">
<text text-anchor="middle" x="494" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N2 -->
<g id="edge24" class="edge">
<title>N78&#45;&gt;N2</title>
<g id="a_edge24"><a xlink:title="runtime.gcAssistAlloc &#45;&gt; runtime.systemstack (0.03s)">
<path fill="none" stroke="#b2ada1" d="M882.56,-1327.54C884.31,-1297.67 883.78,-1236.11 855,-1196 851.99,-1191.81 848.32,-1187.93 844.36,-1184.4"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="846.45,-1181.6 836.47,-1178.06 842.07,-1187.05 846.45,-1181.6"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.gcAssistAlloc &#45;&gt; runtime.systemstack (0.03s)">
<text text-anchor="middle" x="903" y="-1247.3" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node80" class="node">
<title>N80</title>
<g id="a_node80"><a xlink:title="runtime.gcAssistAlloc1 (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="657.5,-971 566.5,-971 566.5,-935 657.5,-935 657.5,-971"/>
<text text-anchor="middle" x="612" y="-960.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="612" y="-951.1" font-family="Times-Roman" font-size="8.00">gcAssistAlloc1</text>
<text text-anchor="middle" x="612" y="-942.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.88%)</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N80 -->
<g id="edge25" class="edge">
<title>N79&#45;&gt;N80</title>
<g id="a_edge25"><a xlink:title="runtime.gcAssistAlloc.func1 &#45;&gt; runtime.gcAssistAlloc1 (0.03s)">
<path fill="none" stroke="#b2ada1" d="M669.31,-1042.39C657.69,-1024.47 640.98,-998.7 628.6,-979.61"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="631.46,-977.58 623.08,-971.09 625.59,-981.39 631.46,-977.58"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.gcAssistAlloc.func1 &#45;&gt; runtime.gcAssistAlloc1 (0.03s)">
<text text-anchor="middle" x="675" y="-1008.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N37 -->
<g id="edge26" class="edge">
<title>N80&#45;&gt;N37</title>
<g id="a_edge26"><a xlink:title="runtime.gcAssistAlloc1 &#45;&gt; runtime.gcDrainN (0.03s)">
<path fill="none" stroke="#b2ada1" d="M612,-934.66C612,-916.9 612,-889.04 612,-868.32"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="615.5,-868.22 612,-858.22 608.5,-868.22 615.5,-868.22"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.gcAssistAlloc1 &#45;&gt; runtime.gcDrainN (0.03s)">
<text text-anchor="middle" x="634" y="-889.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
</g>
</g></svg>
Display the source blob
Display the rendered blob
Raw
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