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
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
<?xml version="1.0" 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 2016)">
<title>x.test</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-2016 1874.5,-2016 1874.5,4 -4,4"/>
<g id="clust1" class="cluster">
<title>cluster_L</title>
<polygon fill="none" stroke="black" points="998,-1835 998,-2004 1496,-2004 1496,-1835 998,-1835"/>
</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="1488,-1996 1006,-1996 1006,-1843 1488,-1843 1488,-1996"/>
<text text-anchor="start" x="1014" y="-1979.2" font-family="Times-Roman" font-size="16.00">File: x.test</text>
<text text-anchor="start" x="1014" y="-1961.2" font-family="Times-Roman" font-size="16.00">Type: cpu</text>
<text text-anchor="start" x="1014" y="-1943.2" font-family="Times-Roman" font-size="16.00">Time: Jul 17, 2021 at 12:53am (CEST)</text>
<text text-anchor="start" x="1014" y="-1925.2" font-family="Times-Roman" font-size="16.00">Duration: 1.51s, Total samples = 1.59s (105.48%)</text>
<text text-anchor="start" x="1014" y="-1907.2" font-family="Times-Roman" font-size="16.00">Showing nodes accounting for 1.59s, 100% of 1.59s total</text>
<text text-anchor="start" x="1014" y="-1889.2" font-family="Times-Roman" font-size="16.00">Showing top 80 nodes out of 104</text>
<text text-anchor="start" x="1014" y="-1852.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.memclrNoHeapPointers (0.95s)">
<polygon fill="#edd8d5" stroke="#b21900" points="1705,-1040 1403,-1040 1403,-954 1705,-954 1705,-1040"/>
<text text-anchor="middle" x="1554" y="-1016.8" font-family="Times-Roman" font-size="24.00">runtime</text>
<text text-anchor="middle" x="1554" y="-990.8" font-family="Times-Roman" font-size="24.00">memclrNoHeapPointers</text>
<text text-anchor="middle" x="1554" y="-964.8" font-family="Times-Roman" font-size="24.00">0.95s (59.75%)</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node2" class="node">
<title>N2</title>
<g id="a_node2"><a xlink:title="runtime.systemstack (0.31s)">
<polygon fill="#edded6" stroke="#b24704" points="1065,-1367.5 969,-1367.5 969,-1331.5 1065,-1331.5 1065,-1367.5"/>
<text text-anchor="middle" x="1017" y="-1356.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1017" y="-1347.6" font-family="Times-Roman" font-size="8.00">systemstack</text>
<text text-anchor="middle" x="1017" y="-1338.6" font-family="Times-Roman" font-size="8.00">0 of 0.31s (19.50%)</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node25" class="node">
<title>N25</title>
<g id="a_node25"><a xlink:title="runtime.(*mheap).alloc.func1 (0.09s)">
<polygon fill="#edeae6" stroke="#b29d7f" points="1062.5,-1278 971.5,-1278 971.5,-1225 1062.5,-1225 1062.5,-1278"/>
<text text-anchor="middle" x="1017" y="-1267.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1017" y="-1258.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1017" y="-1249.6" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="1017" y="-1240.6" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="1017" y="-1231.6" font-family="Times-Roman" font-size="8.00">0 of 0.09s (5.66%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N25 -->
<g id="edge8" class="edge">
<title>N2&#45;&gt;N25</title>
<g id="a_edge8"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<path fill="none" stroke="#b29d7f" d="M1017,-1331.34C1017,-1319.45 1017,-1303.18 1017,-1288.5"/>
<polygon fill="#b29d7f" stroke="#b29d7f" points="1020.5,-1288.19 1017,-1278.19 1013.5,-1288.19 1020.5,-1288.19"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).alloc.func1 (0.09s)">
<text text-anchor="middle" x="1039" y="-1299.8" font-family="Times-Roman" font-size="14.00"> 0.09s</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node34" class="node">
<title>N34</title>
<g id="a_node34"><a xlink:title="runtime.(*mheap).freeSpan.func1 (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1210.5,-632 1119.5,-632 1119.5,-579 1210.5,-579 1210.5,-632"/>
<text text-anchor="middle" x="1165" y="-621.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1165" y="-612.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1165" y="-603.6" font-family="Times-Roman" font-size="8.00">freeSpan</text>
<text text-anchor="middle" x="1165" y="-594.6" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="1165" y="-585.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N34 -->
<g id="edge92" class="edge">
<title>N2&#45;&gt;N34</title>
<g id="a_edge92"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1043.49,-1331.49C1051.13,-1325.67 1059.01,-1318.67 1065,-1311 1082.51,-1288.57 1091,-1280.95 1091,-1252.5 1091,-1252.5 1091,-1252.5 1091,-725 1091,-692.67 1111.06,-661.88 1130.29,-639.8"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1132.91,-642.12 1137.02,-632.36 1127.72,-637.42 1132.91,-642.12"/>
</a>
</g>
<g id="a_edge92&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.01s)">
<text text-anchor="middle" x="1113" y="-993.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N47 -->
<g id="node47" class="node">
<title>N47</title>
<g id="a_node47"><a xlink:title="runtime.gcResetMarkState (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="626,-1272 520,-1272 520,-1231 626,-1231 626,-1272"/>
<text text-anchor="middle" x="573" y="-1260" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="573" y="-1249" font-family="Times-Roman" font-size="10.00">gcResetMarkState</text>
<text text-anchor="middle" x="573" y="-1238" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N47 -->
<g id="edge94" class="edge">
<title>N2&#45;&gt;N47</title>
<g id="a_edge94"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcResetMarkState (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M968.91,-1344.63C912.94,-1339.54 817.98,-1329.04 738,-1311 691.11,-1300.42 680.15,-1294.49 635,-1278 633.11,-1277.31 631.2,-1276.6 629.27,-1275.87"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="630.15,-1272.46 619.56,-1272.12 627.63,-1278.99 630.15,-1272.46"/>
</a>
</g>
<g id="a_edge94&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcResetMarkState (0.01s)">
<text text-anchor="middle" x="760" y="-1299.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.callers.func1 (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="844.5,-1273.5 753.5,-1273.5 753.5,-1229.5 844.5,-1229.5 844.5,-1273.5"/>
<text text-anchor="middle" x="799" y="-1263.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="799" y="-1254.1" font-family="Times-Roman" font-size="8.00">callers</text>
<text text-anchor="middle" x="799" y="-1245.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="799" y="-1236.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N65 -->
<g id="edge93" class="edge">
<title>N2&#45;&gt;N65</title>
<g id="a_edge93"><a xlink:title="runtime.systemstack &#45;&gt; runtime.callers.func1 (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M968.77,-1334.23C949.02,-1327.87 926.12,-1319.82 906,-1311 884.57,-1301.61 861.71,-1289.43 842.64,-1278.61"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="844.3,-1275.53 833.88,-1273.59 840.82,-1281.6 844.3,-1275.53"/>
</a>
</g>
<g id="a_edge93&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.callers.func1 (0.01s)">
<text text-anchor="middle" x="928" y="-1299.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N69 -->
<g id="node69" class="node">
<title>N69</title>
<g id="a_node69"><a xlink:title="runtime.gcAssistAlloc.func1 (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="735.5,-1273.5 644.5,-1273.5 644.5,-1229.5 735.5,-1229.5 735.5,-1273.5"/>
<text text-anchor="middle" x="690" y="-1263.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="690" y="-1254.1" font-family="Times-Roman" font-size="8.00">gcAssistAlloc</text>
<text text-anchor="middle" x="690" y="-1245.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="690" y="-1236.1" font-family="Times-Roman" font-size="8.00">0 of 0.08s (5.03%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N69 -->
<g id="edge14" class="edge">
<title>N2&#45;&gt;N69</title>
<g id="a_edge14"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (0.08s)">
<path fill="none" stroke="#b2a085" d="M968.66,-1341.35C930.13,-1335.07 875.03,-1324.78 828,-1311 789.51,-1299.72 780.82,-1293.91 744,-1278 743.8,-1277.91 743.6,-1277.82 743.39,-1277.74"/>
<polygon fill="#b2a085" stroke="#b2a085" points="744.66,-1274.47 734.09,-1273.62 741.82,-1280.87 744.66,-1274.47"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcAssistAlloc.func1 (0.08s)">
<text text-anchor="middle" x="850" y="-1299.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N71 -->
<g id="node71" class="node">
<title>N71</title>
<g id="a_node71"><a xlink:title="runtime.gcBgMarkWorker.func2 (0.07s)">
<polygon fill="#edebe7" stroke="#b2a38b" points="442.5,-1273.5 351.5,-1273.5 351.5,-1229.5 442.5,-1229.5 442.5,-1273.5"/>
<text text-anchor="middle" x="397" y="-1263.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="397" y="-1254.1" font-family="Times-Roman" font-size="8.00">gcBgMarkWorker</text>
<text text-anchor="middle" x="397" y="-1245.1" font-family="Times-Roman" font-size="8.00">func2</text>
<text text-anchor="middle" x="397" y="-1236.1" font-family="Times-Roman" font-size="8.00">0 of 0.07s (4.40%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N71 -->
<g id="edge17" class="edge">
<title>N2&#45;&gt;N71</title>
<g id="a_edge17"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcBgMarkWorker.func2 (0.07s)">
<path fill="none" stroke="#b2a38b" d="M968.72,-1345.92C896.27,-1341.55 755.29,-1331.15 637,-1311 572.92,-1300.09 500.6,-1281.59 452.25,-1268.32"/>
<polygon fill="#b2a38b" stroke="#b2a38b" points="453.18,-1264.94 442.61,-1265.65 451.32,-1271.69 453.18,-1264.94"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcBgMarkWorker.func2 (0.07s)">
<text text-anchor="middle" x="659" y="-1299.8" font-family="Times-Roman" font-size="14.00"> 0.07s</text>
</a>
</g>
</g>
<!-- N72 -->
<g id="node72" class="node">
<title>N72</title>
<g id="a_node72"><a xlink:title="runtime.gcMarkDone.func1 (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="953.5,-1273.5 862.5,-1273.5 862.5,-1229.5 953.5,-1229.5 953.5,-1273.5"/>
<text text-anchor="middle" x="908" y="-1263.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="908" y="-1254.1" font-family="Times-Roman" font-size="8.00">gcMarkDone</text>
<text text-anchor="middle" x="908" y="-1245.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="908" y="-1236.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.89%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N72 -->
<g id="edge29" class="edge">
<title>N2&#45;&gt;N72</title>
<g id="a_edge29"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcMarkDone.func1 (0.03s)">
<path fill="none" stroke="#b2ada1" d="M994.16,-1331.41C986.07,-1325.16 976.99,-1317.92 969,-1311 958.04,-1301.51 946.45,-1290.63 936.36,-1280.84"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="938.56,-1278.1 928.96,-1273.62 933.67,-1283.11 938.56,-1278.1"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.systemstack &#45;&gt; runtime.gcMarkDone.func1 (0.03s)">
<text text-anchor="middle" x="991" y="-1299.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.38s)">
<polygon fill="#edd6d5" stroke="#b20700" points="1602,-1941.5 1506,-1941.5 1506,-1897.5 1602,-1897.5 1602,-1941.5"/>
<text text-anchor="middle" x="1554" y="-1931.1" font-family="Times-Roman" font-size="8.00">testing</text>
<text text-anchor="middle" x="1554" y="-1922.1" font-family="Times-Roman" font-size="8.00">(*B)</text>
<text text-anchor="middle" x="1554" y="-1913.1" font-family="Times-Roman" font-size="8.00">launch</text>
<text text-anchor="middle" x="1554" y="-1904.1" font-family="Times-Roman" font-size="8.00">0 of 1.38s (86.79%)</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node5" class="node">
<title>N5</title>
<g id="a_node5"><a xlink:title="x.MergeSlicesZero (1.38s)">
<polygon fill="#edd6d5" stroke="#b20700" points="1602,-1792 1506,-1792 1506,-1756 1602,-1756 1602,-1792"/>
<text text-anchor="middle" x="1554" y="-1781.1" font-family="Times-Roman" font-size="8.00">x</text>
<text text-anchor="middle" x="1554" y="-1772.1" font-family="Times-Roman" font-size="8.00">MergeSlicesZero</text>
<text text-anchor="middle" x="1554" y="-1763.1" font-family="Times-Roman" font-size="8.00">0 of 1.38s (86.79%)</text>
</a>
</g>
</g>
<!-- N3&#45;&gt;N5 -->
<g id="edge1" class="edge">
<title>N3&#45;&gt;N5</title>
<g id="a_edge1"><a xlink:title="testing.(*B).launch ... x.MergeSlicesZero (1.38s)">
<path fill="none" stroke="#b20700" stroke-width="5" stroke-dasharray="1,5" d="M1554,-1897.33C1554,-1872.14 1554,-1830.02 1554,-1802.38"/>
<polygon fill="#b20700" stroke="#b20700" stroke-width="5" points="1558.38,-1802.21 1554,-1792.21 1549.63,-1802.21 1558.38,-1802.21"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="testing.(*B).launch ... x.MergeSlicesZero (1.38s)">
<text text-anchor="middle" x="1576" y="-1813.8" font-family="Times-Roman" font-size="14.00"> 1.38s</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node4" class="node">
<title>N4</title>
<g id="a_node4"><a xlink:title="runtime.mallocgc (1.15s)">
<polygon fill="#edd7d5" stroke="#b21000" points="1602,-1692 1506,-1692 1506,-1656 1602,-1656 1602,-1692"/>
<text text-anchor="middle" x="1554" y="-1681.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1554" y="-1672.1" font-family="Times-Roman" font-size="8.00">mallocgc</text>
<text text-anchor="middle" x="1554" y="-1663.1" font-family="Times-Roman" font-size="8.00">0 of 1.15s (72.33%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N1 -->
<g id="edge3" class="edge">
<title>N4&#45;&gt;N1</title>
<g id="a_edge3"><a xlink:title="runtime.mallocgc ... runtime.memclrNoHeapPointers (0.93s)">
<path fill="none" stroke="#b21a00" stroke-width="3" stroke-dasharray="1,5" d="M1554,-1655.62C1554,-1633.26 1554,-1593.24 1554,-1559 1554,-1559 1554,-1559 1554,-1139 1554,-1109.72 1554,-1077.01 1554,-1050.48"/>
<polygon fill="#b21a00" stroke="#b21a00" stroke-width="3" points="1557.5,-1050.26 1554,-1040.26 1550.5,-1050.26 1557.5,-1050.26"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="runtime.mallocgc ... runtime.memclrNoHeapPointers (0.93s)">
<text text-anchor="middle" x="1576" y="-1345.8" font-family="Times-Roman" font-size="14.00"> 0.93s</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="1526,-1592 1418,-1592 1418,-1524 1526,-1524 1526,-1592"/>
<text text-anchor="middle" x="1472" y="-1579.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1472" y="-1567.2" font-family="Times-Roman" font-size="11.00">(*mcache)</text>
<text text-anchor="middle" x="1472" y="-1555.2" font-family="Times-Roman" font-size="11.00">allocLarge</text>
<text text-anchor="middle" x="1472" y="-1543.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
<text text-anchor="middle" x="1472" y="-1531.2" font-family="Times-Roman" font-size="11.00">of 0.12s (7.55%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N12 -->
<g id="edge5" class="edge">
<title>N4&#45;&gt;N12</title>
<g id="a_edge5"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).allocLarge (0.12s)">
<path fill="none" stroke="#b2936f" d="M1527.6,-1655.88C1516.59,-1647.65 1504.44,-1636.96 1496,-1625 1491.05,-1617.98 1487.01,-1609.83 1483.75,-1601.7"/>
<polygon fill="#b2936f" stroke="#b2936f" points="1487.01,-1600.41 1480.27,-1592.23 1480.43,-1602.82 1487.01,-1600.41"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.(*mcache).allocLarge (0.12s)">
<text text-anchor="middle" x="1518" y="-1613.8" font-family="Times-Roman" font-size="14.00"> 0.12s</text>
</a>
</g>
</g>
<!-- N64 -->
<g id="node64" class="node">
<title>N64</title>
<g id="a_node64"><a xlink:title="runtime.callers (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="952.5,-1576 861.5,-1576 861.5,-1540 952.5,-1540 952.5,-1576"/>
<text text-anchor="middle" x="907" y="-1565.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="907" y="-1556.1" font-family="Times-Roman" font-size="8.00">callers</text>
<text text-anchor="middle" x="907" y="-1547.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N64 -->
<g id="edge82" class="edge">
<title>N4&#45;&gt;N64</title>
<g id="a_edge82"><a xlink:title="runtime.mallocgc ... runtime.callers (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1505.82,-1670.54C1420.58,-1665.64 1237.87,-1652.66 1086,-1625 1029.47,-1614.7 1013.85,-1614.55 961,-1592 954.05,-1589.04 946.94,-1585.28 940.26,-1581.38"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="941.82,-1578.24 931.46,-1576.02 938.18,-1584.21 941.82,-1578.24"/>
</a>
</g>
<g id="a_edge82&#45;label"><a xlink:title="runtime.mallocgc ... runtime.callers (0.01s)">
<text text-anchor="middle" x="1108" y="-1613.8" 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.gcAssistAlloc (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="1061.5,-1576 970.5,-1576 970.5,-1540 1061.5,-1540 1061.5,-1576"/>
<text text-anchor="middle" x="1016" y="-1565.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1016" y="-1556.1" font-family="Times-Roman" font-size="8.00">gcAssistAlloc</text>
<text text-anchor="middle" x="1016" y="-1547.1" font-family="Times-Roman" font-size="8.00">0 of 0.08s (5.03%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N68 -->
<g id="edge13" class="edge">
<title>N4&#45;&gt;N68</title>
<g id="a_edge13"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcAssistAlloc (0.08s)">
<path fill="none" stroke="#b2a085" d="M1505.72,-1670.99C1416.84,-1665.98 1222.45,-1648.89 1070,-1592 1062.55,-1589.22 1054.99,-1585.37 1047.98,-1581.28"/>
<polygon fill="#b2a085" stroke="#b2a085" points="1049.8,-1578.29 1039.45,-1576.03 1046.13,-1584.25 1049.8,-1578.29"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcAssistAlloc (0.08s)">
<text text-anchor="middle" x="1195" y="-1613.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N74 -->
<g id="node74" class="node">
<title>N74</title>
<g id="a_node74"><a xlink:title="runtime.gcStart (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1354.5,-1576 1263.5,-1576 1263.5,-1540 1354.5,-1540 1354.5,-1576"/>
<text text-anchor="middle" x="1309" y="-1565.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1309" y="-1556.1" font-family="Times-Roman" font-size="8.00">gcStart</text>
<text text-anchor="middle" x="1309" y="-1547.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N74 -->
<g id="edge83" class="edge">
<title>N4&#45;&gt;N74</title>
<g id="a_edge83"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1511.47,-1655.9C1489.91,-1647.03 1463.4,-1635.8 1440,-1625 1409.63,-1610.97 1375.93,-1593.96 1350.32,-1580.73"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1351.76,-1577.53 1341.27,-1576.03 1348.54,-1583.74 1351.76,-1577.53"/>
</a>
</g>
<g id="a_edge83&#45;label"><a xlink:title="runtime.mallocgc &#45;&gt; runtime.gcStart (0.01s)">
<text text-anchor="middle" x="1462" y="-1613.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N4 -->
<g id="edge2" class="edge">
<title>N5&#45;&gt;N4</title>
<g id="a_edge2"><a xlink:title="x.MergeSlicesZero ... runtime.mallocgc (1.15s)">
<path fill="none" stroke="#b21000" stroke-width="4" stroke-dasharray="1,5" d="M1554,-1755.93C1554,-1741.12 1554,-1719.43 1554,-1702.23"/>
<polygon fill="#b21000" stroke="#b21000" stroke-width="4" points="1557.5,-1702.2 1554,-1692.2 1550.5,-1702.2 1557.5,-1702.2"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="x.MergeSlicesZero ... runtime.mallocgc (1.15s)">
<text text-anchor="middle" x="1576" y="-1726.8" font-family="Times-Roman" font-size="14.00"> 1.15s</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node6" class="node">
<title>N6</title>
<g id="a_node6"><a xlink:title="runtime.memmove (0.23s)">
<polygon fill="#ede3db" stroke="#b26a31" points="1870.5,-1705 1729.5,-1705 1729.5,-1643 1870.5,-1643 1870.5,-1705"/>
<text text-anchor="middle" x="1800" y="-1688.2" font-family="Times-Roman" font-size="16.00">runtime</text>
<text text-anchor="middle" x="1800" y="-1670.2" font-family="Times-Roman" font-size="16.00">memmove</text>
<text text-anchor="middle" x="1800" y="-1652.2" font-family="Times-Roman" font-size="16.00">0.23s (14.47%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N6 -->
<g id="edge4" class="edge">
<title>N5&#45;&gt;N6</title>
<g id="a_edge4"><a xlink:title="x.MergeSlicesZero &#45;&gt; runtime.memmove (0.23s)">
<path fill="none" stroke="#b26a31" d="M1596.85,-1755.93C1630.69,-1742.45 1678.87,-1723.25 1719.82,-1706.94"/>
<polygon fill="#b26a31" stroke="#b26a31" points="1721.25,-1710.14 1729.25,-1703.19 1718.66,-1703.63 1721.25,-1710.14"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="x.MergeSlicesZero &#45;&gt; runtime.memmove (0.23s)">
<text text-anchor="middle" x="1699" y="-1726.8" font-family="Times-Roman" font-size="14.00"> 0.23s</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node7" class="node">
<title>N7</title>
<g id="a_node7"><a xlink:title="runtime.gcBgMarkWorker (0.13s)">
<polygon fill="#ede8e3" stroke="#b29069" points="1170.5,-1576 1079.5,-1576 1079.5,-1540 1170.5,-1540 1170.5,-1576"/>
<text text-anchor="middle" x="1125" y="-1565.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1125" y="-1556.1" font-family="Times-Roman" font-size="8.00">gcBgMarkWorker</text>
<text text-anchor="middle" x="1125" y="-1547.1" font-family="Times-Roman" font-size="8.00">0 of 0.13s (8.18%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N2 -->
<g id="edge15" class="edge">
<title>N7&#45;&gt;N2</title>
<g id="a_edge15"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.systemstack (0.07s)">
<path fill="none" stroke="#b2a38b" d="M1114.46,-1539.85C1104.25,-1523.03 1088.52,-1496.56 1076,-1473 1058.69,-1440.43 1040.53,-1401.98 1029.01,-1376.96"/>
<polygon fill="#b2a38b" stroke="#b2a38b" points="1032.14,-1375.39 1024.79,-1367.76 1025.77,-1378.31 1032.14,-1375.39"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.systemstack (0.07s)">
<text text-anchor="middle" x="1098" y="-1443.3" font-family="Times-Roman" font-size="14.00"> 0.07s</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node16" class="node">
<title>N16</title>
<g id="a_node16"><a xlink:title="runtime.gcMarkDone (0.06s)">
<polygon fill="#edebe8" stroke="#b2a590" points="1226.5,-1473 1129.5,-1473 1129.5,-1421 1226.5,-1421 1226.5,-1473"/>
<text text-anchor="middle" x="1178" y="-1461" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1178" y="-1450" font-family="Times-Roman" font-size="10.00">gcMarkDone</text>
<text text-anchor="middle" x="1178" y="-1439" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
<text text-anchor="middle" x="1178" y="-1428" font-family="Times-Roman" font-size="10.00">of 0.06s (3.77%)</text>
</a>
</g>
</g>
<!-- N7&#45;&gt;N16 -->
<g id="edge18" class="edge">
<title>N7&#45;&gt;N16</title>
<g id="a_edge18"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcMarkDone (0.06s)">
<path fill="none" stroke="#b2a590" d="M1133.28,-1539.97C1140.79,-1524.53 1152.07,-1501.32 1161.43,-1482.08"/>
<polygon fill="#b2a590" stroke="#b2a590" points="1164.62,-1483.53 1165.84,-1473.01 1158.32,-1480.47 1164.62,-1483.53"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.gcBgMarkWorker &#45;&gt; runtime.gcMarkDone (0.06s)">
<text text-anchor="middle" x="1179" y="-1494.8" font-family="Times-Roman" font-size="14.00"> 0.06s</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node8" class="node">
<title>N8</title>
<g id="a_node8"><a xlink:title="runtime.markroot (0.11s)">
<polygon fill="#ede9e4" stroke="#b29674" points="354.5,-872 263.5,-872 263.5,-836 354.5,-836 354.5,-872"/>
<text text-anchor="middle" x="309" y="-861.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="309" y="-852.1" font-family="Times-Roman" font-size="8.00">markroot</text>
<text text-anchor="middle" x="309" y="-843.1" font-family="Times-Roman" font-size="8.00">0 of 0.11s (6.92%)</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node10" class="node">
<title>N10</title>
<g id="a_node10"><a xlink:title="runtime.scanblock (0.07s)">
<polygon fill="#edebe7" stroke="#b2a38b" points="366.5,-513 251.5,-513 251.5,-453 366.5,-453 366.5,-513"/>
<text text-anchor="middle" x="309" y="-499.4" font-family="Times-Roman" font-size="12.00">runtime</text>
<text text-anchor="middle" x="309" y="-486.4" font-family="Times-Roman" font-size="12.00">scanblock</text>
<text text-anchor="middle" x="309" y="-473.4" font-family="Times-Roman" font-size="12.00">0.04s (2.52%)</text>
<text text-anchor="middle" x="309" y="-460.4" font-family="Times-Roman" font-size="12.00">of 0.07s (4.40%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N10 -->
<g id="edge20" class="edge">
<title>N8&#45;&gt;N10</title>
<g id="a_edge20"><a xlink:title="runtime.markroot ... runtime.scanblock (0.06s)">
<path fill="none" stroke="#b2a590" stroke-dasharray="1,5" d="M309,-835.7C309,-779.72 309,-602.58 309,-523.17"/>
<polygon fill="#b2a590" stroke="#b2a590" points="312.5,-523.09 309,-513.09 305.5,-523.09 312.5,-523.09"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="runtime.markroot ... runtime.scanblock (0.06s)">
<text text-anchor="middle" x="331" y="-661.3" font-family="Times-Roman" font-size="14.00"> 0.06s</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node11" class="node">
<title>N11</title>
<g id="a_node11"><a xlink:title="runtime.scanobject (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="196.5,-752 99.5,-752 99.5,-700 196.5,-700 196.5,-752"/>
<text text-anchor="middle" x="148" y="-740" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="148" y="-729" font-family="Times-Roman" font-size="10.00">scanobject</text>
<text text-anchor="middle" x="148" y="-718" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
<text text-anchor="middle" x="148" y="-707" font-family="Times-Roman" font-size="10.00">of 0.04s (2.52%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N11 -->
<g id="edge84" class="edge">
<title>N8&#45;&gt;N11</title>
<g id="a_edge84"><a xlink:title="runtime.markroot ... runtime.scanobject (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M286.95,-835.74C261.57,-815.88 219.38,-782.86 188.14,-758.41"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="190.07,-755.48 180.04,-752.08 185.76,-761 190.07,-755.48"/>
</a>
</g>
<g id="a_edge84&#45;label"><a xlink:title="runtime.markroot ... runtime.scanobject (0.01s)">
<text text-anchor="middle" x="265" y="-783.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node14" class="node">
<title>N14</title>
<g id="a_node14"><a xlink:title="runtime.gentraceback (0.05s)">
<polygon fill="#edebe9" stroke="#b2a896" points="445,-754 337,-754 337,-698 445,-698 445,-754"/>
<text text-anchor="middle" x="391" y="-741.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="391" y="-729.2" font-family="Times-Roman" font-size="11.00">gentraceback</text>
<text text-anchor="middle" x="391" y="-717.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
<text text-anchor="middle" x="391" y="-705.2" font-family="Times-Roman" font-size="11.00">of 0.05s (3.14%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N14 -->
<g id="edge25" class="edge">
<title>N8&#45;&gt;N14</title>
<g id="a_edge25"><a xlink:title="runtime.markroot ... runtime.gentraceback (0.04s)">
<path fill="none" stroke="#b2ab9c" stroke-dasharray="1,5" d="M320.23,-835.74C332.42,-817.02 352.22,-786.59 367.79,-762.67"/>
<polygon fill="#b2ab9c" stroke="#b2ab9c" points="370.78,-764.48 373.31,-754.19 364.92,-760.66 370.78,-764.48"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="runtime.markroot ... runtime.gentraceback (0.04s)">
<text text-anchor="middle" x="382" y="-783.3" font-family="Times-Roman" font-size="14.00"> 0.04s</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node9" class="node">
<title>N9</title>
<g id="a_node9"><a xlink:title="runtime.(*mheap).allocSpan (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="1337,-1174 1229,-1174 1229,-1106 1337,-1106 1337,-1174"/>
<text text-anchor="middle" x="1283" y="-1161.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1283" y="-1149.2" font-family="Times-Roman" font-size="11.00">(*mheap)</text>
<text text-anchor="middle" x="1283" y="-1137.2" font-family="Times-Roman" font-size="11.00">allocSpan</text>
<text text-anchor="middle" x="1283" y="-1125.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
<text text-anchor="middle" x="1283" y="-1113.2" font-family="Times-Roman" font-size="11.00">of 0.08s (5.03%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N1 -->
<g id="edge48" class="edge">
<title>N9&#45;&gt;N1</title>
<g id="a_edge48"><a xlink:title="runtime.(*mheap).allocSpan ... runtime.memclrNoHeapPointers (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1337.07,-1124.63C1361.25,-1116.48 1389.16,-1104.53 1411,-1088 1424.4,-1077.86 1421.04,-1068.7 1434,-1058 1439.25,-1053.67 1444.86,-1049.54 1450.69,-1045.63"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1452.85,-1048.41 1459.37,-1040.06 1449.06,-1042.52 1452.85,-1048.41"/>
</a>
</g>
<g id="a_edge48&#45;label"><a xlink:title="runtime.(*mheap).allocSpan ... runtime.memclrNoHeapPointers (0.01s)">
<text text-anchor="middle" x="1456" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node19" class="node">
<title>N19</title>
<g id="a_node19"><a xlink:title="runtime.(*pageAlloc).alloc (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="1346.5,-1019 1255.5,-1019 1255.5,-975 1346.5,-975 1346.5,-1019"/>
<text text-anchor="middle" x="1301" y="-1008.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1301" y="-999.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1301" y="-990.6" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="1301" y="-981.6" font-family="Times-Roman" font-size="8.00">0 of 0.04s (2.52%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N19 -->
<g id="edge23" class="edge">
<title>N9&#45;&gt;N19</title>
<g id="a_edge23"><a xlink:title="runtime.(*mheap).allocSpan &#45;&gt; runtime.(*pageAlloc).alloc (0.04s)">
<path fill="none" stroke="#b2ab9c" d="M1287.22,-1105.94C1290.18,-1082.75 1294.11,-1051.95 1297.02,-1029.19"/>
<polygon fill="#b2ab9c" stroke="#b2ab9c" points="1300.52,-1029.4 1298.31,-1019.04 1293.58,-1028.52 1300.52,-1029.4"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="runtime.(*mheap).allocSpan &#45;&gt; runtime.(*pageAlloc).alloc (0.04s)">
<text text-anchor="middle" x="1316" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.04s</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node35" class="node">
<title>N35</title>
<g id="a_node35"><a xlink:title="runtime.(*mspan).base (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1237,-1023 1153,-1023 1153,-971 1237,-971 1237,-1023"/>
<text text-anchor="middle" x="1195" y="-1011" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1195" y="-1000" font-family="Times-Roman" font-size="10.00">(*mspan)</text>
<text text-anchor="middle" x="1195" y="-989" font-family="Times-Roman" font-size="10.00">base</text>
<text text-anchor="middle" x="1195" y="-978" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N35 -->
<g id="edge47" class="edge">
<title>N9&#45;&gt;N35</title>
<g id="a_edge47"><a xlink:title="runtime.(*mheap).allocSpan &#45;&gt; runtime.(*mspan).base (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1247.2,-1105.98C1242.06,-1100.28 1237.12,-1094.19 1233,-1088 1221.76,-1071.12 1212.73,-1050.39 1206.3,-1033.07"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1209.48,-1031.56 1202.82,-1023.33 1202.89,-1033.92 1209.48,-1031.56"/>
</a>
</g>
<g id="a_edge47&#45;label"><a xlink:title="runtime.(*mheap).allocSpan &#45;&gt; runtime.(*mspan).base (0.01s)">
<text text-anchor="middle" x="1259.5" y="-1076.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1259.5" y="-1061.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node15" class="node">
<title>N15</title>
<g id="a_node15"><a xlink:title="runtime.findObject (0.04s)">
<polygon fill="#edecea" stroke="#b2ab9c" points="363,-402 255,-402 255,-346 363,-346 363,-402"/>
<text text-anchor="middle" x="309" y="-389.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="309" y="-377.2" font-family="Times-Roman" font-size="11.00">findObject</text>
<text text-anchor="middle" x="309" y="-365.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
<text text-anchor="middle" x="309" y="-353.2" font-family="Times-Roman" font-size="11.00">of 0.04s (2.52%)</text>
</a>
</g>
</g>
<!-- N10&#45;&gt;N15 -->
<g id="edge28" class="edge">
<title>N10&#45;&gt;N15</title>
<g id="a_edge28"><a xlink:title="runtime.scanblock &#45;&gt; runtime.findObject (0.03s)">
<path fill="none" stroke="#b2ada1" d="M309,-452.76C309,-440.26 309,-425.52 309,-412.25"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="312.5,-412 309,-402 305.5,-412 312.5,-412"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.scanblock &#45;&gt; runtime.findObject (0.03s)">
<text text-anchor="middle" x="331" y="-423.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N15 -->
<g id="edge87" class="edge">
<title>N11&#45;&gt;N15</title>
<g id="a_edge87"><a xlink:title="runtime.scanobject &#45;&gt; runtime.findObject (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M188.03,-699.79C194.59,-694.03 200.65,-687.39 205,-680 256.86,-591.91 198.87,-545.67 242,-453 249.3,-437.32 260.67,-422.33 271.99,-409.77"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="274.72,-411.97 278.99,-402.27 269.6,-407.19 274.72,-411.97"/>
</a>
</g>
<g id="a_edge87&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.findObject (0.01s)">
<text text-anchor="middle" x="249" y="-542.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N48 -->
<g id="node48" class="node">
<title>N48</title>
<g id="a_node48"><a xlink:title="runtime.heapBits.bits (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="84,-631.5 0,-631.5 0,-579.5 84,-579.5 84,-631.5"/>
<text text-anchor="middle" x="42" y="-619.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="42" y="-608.5" font-family="Times-Roman" font-size="10.00">heapBits</text>
<text text-anchor="middle" x="42" y="-597.5" font-family="Times-Roman" font-size="10.00">bits</text>
<text text-anchor="middle" x="42" y="-586.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N48 -->
<g id="edge88" class="edge">
<title>N11&#45;&gt;N48</title>
<g id="a_edge88"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBits.bits (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M112.73,-699.99C105.16,-693.87 97.5,-687.04 91,-680 80.01,-668.1 69.75,-653.5 61.49,-640.47"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="64.33,-638.41 56.1,-631.74 58.38,-642.09 64.33,-638.41"/>
</a>
</g>
<g id="a_edge88&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBits.bits (0.01s)">
<text text-anchor="middle" x="117.5" y="-668.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="117.5" y="-653.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N79 -->
<g id="node79" class="node">
<title>N79</title>
<g id="a_node79"><a xlink:title="runtime.heapBits.next (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="193.5,-627.5 102.5,-627.5 102.5,-583.5 193.5,-583.5 193.5,-627.5"/>
<text text-anchor="middle" x="148" y="-617.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="148" y="-608.1" font-family="Times-Roman" font-size="8.00">heapBits</text>
<text text-anchor="middle" x="148" y="-599.1" font-family="Times-Roman" font-size="8.00">next</text>
<text text-anchor="middle" x="148" y="-590.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N11&#45;&gt;N79 -->
<g id="edge89" class="edge">
<title>N11&#45;&gt;N79</title>
<g id="a_edge89"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBits.next (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M148,-699.87C148,-681.76 148,-657.19 148,-637.8"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="151.5,-637.63 148,-627.63 144.5,-637.63 151.5,-637.63"/>
</a>
</g>
<g id="a_edge89&#45;label"><a xlink:title="runtime.scanobject &#45;&gt; runtime.heapBits.next (0.01s)">
<text text-anchor="middle" x="174.5" y="-668.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="174.5" y="-653.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N56 -->
<g id="node56" class="node">
<title>N56</title>
<g id="a_node56"><a xlink:title="runtime.(*mheap).alloc (0.09s)">
<polygon fill="#edeae6" stroke="#b29d7f" points="1416.5,-1469 1325.5,-1469 1325.5,-1425 1416.5,-1425 1416.5,-1469"/>
<text text-anchor="middle" x="1371" y="-1458.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1371" y="-1449.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1371" y="-1440.6" font-family="Times-Roman" font-size="8.00">alloc</text>
<text text-anchor="middle" x="1371" y="-1431.6" font-family="Times-Roman" font-size="8.00">0 of 0.09s (5.66%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N56 -->
<g id="edge6" class="edge">
<title>N12&#45;&gt;N56</title>
<g id="a_edge6"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.(*mheap).alloc (0.09s)">
<path fill="none" stroke="#b29d7f" d="M1441.15,-1523.7C1427.25,-1508.7 1410.99,-1491.16 1397.63,-1476.74"/>
<polygon fill="#b29d7f" stroke="#b29d7f" points="1399.91,-1474.05 1390.54,-1469.09 1394.77,-1478.8 1399.91,-1474.05"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.(*mheap).alloc (0.09s)">
<text text-anchor="middle" x="1447" y="-1494.8" font-family="Times-Roman" font-size="14.00"> 0.09s</text>
</a>
</g>
</g>
<!-- N78 -->
<g id="node78" class="node">
<title>N78</title>
<g id="a_node78"><a xlink:title="runtime.heapBits.initSpan (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1525.5,-1469 1434.5,-1469 1434.5,-1425 1525.5,-1425 1525.5,-1469"/>
<text text-anchor="middle" x="1480" y="-1458.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1480" y="-1449.6" font-family="Times-Roman" font-size="8.00">heapBits</text>
<text text-anchor="middle" x="1480" y="-1440.6" font-family="Times-Roman" font-size="8.00">initSpan</text>
<text text-anchor="middle" x="1480" y="-1431.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N12&#45;&gt;N78 -->
<g id="edge45" class="edge">
<title>N12&#45;&gt;N78</title>
<g id="a_edge45"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.heapBits.initSpan (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1474.44,-1523.7C1475.48,-1509.54 1476.69,-1493.1 1477.71,-1479.17"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1481.21,-1479.32 1478.45,-1469.09 1474.23,-1478.81 1481.21,-1479.32"/>
</a>
</g>
<g id="a_edge45&#45;label"><a xlink:title="runtime.(*mcache).allocLarge &#45;&gt; runtime.heapBits.initSpan (0.01s)">
<text text-anchor="middle" x="1499" y="-1494.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node13" class="node">
<title>N13</title>
<g id="a_node13"><a xlink:title="runtime.(*sweepLocked).sweep (0.05s)">
<polygon fill="#edebe9" stroke="#b2a896" points="842,-888 734,-888 734,-820 842,-820 842,-888"/>
<text text-anchor="middle" x="788" y="-875.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="788" y="-863.2" font-family="Times-Roman" font-size="11.00">(*sweepLocked)</text>
<text text-anchor="middle" x="788" y="-851.2" font-family="Times-Roman" font-size="11.00">sweep</text>
<text text-anchor="middle" x="788" y="-839.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
<text text-anchor="middle" x="788" y="-827.2" font-family="Times-Roman" font-size="11.00">of 0.05s (3.14%)</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node33" class="node">
<title>N33</title>
<g id="a_node33"><a xlink:title="runtime.(*mheap).freeSpan (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1210.5,-748 1119.5,-748 1119.5,-704 1210.5,-704 1210.5,-748"/>
<text text-anchor="middle" x="1165" y="-737.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1165" y="-728.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1165" y="-719.6" font-family="Times-Roman" font-size="8.00">freeSpan</text>
<text text-anchor="middle" x="1165" y="-710.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N33 -->
<g id="edge35" class="edge">
<title>N13&#45;&gt;N33</title>
<g id="a_edge35"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*mheap).freeSpan (0.02s)">
<path fill="none" stroke="#b2afa7" d="M842.33,-823.72C845.24,-822.41 848.14,-821.16 851,-820 939.02,-784.31 1045.88,-755.59 1109.51,-739.95"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1110.45,-743.32 1119.34,-737.55 1108.8,-736.52 1110.45,-743.32"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*mheap).freeSpan (0.02s)">
<text text-anchor="middle" x="1009" y="-783.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N39 -->
<g id="node39" class="node">
<title>N39</title>
<g id="a_node39"><a xlink:title="runtime.(*spanSet).push (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="830,-752 746,-752 746,-700 830,-700 830,-752"/>
<text text-anchor="middle" x="788" y="-740" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="788" y="-729" font-family="Times-Roman" font-size="10.00">(*spanSet)</text>
<text text-anchor="middle" x="788" y="-718" font-family="Times-Roman" font-size="10.00">push</text>
<text text-anchor="middle" x="788" y="-707" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N13&#45;&gt;N39 -->
<g id="edge62" class="edge">
<title>N13&#45;&gt;N39</title>
<g id="a_edge62"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*spanSet).push (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M788,-819.89C788,-802.22 788,-780.46 788,-762.44"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="791.5,-762.32 788,-752.32 784.5,-762.32 791.5,-762.32"/>
</a>
</g>
<g id="a_edge62&#45;label"><a xlink:title="runtime.(*sweepLocked).sweep &#45;&gt; runtime.(*spanSet).push (0.01s)">
<text text-anchor="middle" x="810" y="-783.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N44 -->
<g id="node44" class="node">
<title>N44</title>
<g id="a_node44"><a xlink:title="runtime.funcInfo.valid (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="539,-631.5 455,-631.5 455,-579.5 539,-579.5 539,-631.5"/>
<text text-anchor="middle" x="497" y="-619.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="497" y="-608.5" font-family="Times-Roman" font-size="10.00">funcInfo</text>
<text text-anchor="middle" x="497" y="-597.5" font-family="Times-Roman" font-size="10.00">valid</text>
<text text-anchor="middle" x="497" y="-586.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N44 -->
<g id="edge77" class="edge">
<title>N14&#45;&gt;N44</title>
<g id="a_edge77"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.funcInfo.valid (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M421.38,-697.82C427.38,-692.09 433.51,-685.97 439,-680 450.54,-667.43 462.38,-652.81 472.32,-639.93"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="475.27,-641.83 478.55,-631.76 469.71,-637.58 475.27,-641.83"/>
</a>
</g>
<g id="a_edge77&#45;label"><a xlink:title="runtime.gentraceback &#45;&gt; runtime.funcInfo.valid (0.01s)">
<text text-anchor="middle" x="490.5" y="-668.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="490.5" y="-653.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.scanframeworker (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="436.5,-623.5 345.5,-623.5 345.5,-587.5 436.5,-587.5 436.5,-623.5"/>
<text text-anchor="middle" x="391" y="-612.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="391" y="-603.6" font-family="Times-Roman" font-size="8.00">scanframeworker</text>
<text text-anchor="middle" x="391" y="-594.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N14&#45;&gt;N55 -->
<g id="edge39" class="edge">
<title>N14&#45;&gt;N55</title>
<g id="a_edge39"><a xlink:title="runtime.gentraceback ... runtime.scanframeworker (0.02s)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M391,-697.81C391,-678.65 391,-653.07 391,-633.87"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="394.5,-633.66 391,-623.66 387.5,-633.66 394.5,-633.66"/>
</a>
</g>
<g id="a_edge39&#45;label"><a xlink:title="runtime.gentraceback ... runtime.scanframeworker (0.02s)">
<text text-anchor="middle" x="413" y="-661.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node27" class="node">
<title>N27</title>
<g id="a_node27"><a xlink:title="runtime.spanOf (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="356,-280 262,-280 262,-236 356,-236 356,-280"/>
<text text-anchor="middle" x="309" y="-267.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="309" y="-255.2" font-family="Times-Roman" font-size="11.00">spanOf</text>
<text text-anchor="middle" x="309" y="-243.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N15&#45;&gt;N27 -->
<g id="edge36" class="edge">
<title>N15&#45;&gt;N27</title>
<g id="a_edge36"><a xlink:title="runtime.findObject &#45;&gt; runtime.spanOf (0.02s)">
<path fill="none" stroke="#b2afa7" d="M309,-345.98C309,-329.3 309,-307.82 309,-290.38"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="312.5,-290.13 309,-280.13 305.5,-290.13 312.5,-290.13"/>
</a>
</g>
<g id="a_edge36&#45;label"><a xlink:title="runtime.findObject &#45;&gt; runtime.spanOf (0.02s)">
<text text-anchor="middle" x="335.5" y="-316.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
<text text-anchor="middle" x="335.5" y="-301.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N2 -->
<g id="edge24" class="edge">
<title>N16&#45;&gt;N2</title>
<g id="a_edge24"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.04s)">
<path fill="none" stroke="#b2ab9c" d="M1136.03,-1420.8C1118.98,-1410.58 1099.07,-1398.69 1081,-1388 1072.61,-1383.03 1063.59,-1377.73 1055.04,-1372.71"/>
<polygon fill="#b2ab9c" stroke="#b2ab9c" points="1056.74,-1369.66 1046.34,-1367.62 1053.2,-1375.7 1056.74,-1369.66"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.systemstack (0.04s)">
<text text-anchor="middle" x="1127" y="-1391.8" font-family="Times-Roman" font-size="14.00"> 0.04s</text>
</a>
</g>
</g>
<!-- N46 -->
<g id="node46" class="node">
<title>N46</title>
<g id="a_node46"><a xlink:title="runtime.gcMarkTermination (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1233,-1370 1123,-1370 1123,-1329 1233,-1329 1233,-1370"/>
<text text-anchor="middle" x="1178" y="-1358" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1178" y="-1347" font-family="Times-Roman" font-size="10.00">gcMarkTermination</text>
<text text-anchor="middle" x="1178" y="-1336" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N46 -->
<g id="edge74" class="edge">
<title>N16&#45;&gt;N46</title>
<g id="a_edge74"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.gcMarkTermination (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1178,-1420.91C1178,-1408.56 1178,-1393.58 1178,-1380.62"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1181.5,-1380.31 1178,-1370.31 1174.5,-1380.31 1181.5,-1380.31"/>
</a>
</g>
<g id="a_edge74&#45;label"><a xlink:title="runtime.gcMarkDone &#45;&gt; runtime.gcMarkTermination (0.01s)">
<text text-anchor="middle" x="1200" y="-1391.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node17" class="node">
<title>N17</title>
<g id="a_node17"><a xlink:title="runtime.gcDrain (0.07s)">
<polygon fill="#edebe7" stroke="#b2a38b" points="322.5,-1158 231.5,-1158 231.5,-1122 322.5,-1122 322.5,-1158"/>
<text text-anchor="middle" x="277" y="-1147.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="277" y="-1138.1" font-family="Times-Roman" font-size="8.00">gcDrain</text>
<text text-anchor="middle" x="277" y="-1129.1" font-family="Times-Roman" font-size="8.00">0 of 0.07s (4.40%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N8 -->
<g id="edge22" class="edge">
<title>N17&#45;&gt;N8</title>
<g id="a_edge22"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.markroot (0.05s)">
<path fill="none" stroke="#b2a896" d="M252.07,-1121.94C228.94,-1104.45 196.04,-1074.92 182,-1040 167.74,-1004.54 165.23,-988.34 182,-954 198.79,-919.62 233.92,-893.71 262.98,-877.04"/>
<polygon fill="#b2a896" stroke="#b2a896" points="264.73,-880.07 271.78,-872.16 261.34,-873.95 264.73,-880.07"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.markroot (0.05s)">
<text text-anchor="middle" x="204" y="-993.3" font-family="Times-Roman" font-size="14.00"> 0.05s</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N11 -->
<g id="edge73" class="edge">
<title>N17&#45;&gt;N11</title>
<g id="a_edge73"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M235.04,-1121.92C218.69,-1113.63 200.85,-1102.31 188,-1088 172.45,-1070.67 172.46,-1062.64 167,-1040 143.28,-941.6 143.99,-821.03 146.16,-762.4"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="149.67,-762.32 146.58,-752.19 142.67,-762.04 149.67,-762.32"/>
</a>
</g>
<g id="a_edge73&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.scanobject (0.01s)">
<text text-anchor="middle" x="173" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node31" class="node">
<title>N31</title>
<g id="a_node31"><a xlink:title="runtime.(*gcWork).balance (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="319,-1023 235,-1023 235,-971 319,-971 319,-1023"/>
<text text-anchor="middle" x="277" y="-1011" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="277" y="-1000" font-family="Times-Roman" font-size="10.00">(*gcWork)</text>
<text text-anchor="middle" x="277" y="-989" font-family="Times-Roman" font-size="10.00">balance</text>
<text text-anchor="middle" x="277" y="-978" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N31 -->
<g id="edge72" class="edge">
<title>N17&#45;&gt;N31</title>
<g id="a_edge72"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.(*gcWork).balance (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M277,-1121.99C277,-1100.17 277,-1061.76 277,-1033.45"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="280.5,-1033.16 277,-1023.16 273.5,-1033.16 280.5,-1033.16"/>
</a>
</g>
<g id="a_edge72&#45;label"><a xlink:title="runtime.gcDrain &#45;&gt; runtime.(*gcWork).balance (0.01s)">
<text text-anchor="middle" x="299" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node18" class="node">
<title>N18</title>
<g id="a_node18"><a xlink:title="runtime.gcDrainN (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="428.5,-1015 337.5,-1015 337.5,-979 428.5,-979 428.5,-1015"/>
<text text-anchor="middle" x="383" y="-1004.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="383" y="-995.1" font-family="Times-Roman" font-size="8.00">gcDrainN</text>
<text text-anchor="middle" x="383" y="-986.1" font-family="Times-Roman" font-size="8.00">0 of 0.08s (5.03%)</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N8 -->
<g id="edge19" class="edge">
<title>N18&#45;&gt;N8</title>
<g id="a_edge19"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.markroot (0.06s)">
<path fill="none" stroke="#b2a590" d="M374.07,-978.99C361.3,-954.64 337.68,-909.64 322.68,-881.07"/>
<polygon fill="#b2a590" stroke="#b2a590" points="325.7,-879.3 317.96,-872.07 319.51,-882.55 325.7,-879.3"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.markroot (0.06s)">
<text text-anchor="middle" x="373" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.06s</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N11 -->
<g id="edge38" class="edge">
<title>N18&#45;&gt;N11</title>
<g id="a_edge38"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.scanobject (0.02s)">
<path fill="none" stroke="#b2afa7" d="M362.1,-978.92C352.03,-970.99 339.65,-961.65 328,-954 277.77,-921.02 249.36,-933.41 210,-888 178.39,-851.54 162.01,-797.21 154.21,-761.94"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="157.63,-761.16 152.15,-752.09 150.77,-762.59 157.63,-761.16"/>
</a>
</g>
<g id="a_edge38&#45;label"><a xlink:title="runtime.gcDrainN &#45;&gt; runtime.scanobject (0.02s)">
<text text-anchor="middle" x="232" y="-850.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node36" class="node">
<title>N36</title>
<g id="a_node36"><a xlink:title="runtime.(*pageAlloc).allocRange (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1494.5,-876 1403.5,-876 1403.5,-832 1494.5,-832 1494.5,-876"/>
<text text-anchor="middle" x="1449" y="-865.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1449" y="-856.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1449" y="-847.6" font-family="Times-Roman" font-size="8.00">allocRange</text>
<text text-anchor="middle" x="1449" y="-838.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N36 -->
<g id="edge32" class="edge">
<title>N19&#45;&gt;N36</title>
<g id="a_edge32"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).allocRange (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1323.16,-974.89C1348.77,-950.49 1391.03,-910.23 1419.43,-883.17"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1421.87,-885.69 1426.69,-876.25 1417.04,-880.62 1421.87,-885.69"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).allocRange (0.02s)">
<text text-anchor="middle" x="1415" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N51 -->
<g id="node51" class="node">
<title>N51</title>
<g id="a_node51"><a xlink:title="runtime.pallocSum.max (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1347,-880 1263,-880 1263,-828 1347,-828 1347,-880"/>
<text text-anchor="middle" x="1305" y="-868" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1305" y="-857" font-family="Times-Roman" font-size="10.00">pallocSum</text>
<text text-anchor="middle" x="1305" y="-846" font-family="Times-Roman" font-size="10.00">max</text>
<text text-anchor="middle" x="1305" y="-835" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N51 -->
<g id="edge55" class="edge">
<title>N19&#45;&gt;N51</title>
<g id="a_edge55"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.pallocSum.max (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1301.6,-974.89C1302.23,-952.51 1303.25,-916.78 1304,-890.14"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1307.5,-890.16 1304.29,-880.07 1300.51,-889.96 1307.5,-890.16"/>
</a>
</g>
<g id="a_edge55&#45;label"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.pallocSum.max (0.01s)">
<text text-anchor="middle" x="1330.5" y="-924.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1330.5" y="-909.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N61 -->
<g id="node61" class="node">
<title>N61</title>
<g id="a_node61"><a xlink:title="runtime.(*pageAlloc).find (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1244.5,-876 1153.5,-876 1153.5,-832 1244.5,-832 1244.5,-876"/>
<text text-anchor="middle" x="1199" y="-865.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1199" y="-856.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1199" y="-847.6" font-family="Times-Roman" font-size="8.00">find</text>
<text text-anchor="middle" x="1199" y="-838.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N61 -->
<g id="edge54" class="edge">
<title>N19&#45;&gt;N61</title>
<g id="a_edge54"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).find (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1284.35,-974.81C1275.5,-963.41 1264.5,-949.05 1255,-936 1242.8,-919.25 1229.6,-900.2 1219.08,-884.79"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1221.74,-882.48 1213.22,-876.18 1215.95,-886.41 1221.74,-882.48"/>
</a>
</g>
<g id="a_edge54&#45;label"><a xlink:title="runtime.(*pageAlloc).alloc &#45;&gt; runtime.(*pageAlloc).find (0.01s)">
<text text-anchor="middle" x="1277" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node20" class="node">
<title>N20</title>
<g id="a_node20"><a xlink:title="runtime.mcall (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1711.5,-1692 1620.5,-1692 1620.5,-1656 1711.5,-1656 1711.5,-1692"/>
<text text-anchor="middle" x="1666" y="-1681.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1666" y="-1672.1" font-family="Times-Roman" font-size="8.00">mcall</text>
<text text-anchor="middle" x="1666" y="-1663.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.89%)</text>
</a>
</g>
</g>
<!-- N77 -->
<g id="node77" class="node">
<title>N77</title>
<g id="a_node77"><a xlink:title="runtime.gosched_m (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1711.5,-1576 1620.5,-1576 1620.5,-1540 1711.5,-1540 1711.5,-1576"/>
<text text-anchor="middle" x="1666" y="-1565.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1666" y="-1556.1" font-family="Times-Roman" font-size="8.00">gosched_m</text>
<text text-anchor="middle" x="1666" y="-1547.1" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N77 -->
<g id="edge42" class="edge">
<title>N20&#45;&gt;N77</title>
<g id="a_edge42"><a xlink:title="runtime.mcall &#45;&gt; runtime.gosched_m (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1666,-1655.69C1666,-1637.25 1666,-1607.82 1666,-1586.26"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1669.5,-1586.1 1666,-1576.1 1662.5,-1586.1 1669.5,-1586.1"/>
</a>
</g>
<g id="a_edge42&#45;label"><a xlink:title="runtime.mcall &#45;&gt; runtime.gosched_m (0.02s)">
<text text-anchor="middle" x="1688" y="-1613.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node21" class="node">
<title>N21</title>
<g id="a_node21"><a xlink:title="runtime.(*pageAlloc).update (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1210.5,-280 1119.5,-280 1119.5,-236 1210.5,-236 1210.5,-280"/>
<text text-anchor="middle" x="1165" y="-269.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1165" y="-260.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1165" y="-251.6" font-family="Times-Roman" font-size="8.00">update</text>
<text text-anchor="middle" x="1165" y="-242.6" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.89%)</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node30" class="node">
<title>N30</title>
<g id="a_node30"><a xlink:title="runtime.(*pallocBits).summarize (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1213.5,-170 1116.5,-170 1116.5,-107 1213.5,-107 1213.5,-170"/>
<text text-anchor="middle" x="1165" y="-158" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1165" y="-147" font-family="Times-Roman" font-size="10.00">(*pallocBits)</text>
<text text-anchor="middle" x="1165" y="-136" font-family="Times-Roman" font-size="10.00">summarize</text>
<text text-anchor="middle" x="1165" y="-125" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
<text text-anchor="middle" x="1165" y="-114" font-family="Times-Roman" font-size="10.00">of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N30 -->
<g id="edge34" class="edge">
<title>N21&#45;&gt;N30</title>
<g id="a_edge34"><a xlink:title="runtime.(*pageAlloc).update &#45;&gt; runtime.(*pallocBits).summarize (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1165,-235.99C1165,-220.51 1165,-198.96 1165,-180.15"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1168.5,-180.04 1165,-170.04 1161.5,-180.04 1168.5,-180.04"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="runtime.(*pageAlloc).update &#45;&gt; runtime.(*pallocBits).summarize (0.02s)">
<text text-anchor="middle" x="1187" y="-199.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N52 -->
<g id="node52" class="node">
<title>N52</title>
<g id="a_node52"><a xlink:title="runtime.pallocSum.unpack (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1316,-164.5 1232,-164.5 1232,-112.5 1316,-112.5 1316,-164.5"/>
<text text-anchor="middle" x="1274" y="-152.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1274" y="-141.5" font-family="Times-Roman" font-size="10.00">pallocSum</text>
<text text-anchor="middle" x="1274" y="-130.5" font-family="Times-Roman" font-size="10.00">unpack</text>
<text text-anchor="middle" x="1274" y="-119.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N52 -->
<g id="edge59" class="edge">
<title>N21&#45;&gt;N52</title>
<g id="a_edge59"><a xlink:title="runtime.(*pageAlloc).update ... runtime.pallocSum.unpack (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1193.1,-235.96C1199.88,-230.4 1206.92,-224.22 1213,-218 1226.52,-204.18 1239.89,-187.43 1250.65,-172.95"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1253.58,-174.87 1256.66,-164.73 1247.93,-170.73 1253.58,-174.87"/>
</a>
</g>
<g id="a_edge59&#45;label"><a xlink:title="runtime.(*pageAlloc).update ... runtime.pallocSum.unpack (0.01s)">
<text text-anchor="middle" x="1265.5" y="-206.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1265.5" y="-191.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node22" class="node">
<title>N22</title>
<g id="a_node22"><a xlink:title="runtime.schedule (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="1711.5,-1367.5 1620.5,-1367.5 1620.5,-1331.5 1711.5,-1331.5 1711.5,-1367.5"/>
<text text-anchor="middle" x="1666" y="-1356.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1666" y="-1347.6" font-family="Times-Roman" font-size="8.00">schedule</text>
<text text-anchor="middle" x="1666" y="-1338.6" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.89%)</text>
</a>
</g>
</g>
<!-- N43 -->
<g id="node43" class="node">
<title>N43</title>
<g id="a_node43"><a xlink:title="runtime.findrunnable (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1711.5,-1269.5 1620.5,-1269.5 1620.5,-1233.5 1711.5,-1233.5 1711.5,-1269.5"/>
<text text-anchor="middle" x="1666" y="-1258.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1666" y="-1249.6" font-family="Times-Roman" font-size="8.00">findrunnable</text>
<text text-anchor="middle" x="1666" y="-1240.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N43 -->
<g id="edge44" class="edge">
<title>N22&#45;&gt;N43</title>
<g id="a_edge44"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1666,-1331.34C1666,-1317 1666,-1296.31 1666,-1279.72"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1669.5,-1279.51 1666,-1269.51 1662.5,-1279.51 1669.5,-1279.51"/>
</a>
</g>
<g id="a_edge44&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.findrunnable (0.02s)">
<text text-anchor="middle" x="1688" y="-1299.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N67 -->
<g id="node67" class="node">
<title>N67</title>
<g id="a_node67"><a xlink:title="runtime.execute (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1820.5,-1269.5 1729.5,-1269.5 1729.5,-1233.5 1820.5,-1233.5 1820.5,-1269.5"/>
<text text-anchor="middle" x="1775" y="-1258.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1775" y="-1249.6" font-family="Times-Roman" font-size="8.00">execute</text>
<text text-anchor="middle" x="1775" y="-1240.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N67 -->
<g id="edge90" class="edge">
<title>N22&#45;&gt;N67</title>
<g id="a_edge90"><a xlink:title="runtime.schedule &#45;&gt; runtime.execute (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1688.84,-1331.41C1696.93,-1325.16 1706.01,-1317.92 1714,-1311 1726.53,-1300.15 1739.87,-1287.49 1750.88,-1276.72"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1753.42,-1279.13 1758.08,-1269.62 1748.5,-1274.15 1753.42,-1279.13"/>
</a>
</g>
<g id="a_edge90&#45;label"><a xlink:title="runtime.schedule &#45;&gt; runtime.execute (0.01s)">
<text text-anchor="middle" x="1751" y="-1299.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node23" class="node">
<title>N23</title>
<g id="a_node23"><a xlink:title="runtime.bgsweep (0.05s)">
<polygon fill="#edebe9" stroke="#b2a896" points="618.5,-1158 527.5,-1158 527.5,-1122 618.5,-1122 618.5,-1158"/>
<text text-anchor="middle" x="573" y="-1147.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="573" y="-1138.1" font-family="Times-Roman" font-size="8.00">bgsweep</text>
<text text-anchor="middle" x="573" y="-1129.1" font-family="Times-Roman" font-size="8.00">0 of 0.05s (3.14%)</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node29" class="node">
<title>N29</title>
<g id="a_node29"><a xlink:title="runtime.sweepone (0.05s)">
<polygon fill="#edebe9" stroke="#b2a896" points="618.5,-1015 527.5,-1015 527.5,-979 618.5,-979 618.5,-1015"/>
<text text-anchor="middle" x="573" y="-1004.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="573" y="-995.1" font-family="Times-Roman" font-size="8.00">sweepone</text>
<text text-anchor="middle" x="573" y="-986.1" font-family="Times-Roman" font-size="8.00">0 of 0.05s (3.14%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N29 -->
<g id="edge21" class="edge">
<title>N23&#45;&gt;N29</title>
<g id="a_edge21"><a xlink:title="runtime.bgsweep &#45;&gt; runtime.sweepone (0.05s)">
<path fill="none" stroke="#b2a896" d="M573,-1121.99C573,-1097.96 573,-1053.81 573,-1025.2"/>
<polygon fill="#b2a896" stroke="#b2a896" points="576.5,-1025.07 573,-1015.07 569.5,-1025.07 576.5,-1025.07"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="runtime.bgsweep &#45;&gt; runtime.sweepone (0.05s)">
<text text-anchor="middle" x="595" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.05s</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node24" class="node">
<title>N24</title>
<g id="a_node24"><a xlink:title="runtime.forEachP (0.03s)">
<polygon fill="#edecea" stroke="#b2ada1" points="901.5,-1158 810.5,-1158 810.5,-1122 901.5,-1122 901.5,-1158"/>
<text text-anchor="middle" x="856" y="-1147.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="856" y="-1138.1" font-family="Times-Roman" font-size="8.00">forEachP</text>
<text text-anchor="middle" x="856" y="-1129.1" font-family="Times-Roman" font-size="8.00">0 of 0.03s (1.89%)</text>
</a>
</g>
</g>
<!-- N45 -->
<g id="node45" class="node">
<title>N45</title>
<g id="a_node45"><a xlink:title="runtime.futexsleep (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1054.5,-1015 963.5,-1015 963.5,-979 1054.5,-979 1054.5,-1015"/>
<text text-anchor="middle" x="1009" y="-1004.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1009" y="-995.1" font-family="Times-Roman" font-size="8.00">futexsleep</text>
<text text-anchor="middle" x="1009" y="-986.1" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N45 -->
<g id="edge69" class="edge">
<title>N24&#45;&gt;N45</title>
<g id="a_edge69"><a xlink:title="runtime.forEachP ... runtime.futexsleep (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M883.31,-1121.95C891.81,-1116.74 901.25,-1111.06 910,-1106 924.47,-1097.64 930.43,-1099 943,-1088 946,-1085.38 972.37,-1049 990.85,-1023.31"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="993.78,-1025.23 996.77,-1015.07 988.1,-1021.15 993.78,-1025.23"/>
</a>
</g>
<g id="a_edge69&#45;label"><a xlink:title="runtime.forEachP ... runtime.futexsleep (0.01s)">
<text text-anchor="middle" x="987" y="-1069.3" 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.preemptall (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="727.5,-1015 636.5,-1015 636.5,-979 727.5,-979 727.5,-1015"/>
<text text-anchor="middle" x="682" y="-1004.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="682" y="-995.1" font-family="Times-Roman" font-size="8.00">preemptall</text>
<text text-anchor="middle" x="682" y="-986.1" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N54 -->
<g id="edge71" class="edge">
<title>N24&#45;&gt;N54</title>
<g id="a_edge71"><a xlink:title="runtime.forEachP &#45;&gt; runtime.preemptall (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M823.7,-1121.82C807.57,-1112.64 788.1,-1100.64 772,-1088 746.64,-1068.09 720.95,-1041.64 703.55,-1022.58"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="706.15,-1020.23 696.85,-1015.15 700.95,-1024.92 706.15,-1020.23"/>
</a>
</g>
<g id="a_edge71&#45;label"><a xlink:title="runtime.forEachP &#45;&gt; runtime.preemptall (0.01s)">
<text text-anchor="middle" x="794" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N73 -->
<g id="node73" class="node">
<title>N73</title>
<g id="a_node73"><a xlink:title="runtime.gcMarkDone.func1.1 (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="836.5,-1023.5 745.5,-1023.5 745.5,-970.5 836.5,-970.5 836.5,-1023.5"/>
<text text-anchor="middle" x="791" y="-1013.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="791" y="-1004.1" font-family="Times-Roman" font-size="8.00">gcMarkDone</text>
<text text-anchor="middle" x="791" y="-995.1" font-family="Times-Roman" font-size="8.00">func1</text>
<text text-anchor="middle" x="791" y="-986.1" font-family="Times-Roman" font-size="8.00">1</text>
<text text-anchor="middle" x="791" y="-977.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N73 -->
<g id="edge70" class="edge">
<title>N24&#45;&gt;N73</title>
<g id="a_edge70"><a xlink:title="runtime.forEachP &#45;&gt; runtime.gcMarkDone.func1.1 (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M848.16,-1121.99C838.03,-1100.01 820.14,-1061.21 807.06,-1032.85"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="810.2,-1031.28 802.83,-1023.67 803.84,-1034.21 810.2,-1031.28"/>
</a>
</g>
<g id="a_edge70&#45;label"><a xlink:title="runtime.forEachP &#45;&gt; runtime.gcMarkDone.func1.1 (0.01s)">
<text text-anchor="middle" x="854" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N9 -->
<g id="edge9" class="edge">
<title>N25&#45;&gt;N9</title>
<g id="a_edge9"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).allocSpan (0.08s)">
<path fill="none" stroke="#b2a085" d="M1062.53,-1234.94C1103.86,-1220.41 1166.25,-1197.5 1219,-1174 1219.2,-1173.91 1219.4,-1173.82 1219.6,-1173.73"/>
<polygon fill="#b2a085" stroke="#b2a085" points="1221.13,-1176.88 1228.74,-1169.51 1218.19,-1170.53 1221.13,-1176.88"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).allocSpan (0.08s)">
<text text-anchor="middle" x="1198" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N59 -->
<g id="node59" class="node">
<title>N59</title>
<g id="a_node59"><a xlink:title="runtime.(*mheap).reclaim (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1010.5,-1162 919.5,-1162 919.5,-1118 1010.5,-1118 1010.5,-1162"/>
<text text-anchor="middle" x="965" y="-1151.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="965" y="-1142.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="965" y="-1133.6" font-family="Times-Roman" font-size="8.00">reclaim</text>
<text text-anchor="middle" x="965" y="-1124.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N59 -->
<g id="edge46" class="edge">
<title>N25&#45;&gt;N59</title>
<g id="a_edge46"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).reclaim (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M979.07,-1224.92C973.8,-1219.64 969.12,-1213.63 966,-1207 960.99,-1196.36 959.84,-1183.65 960.25,-1172.24"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="963.75,-1172.45 961.01,-1162.21 956.77,-1171.92 963.75,-1172.45"/>
</a>
</g>
<g id="a_edge46&#45;label"><a xlink:title="runtime.(*mheap).alloc.func1 &#45;&gt; runtime.(*mheap).reclaim (0.01s)">
<text text-anchor="middle" x="988" y="-1195.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.futex (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1056,-876 962,-876 962,-832 1056,-832 1056,-876"/>
<text text-anchor="middle" x="1009" y="-863.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="1009" y="-851.2" font-family="Times-Roman" font-size="11.00">futex</text>
<text text-anchor="middle" x="1009" y="-839.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node28" class="node">
<title>N28</title>
<g id="a_node28"><a xlink:title="runtime.tgkill (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="716,-876 622,-876 622,-832 716,-832 716,-876"/>
<text text-anchor="middle" x="669" y="-863.2" font-family="Times-Roman" font-size="11.00">runtime</text>
<text text-anchor="middle" x="669" y="-851.2" font-family="Times-Roman" font-size="11.00">tgkill</text>
<text text-anchor="middle" x="669" y="-839.2" font-family="Times-Roman" font-size="11.00">0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N13 -->
<g id="edge26" class="edge">
<title>N29&#45;&gt;N13</title>
<g id="a_edge26"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*sweepLocked).sweep (0.04s)">
<path fill="none" stroke="#b2ab9c" d="M590.55,-978.82C600.47,-970.07 613.56,-960.02 627,-954 667.41,-935.89 687.15,-958.98 725,-936 740.78,-926.42 754.12,-911.31 764.39,-896.73"/>
<polygon fill="#b2ab9c" stroke="#b2ab9c" points="767.42,-898.51 770.08,-888.25 761.6,-894.6 767.42,-898.51"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*sweepLocked).sweep (0.04s)">
<text text-anchor="middle" x="778" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.04s</text>
</a>
</g>
</g>
<!-- N58 -->
<g id="node58" class="node">
<title>N58</title>
<g id="a_node58"><a xlink:title="runtime.(*mheap).nextSpanForSweep (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="603.5,-876 508.5,-876 508.5,-832 603.5,-832 603.5,-876"/>
<text text-anchor="middle" x="556" y="-865.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="556" y="-856.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="556" y="-847.6" font-family="Times-Roman" font-size="8.00">nextSpanForSweep</text>
<text text-anchor="middle" x="556" y="-838.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N58 -->
<g id="edge91" class="edge">
<title>N29&#45;&gt;N58</title>
<g id="a_edge91"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*mheap).nextSpanForSweep (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M570.95,-978.99C568.19,-956.13 563.24,-915.06 559.8,-886.48"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="563.23,-885.71 558.56,-876.2 556.28,-886.55 563.23,-885.71"/>
</a>
</g>
<g id="a_edge91&#45;label"><a xlink:title="runtime.sweepone &#45;&gt; runtime.(*mheap).nextSpanForSweep (0.01s)">
<text text-anchor="middle" x="588" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N50 -->
<g id="node50" class="node">
<title>N50</title>
<g id="a_node50"><a xlink:title="runtime.packPallocSum (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1210.5,-41 1119.5,-41 1119.5,0 1210.5,0 1210.5,-41"/>
<text text-anchor="middle" x="1165" y="-29" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1165" y="-18" font-family="Times-Roman" font-size="10.00">packPallocSum</text>
<text text-anchor="middle" x="1165" y="-7" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N50 -->
<g id="edge61" class="edge">
<title>N30&#45;&gt;N50</title>
<g id="a_edge61"><a xlink:title="runtime.(*pallocBits).summarize &#45;&gt; runtime.packPallocSum (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1165,-106.72C1165,-89.65 1165,-68.51 1165,-51.56"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1168.5,-51.11 1165,-41.11 1161.5,-51.11 1168.5,-51.11"/>
</a>
</g>
<g id="a_edge61&#45;label"><a xlink:title="runtime.(*pallocBits).summarize &#45;&gt; runtime.packPallocSum (0.01s)">
<text text-anchor="middle" x="1191.5" y="-77.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1191.5" y="-62.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node32" class="node">
<title>N32</title>
<g id="a_node32"><a xlink:title="runtime.(*gcWork).dispose (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="944,-880 860,-880 860,-828 944,-828 944,-880"/>
<text text-anchor="middle" x="902" y="-868" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="902" y="-857" font-family="Times-Roman" font-size="10.00">(*gcWork)</text>
<text text-anchor="middle" x="902" y="-846" font-family="Times-Roman" font-size="10.00">dispose</text>
<text text-anchor="middle" x="902" y="-835" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N2 -->
<g id="edge50" class="edge">
<title>N33&#45;&gt;N2</title>
<g id="a_edge50"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.systemstack (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1204.66,-748.1C1209.42,-750.25 1214.27,-752.28 1219,-754 1282.5,-777.15 1324.49,-760.21 1356,-820 1373.85,-853.87 1359.89,-867.73 1361,-906 1361.87,-935.81 1361.85,-1148.74 1346,-1174 1285.39,-1270.57 1152.19,-1316.89 1075.15,-1336.38"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1074,-1333.05 1065.12,-1338.84 1075.67,-1339.85 1074,-1333.05"/>
</a>
</g>
<g id="a_edge50&#45;label"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.systemstack (0.01s)">
<text text-anchor="middle" x="1382" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N34 -->
<g id="edge49" class="edge">
<title>N33&#45;&gt;N34</title>
<g id="a_edge49"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1165,-703.81C1165,-686.69 1165,-662.22 1165,-642.1"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1168.5,-642.04 1165,-632.04 1161.5,-642.04 1168.5,-642.04"/>
</a>
</g>
<g id="a_edge49&#45;label"><a xlink:title="runtime.(*mheap).freeSpan &#45;&gt; runtime.(*mheap).freeSpan.func1 (0.01s)">
<text text-anchor="middle" x="1187" y="-661.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N57 -->
<g id="node57" class="node">
<title>N57</title>
<g id="a_node57"><a xlink:title="runtime.(*mheap).freeSpanLocked (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1210.5,-505 1119.5,-505 1119.5,-461 1210.5,-461 1210.5,-505"/>
<text text-anchor="middle" x="1165" y="-494.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1165" y="-485.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="1165" y="-476.6" font-family="Times-Roman" font-size="8.00">freeSpanLocked</text>
<text text-anchor="middle" x="1165" y="-467.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N57 -->
<g id="edge30" class="edge">
<title>N34&#45;&gt;N57</title>
<g id="a_edge30"><a xlink:title="runtime.(*mheap).freeSpan.func1 &#45;&gt; runtime.(*mheap).freeSpanLocked (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1165,-578.95C1165,-560.32 1165,-534.99 1165,-515.18"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1168.5,-515.1 1165,-505.1 1161.5,-515.1 1168.5,-515.1"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.(*mheap).freeSpan.func1 &#45;&gt; runtime.(*mheap).freeSpanLocked (0.02s)">
<text text-anchor="middle" x="1187" y="-542.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N21 -->
<g id="edge56" class="edge">
<title>N36&#45;&gt;N21</title>
<g id="a_edge56"><a xlink:title="runtime.(*pageAlloc).allocRange &#45;&gt; runtime.(*pageAlloc).update (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1457.47,-831.99C1466.65,-807.28 1480,-764.85 1480,-727 1480,-727 1480,-727 1480,-373 1480,-318.54 1311.41,-282.75 1220.91,-267.46"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1221.24,-263.97 1210.8,-265.78 1220.1,-270.87 1221.24,-263.97"/>
</a>
</g>
<g id="a_edge56&#45;label"><a xlink:title="runtime.(*pageAlloc).allocRange &#45;&gt; runtime.(*pageAlloc).update (0.01s)">
<text text-anchor="middle" x="1502" y="-542.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N42 -->
<g id="node42" class="node">
<title>N42</title>
<g id="a_node42"><a xlink:title="runtime.chunkPageIndex (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1451.5,-746.5 1354.5,-746.5 1354.5,-705.5 1451.5,-705.5 1451.5,-746.5"/>
<text text-anchor="middle" x="1403" y="-734.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1403" y="-723.5" font-family="Times-Roman" font-size="10.00">chunkPageIndex</text>
<text text-anchor="middle" x="1403" y="-712.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N42 -->
<g id="edge57" class="edge">
<title>N36&#45;&gt;N42</title>
<g id="a_edge57"><a xlink:title="runtime.(*pageAlloc).allocRange &#45;&gt; runtime.chunkPageIndex (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1430.35,-831.51C1423.83,-822.88 1417.11,-812.49 1413,-802 1407.42,-787.77 1404.85,-770.98 1403.7,-756.9"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1407.18,-756.52 1403.08,-746.75 1400.2,-756.95 1407.18,-756.52"/>
</a>
</g>
<g id="a_edge57&#45;label"><a xlink:title="runtime.(*pageAlloc).allocRange &#45;&gt; runtime.chunkPageIndex (0.01s)">
<text text-anchor="middle" x="1439.5" y="-790.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1439.5" y="-775.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N37 -->
<g id="node37" class="node">
<title>N37</title>
<g id="a_node37"><a xlink:title="runtime.(*pallocBits).findSmallN (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1316,-631.5 1232,-631.5 1232,-579.5 1316,-579.5 1316,-631.5"/>
<text text-anchor="middle" x="1274" y="-619.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1274" y="-608.5" font-family="Times-Roman" font-size="10.00">(*pallocBits)</text>
<text text-anchor="middle" x="1274" y="-597.5" font-family="Times-Roman" font-size="10.00">findSmallN</text>
<text text-anchor="middle" x="1274" y="-586.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N38 -->
<g id="node38" class="node">
<title>N38</title>
<g id="a_node38"><a xlink:title="runtime.(*spanSet).pop (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="598,-752 514,-752 514,-700 598,-700 598,-752"/>
<text text-anchor="middle" x="556" y="-740" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="556" y="-729" font-family="Times-Roman" font-size="10.00">(*spanSet)</text>
<text text-anchor="middle" x="556" y="-718" font-family="Times-Roman" font-size="10.00">pop</text>
<text text-anchor="middle" x="556" y="-707" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N40 -->
<g id="node40" class="node">
<title>N40</title>
<g id="a_node40"><a xlink:title="runtime.add1 (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="189,-503.5 105,-503.5 105,-462.5 189,-462.5 189,-503.5"/>
<text text-anchor="middle" x="147" y="-491.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="147" y="-480.5" font-family="Times-Roman" font-size="10.00">add1</text>
<text text-anchor="middle" x="147" y="-469.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N41 -->
<g id="node41" class="node">
<title>N41</title>
<g id="a_node41"><a xlink:title="runtime.casgstatus (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1817,-1160.5 1733,-1160.5 1733,-1119.5 1817,-1119.5 1817,-1160.5"/>
<text text-anchor="middle" x="1775" y="-1148.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1775" y="-1137.5" font-family="Times-Roman" font-size="10.00">casgstatus</text>
<text text-anchor="middle" x="1775" y="-1126.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N66 -->
<g id="node66" class="node">
<title>N66</title>
<g id="a_node66"><a xlink:title="runtime.checkTimers (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1713.5,-1158 1622.5,-1158 1622.5,-1122 1713.5,-1122 1713.5,-1158"/>
<text text-anchor="middle" x="1668" y="-1147.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1668" y="-1138.1" font-family="Times-Roman" font-size="8.00">checkTimers</text>
<text text-anchor="middle" x="1668" y="-1129.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N66 -->
<g id="edge67" class="edge">
<title>N43&#45;&gt;N66</title>
<g id="a_edge67"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.checkTimers (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1666.31,-1233.39C1666.63,-1216.06 1667.12,-1188.96 1667.5,-1168.59"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1671,-1168.41 1667.68,-1158.35 1664,-1168.28 1671,-1168.41"/>
</a>
</g>
<g id="a_edge67&#45;label"><a xlink:title="runtime.findrunnable &#45;&gt; runtime.checkTimers (0.01s)">
<text text-anchor="middle" x="1689" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N80 -->
<g id="node80" class="node">
<title>N80</title>
<g id="a_node80"><a xlink:title="runtime.mPark (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1210.5,-1158 1119.5,-1158 1119.5,-1122 1210.5,-1122 1210.5,-1158"/>
<text text-anchor="middle" x="1165" y="-1147.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1165" y="-1138.1" font-family="Times-Roman" font-size="8.00">mPark</text>
<text text-anchor="middle" x="1165" y="-1129.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N43&#45;&gt;N80 -->
<g id="edge68" class="edge">
<title>N43&#45;&gt;N80</title>
<g id="a_edge68"><a xlink:title="runtime.findrunnable ... runtime.mPark (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1620.26,-1242.88C1508.39,-1224.22 1229.41,-1177.49 1220,-1174 1212.51,-1171.22 1204.9,-1167.41 1197.83,-1163.36"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1199.57,-1160.33 1189.2,-1158.17 1195.96,-1166.33 1199.57,-1160.33"/>
</a>
</g>
<g id="a_edge68&#45;label"><a xlink:title="runtime.findrunnable ... runtime.mPark (0.01s)">
<text text-anchor="middle" x="1417" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N45&#45;&gt;N26 -->
<g id="edge37" class="edge">
<title>N45&#45;&gt;N26</title>
<g id="a_edge37"><a xlink:title="runtime.futexsleep &#45;&gt; runtime.futex (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1009,-978.99C1009,-956.13 1009,-915.06 1009,-886.48"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1012.5,-886.2 1009,-876.2 1005.5,-886.2 1012.5,-886.2"/>
</a>
</g>
<g id="a_edge37&#45;label"><a xlink:title="runtime.futexsleep &#45;&gt; runtime.futex (0.02s)">
<text text-anchor="middle" x="1031" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N49 -->
<g id="node49" class="node">
<title>N49</title>
<g id="a_node49"><a xlink:title="runtime.nanotime (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1807,-1017.5 1723,-1017.5 1723,-976.5 1807,-976.5 1807,-1017.5"/>
<text text-anchor="middle" x="1765" y="-1005.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="1765" y="-994.5" font-family="Times-Roman" font-size="10.00">nanotime</text>
<text text-anchor="middle" x="1765" y="-983.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N53 -->
<g id="node53" class="node">
<title>N53</title>
<g id="a_node53"><a xlink:title="runtime.pcvalue (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="472,-394.5 388,-394.5 388,-353.5 472,-353.5 472,-394.5"/>
<text text-anchor="middle" x="430" y="-382.5" font-family="Times-Roman" font-size="10.00">runtime</text>
<text text-anchor="middle" x="430" y="-371.5" font-family="Times-Roman" font-size="10.00">pcvalue</text>
<text text-anchor="middle" x="430" y="-360.5" font-family="Times-Roman" font-size="10.00">0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N54&#45;&gt;N28 -->
<g id="edge43" class="edge">
<title>N54&#45;&gt;N28</title>
<g id="a_edge43"><a xlink:title="runtime.preemptall ... runtime.tgkill (0.02s)">
<path fill="none" stroke="#b2afa7" stroke-dasharray="1,5" d="M680.43,-978.99C678.32,-956.13 674.54,-915.06 671.9,-886.48"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="675.36,-885.84 670.96,-876.2 668.39,-886.48 675.36,-885.84"/>
</a>
</g>
<g id="a_edge43&#45;label"><a xlink:title="runtime.preemptall ... runtime.tgkill (0.02s)">
<text text-anchor="middle" x="699" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N10 -->
<g id="edge86" class="edge">
<title>N55&#45;&gt;N10</title>
<g id="a_edge86"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.scanblock (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M377.5,-587.38C371.39,-579.47 364.17,-569.87 358,-561 349.25,-548.42 340.12,-534.36 332.15,-521.73"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="335.11,-519.87 326.83,-513.26 329.18,-523.59 335.11,-519.87"/>
</a>
</g>
<g id="a_edge86&#45;label"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.scanblock (0.01s)">
<text text-anchor="middle" x="380" y="-542.3" 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.getStackMap (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="475.5,-501 384.5,-501 384.5,-465 475.5,-465 475.5,-501"/>
<text text-anchor="middle" x="430" y="-490.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="430" y="-481.1" font-family="Times-Roman" font-size="8.00">getStackMap</text>
<text text-anchor="middle" x="430" y="-472.1" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N55&#45;&gt;N75 -->
<g id="edge85" class="edge">
<title>N55&#45;&gt;N75</title>
<g id="a_edge85"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.getStackMap (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M396.51,-587.49C402.94,-567.6 413.68,-534.42 421.26,-510.99"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="424.65,-511.9 424.4,-501.31 417.99,-509.75 424.65,-511.9"/>
</a>
</g>
<g id="a_edge85&#45;label"><a xlink:title="runtime.scanframeworker &#45;&gt; runtime.getStackMap (0.01s)">
<text text-anchor="middle" x="436" y="-542.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N56&#45;&gt;N2 -->
<g id="edge7" class="edge">
<title>N56&#45;&gt;N2</title>
<g id="a_edge7"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.systemstack (0.09s)">
<path fill="none" stroke="#b29d7f" d="M1343.86,-1424.73C1325.91,-1411.86 1301.3,-1396.36 1277,-1388 1208.08,-1364.28 1186.02,-1381.19 1114,-1370 1101.41,-1368.04 1087.97,-1365.58 1075.24,-1363.08"/>
<polygon fill="#b29d7f" stroke="#b29d7f" points="1075.7,-1359.6 1065.2,-1361.06 1074.32,-1366.46 1075.7,-1359.6"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="runtime.(*mheap).alloc &#45;&gt; runtime.systemstack (0.09s)">
<text text-anchor="middle" x="1330" y="-1391.8" font-family="Times-Roman" font-size="14.00"> 0.09s</text>
</a>
</g>
</g>
<!-- N62 -->
<g id="node62" class="node">
<title>N62</title>
<g id="a_node62"><a xlink:title="runtime.(*pageAlloc).free (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1210.5,-396 1119.5,-396 1119.5,-352 1210.5,-352 1210.5,-396"/>
<text text-anchor="middle" x="1165" y="-385.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1165" y="-376.6" font-family="Times-Roman" font-size="8.00">(*pageAlloc)</text>
<text text-anchor="middle" x="1165" y="-367.6" font-family="Times-Roman" font-size="8.00">free</text>
<text text-anchor="middle" x="1165" y="-358.6" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N57&#45;&gt;N62 -->
<g id="edge31" class="edge">
<title>N57&#45;&gt;N62</title>
<g id="a_edge31"><a xlink:title="runtime.(*mheap).freeSpanLocked &#45;&gt; runtime.(*pageAlloc).free (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1165,-460.86C1165,-445.33 1165,-423.96 1165,-406.43"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1168.5,-406.1 1165,-396.1 1161.5,-406.1 1168.5,-406.1"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.(*mheap).freeSpanLocked &#45;&gt; runtime.(*pageAlloc).free (0.02s)">
<text text-anchor="middle" x="1187" y="-423.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N58&#45;&gt;N38 -->
<g id="edge51" class="edge">
<title>N58&#45;&gt;N38</title>
<g id="a_edge51"><a xlink:title="runtime.(*mheap).nextSpanForSweep &#45;&gt; runtime.(*spanSet).pop (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M556,-831.91C556,-812.92 556,-784.63 556,-762.21"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="559.5,-762.06 556,-752.06 552.5,-762.06 559.5,-762.06"/>
</a>
</g>
<g id="a_edge51&#45;label"><a xlink:title="runtime.(*mheap).nextSpanForSweep &#45;&gt; runtime.(*spanSet).pop (0.01s)">
<text text-anchor="middle" x="578" y="-783.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N60 -->
<g id="node60" class="node">
<title>N60</title>
<g id="a_node60"><a xlink:title="runtime.(*mheap).reclaimChunk (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="945.5,-1019 854.5,-1019 854.5,-975 945.5,-975 945.5,-1019"/>
<text text-anchor="middle" x="900" y="-1008.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="900" y="-999.6" font-family="Times-Roman" font-size="8.00">(*mheap)</text>
<text text-anchor="middle" x="900" y="-990.6" font-family="Times-Roman" font-size="8.00">reclaimChunk</text>
<text text-anchor="middle" x="900" y="-981.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N59&#45;&gt;N60 -->
<g id="edge52" class="edge">
<title>N59&#45;&gt;N60</title>
<g id="a_edge52"><a xlink:title="runtime.(*mheap).reclaim &#45;&gt; runtime.(*mheap).reclaimChunk (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M925.67,-1117.75C915.05,-1109.91 904.87,-1099.96 899,-1088 890.13,-1069.94 890.44,-1047.29 892.93,-1029.23"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="896.41,-1029.63 894.6,-1019.19 889.51,-1028.48 896.41,-1029.63"/>
</a>
</g>
<g id="a_edge52&#45;label"><a xlink:title="runtime.(*mheap).reclaim &#45;&gt; runtime.(*mheap).reclaimChunk (0.01s)">
<text text-anchor="middle" x="921" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N60&#45;&gt;N13 -->
<g id="edge53" class="edge">
<title>N60&#45;&gt;N13</title>
<g id="a_edge53"><a xlink:title="runtime.(*mheap).reclaimChunk &#45;&gt; runtime.(*sweepLocked).sweep (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M899.48,-974.69C897.99,-955.06 893.14,-926.01 878,-906 875.65,-902.89 864.51,-896 850.82,-888.27"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="852.47,-885.18 842.03,-883.37 849.06,-891.3 852.47,-885.18"/>
</a>
</g>
<g id="a_edge53&#45;label"><a xlink:title="runtime.(*mheap).reclaimChunk &#45;&gt; runtime.(*sweepLocked).sweep (0.01s)">
<text text-anchor="middle" x="915" y="-917.3" 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.(*pallocBits).find (0.01s)">
<polygon fill="#edecec" stroke="#b2b1ac" points="1319.5,-748 1228.5,-748 1228.5,-704 1319.5,-704 1319.5,-748"/>
<text text-anchor="middle" x="1274" y="-737.6" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1274" y="-728.6" font-family="Times-Roman" font-size="8.00">(*pallocBits)</text>
<text text-anchor="middle" x="1274" y="-719.6" font-family="Times-Roman" font-size="8.00">find</text>
<text text-anchor="middle" x="1274" y="-710.6" font-family="Times-Roman" font-size="8.00">0 of 0.01s (0.63%)</text>
</a>
</g>
</g>
<!-- N61&#45;&gt;N63 -->
<g id="edge58" class="edge">
<title>N61&#45;&gt;N63</title>
<g id="a_edge58"><a xlink:title="runtime.(*pageAlloc).find &#45;&gt; runtime.(*pallocBits).find (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1211.55,-831.91C1223.78,-811.38 1242.47,-779.97 1256.22,-756.87"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1259.3,-758.54 1261.41,-748.16 1253.28,-754.96 1259.3,-758.54"/>
</a>
</g>
<g id="a_edge58&#45;label"><a xlink:title="runtime.(*pageAlloc).find &#45;&gt; runtime.(*pallocBits).find (0.01s)">
<text text-anchor="middle" x="1268" y="-783.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N62&#45;&gt;N21 -->
<g id="edge33" class="edge">
<title>N62&#45;&gt;N21</title>
<g id="a_edge33"><a xlink:title="runtime.(*pageAlloc).free &#45;&gt; runtime.(*pageAlloc).update (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1165,-351.82C1165,-334.55 1165,-309.89 1165,-290.33"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1168.5,-290.06 1165,-280.06 1161.5,-290.06 1168.5,-290.06"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="runtime.(*pageAlloc).free &#45;&gt; runtime.(*pageAlloc).update (0.02s)">
<text text-anchor="middle" x="1187" y="-309.3" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N63&#45;&gt;N37 -->
<g id="edge60" class="edge">
<title>N63&#45;&gt;N37</title>
<g id="a_edge60"><a xlink:title="runtime.(*pallocBits).find &#45;&gt; runtime.(*pallocBits).findSmallN (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1274,-703.81C1274,-686.58 1274,-661.9 1274,-641.7"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1277.5,-641.61 1274,-631.61 1270.5,-641.61 1277.5,-641.61"/>
</a>
</g>
<g id="a_edge60&#45;label"><a xlink:title="runtime.(*pallocBits).find &#45;&gt; runtime.(*pallocBits).findSmallN (0.01s)">
<text text-anchor="middle" x="1296" y="-661.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N64&#45;&gt;N2 -->
<g id="edge63" class="edge">
<title>N64&#45;&gt;N2</title>
<g id="a_edge63"><a xlink:title="runtime.callers &#45;&gt; runtime.systemstack (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M910.26,-1539.7C915.83,-1512.86 928.91,-1460.22 952,-1421 962.1,-1403.85 976.94,-1387.35 989.89,-1374.62"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="992.44,-1377.03 997.25,-1367.59 987.6,-1371.97 992.44,-1377.03"/>
</a>
</g>
<g id="a_edge63&#45;label"><a xlink:title="runtime.callers &#45;&gt; runtime.systemstack (0.01s)">
<text text-anchor="middle" x="974" y="-1443.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N65&#45;&gt;N14 -->
<g id="edge64" class="edge">
<title>N65&#45;&gt;N14</title>
<g id="a_edge64"><a xlink:title="runtime.callers.func1 &#45;&gt; runtime.gentraceback (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M755.82,-1229.45C751.86,-1227.83 747.89,-1226.32 744,-1225 621.41,-1183.28 465,-1270.5 465,-1141 465,-1141 465,-1141 465,-853 465,-818.81 444.49,-785.7 425.07,-762.01"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="427.7,-759.7 418.55,-754.35 422.37,-764.23 427.7,-759.7"/>
</a>
</g>
<g id="a_edge64&#45;label"><a xlink:title="runtime.callers.func1 &#45;&gt; runtime.gentraceback (0.01s)">
<text text-anchor="middle" x="487" y="-993.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N66&#45;&gt;N49 -->
<g id="edge65" class="edge">
<title>N66&#45;&gt;N49</title>
<g id="a_edge65"><a xlink:title="runtime.checkTimers &#45;&gt; runtime.nanotime (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1679.7,-1121.99C1696.05,-1098.23 1725.93,-1054.79 1745.63,-1026.16"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1748.6,-1028.01 1751.39,-1017.79 1742.84,-1024.04 1748.6,-1028.01"/>
</a>
</g>
<g id="a_edge65&#45;label"><a xlink:title="runtime.checkTimers &#45;&gt; runtime.nanotime (0.01s)">
<text text-anchor="middle" x="1748.5" y="-1076.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="1748.5" y="-1061.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N67&#45;&gt;N41 -->
<g id="edge66" class="edge">
<title>N67&#45;&gt;N41</title>
<g id="a_edge66"><a xlink:title="runtime.execute &#45;&gt; runtime.casgstatus (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1775,-1233.39C1775,-1216.67 1775,-1190.86 1775,-1170.77"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1778.5,-1170.58 1775,-1160.58 1771.5,-1170.58 1778.5,-1170.58"/>
</a>
</g>
<g id="a_edge66&#45;label"><a xlink:title="runtime.execute &#45;&gt; runtime.casgstatus (0.01s)">
<text text-anchor="middle" x="1797" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N68&#45;&gt;N2 -->
<g id="edge10" class="edge">
<title>N68&#45;&gt;N2</title>
<g id="a_edge10"><a xlink:title="runtime.gcAssistAlloc &#45;&gt; runtime.systemstack (0.08s)">
<path fill="none" stroke="#b2a085" d="M1011.66,-1539.82C1005.69,-1514.02 996.21,-1463.73 1001,-1421 1002.63,-1406.43 1006.1,-1390.49 1009.4,-1377.45"/>
<polygon fill="#b2a085" stroke="#b2a085" points="1012.8,-1378.26 1011.96,-1367.7 1006.03,-1376.48 1012.8,-1378.26"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="runtime.gcAssistAlloc &#45;&gt; runtime.systemstack (0.08s)">
<text text-anchor="middle" x="1023" y="-1443.3" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N70 -->
<g id="node70" class="node">
<title>N70</title>
<g id="a_node70"><a xlink:title="runtime.gcAssistAlloc1 (0.08s)">
<polygon fill="#edeae7" stroke="#b2a085" points="434.5,-1158 343.5,-1158 343.5,-1122 434.5,-1122 434.5,-1158"/>
<text text-anchor="middle" x="389" y="-1147.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="389" y="-1138.1" font-family="Times-Roman" font-size="8.00">gcAssistAlloc1</text>
<text text-anchor="middle" x="389" y="-1129.1" font-family="Times-Roman" font-size="8.00">0 of 0.08s (5.03%)</text>
</a>
</g>
</g>
<!-- N69&#45;&gt;N70 -->
<g id="edge11" class="edge">
<title>N69&#45;&gt;N70</title>
<g id="a_edge11"><a xlink:title="runtime.gcAssistAlloc.func1 &#45;&gt; runtime.gcAssistAlloc1 (0.08s)">
<path fill="none" stroke="#b2a085" d="M648.53,-1229.42C644.04,-1227.7 639.48,-1226.17 635,-1225 585.84,-1212.11 446.14,-1239.42 407,-1207 395.7,-1197.64 391.12,-1181.95 389.39,-1168.22"/>
<polygon fill="#b2a085" stroke="#b2a085" points="392.88,-1167.91 388.57,-1158.23 385.91,-1168.48 392.88,-1167.91"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="runtime.gcAssistAlloc.func1 &#45;&gt; runtime.gcAssistAlloc1 (0.08s)">
<text text-anchor="middle" x="429" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N70&#45;&gt;N18 -->
<g id="edge12" class="edge">
<title>N70&#45;&gt;N18</title>
<g id="a_edge12"><a xlink:title="runtime.gcAssistAlloc1 &#45;&gt; runtime.gcDrainN (0.08s)">
<path fill="none" stroke="#b2a085" d="M388.28,-1121.99C387.25,-1097.96 385.38,-1053.81 384.16,-1025.2"/>
<polygon fill="#b2a085" stroke="#b2a085" points="387.65,-1024.91 383.73,-1015.07 380.65,-1025.21 387.65,-1024.91"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="runtime.gcAssistAlloc1 &#45;&gt; runtime.gcDrainN (0.08s)">
<text text-anchor="middle" x="409" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.08s</text>
</a>
</g>
</g>
<!-- N71&#45;&gt;N17 -->
<g id="edge16" class="edge">
<title>N71&#45;&gt;N17</title>
<g id="a_edge16"><a xlink:title="runtime.gcBgMarkWorker.func2 &#45;&gt; runtime.gcDrain (0.07s)">
<path fill="none" stroke="#b2a38b" d="M361.57,-1229.44C351.57,-1222.81 340.98,-1215.09 332,-1207 318.45,-1194.8 305.3,-1179.21 295.26,-1166.24"/>
<polygon fill="#b2a38b" stroke="#b2a38b" points="297.97,-1164.02 289.14,-1158.16 292.39,-1168.24 297.97,-1164.02"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="runtime.gcBgMarkWorker.func2 &#45;&gt; runtime.gcDrain (0.07s)">
<text text-anchor="middle" x="354" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.07s</text>
</a>
</g>
</g>
<!-- N72&#45;&gt;N24 -->
<g id="edge27" class="edge">
<title>N72&#45;&gt;N24</title>
<g id="a_edge27"><a xlink:title="runtime.gcMarkDone.func1 &#45;&gt; runtime.forEachP (0.03s)">
<path fill="none" stroke="#b2ada1" d="M897.97,-1229.39C889.58,-1211.71 877.56,-1186.4 868.53,-1167.39"/>
<polygon fill="#b2ada1" stroke="#b2ada1" points="871.57,-1165.63 864.12,-1158.09 865.25,-1168.63 871.57,-1165.63"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime.gcMarkDone.func1 &#45;&gt; runtime.forEachP (0.03s)">
<text text-anchor="middle" x="909" y="-1195.8" font-family="Times-Roman" font-size="14.00"> 0.03s</text>
</a>
</g>
</g>
<!-- N73&#45;&gt;N32 -->
<g id="edge75" class="edge">
<title>N73&#45;&gt;N32</title>
<g id="a_edge75"><a xlink:title="runtime.gcMarkDone.func1.1 &#45;&gt; runtime.(*gcWork).dispose (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M799.41,-970.47C806.56,-951.35 818.19,-925.29 834,-906 839.77,-898.96 846.71,-892.35 853.92,-886.37"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="856.12,-889.09 861.8,-880.15 851.78,-883.6 856.12,-889.09"/>
</a>
</g>
<g id="a_edge75&#45;label"><a xlink:title="runtime.gcMarkDone.func1.1 &#45;&gt; runtime.(*gcWork).dispose (0.01s)">
<text text-anchor="middle" x="856" y="-917.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N74&#45;&gt;N2 -->
<g id="edge76" class="edge">
<title>N74&#45;&gt;N2</title>
<g id="a_edge76"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1301.65,-1539.84C1283.93,-1498.85 1239.37,-1397.89 1226,-1388 1185.47,-1358.02 1163.61,-1378.97 1114,-1370 1101.46,-1367.73 1088.05,-1365.14 1075.32,-1362.61"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1075.77,-1359.13 1065.28,-1360.59 1074.4,-1365.99 1075.77,-1359.13"/>
</a>
</g>
<g id="a_edge76&#45;label"><a xlink:title="runtime.gcStart &#45;&gt; runtime.systemstack (0.01s)">
<text text-anchor="middle" x="1294" y="-1443.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N75&#45;&gt;N53 -->
<g id="edge78" class="edge">
<title>N75&#45;&gt;N53</title>
<g id="a_edge78"><a xlink:title="runtime.getStackMap ... runtime.pcvalue (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M430,-464.81C430,-448.66 430,-424.15 430,-404.82"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="433.5,-404.69 430,-394.69 426.5,-404.69 433.5,-404.69"/>
</a>
</g>
<g id="a_edge78&#45;label"><a xlink:title="runtime.getStackMap ... runtime.pcvalue (0.01s)">
<text text-anchor="middle" x="452" y="-423.8" 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.goschedImpl (0.02s)">
<polygon fill="#edeceb" stroke="#b2afa7" points="1711.5,-1465 1620.5,-1465 1620.5,-1429 1711.5,-1429 1711.5,-1465"/>
<text text-anchor="middle" x="1666" y="-1454.1" font-family="Times-Roman" font-size="8.00">runtime</text>
<text text-anchor="middle" x="1666" y="-1445.1" font-family="Times-Roman" font-size="8.00">goschedImpl</text>
<text text-anchor="middle" x="1666" y="-1436.1" font-family="Times-Roman" font-size="8.00">0 of 0.02s (1.26%)</text>
</a>
</g>
</g>
<!-- N76&#45;&gt;N22 -->
<g id="edge40" class="edge">
<title>N76&#45;&gt;N22</title>
<g id="a_edge40"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1666,-1428.93C1666,-1414.76 1666,-1394.33 1666,-1377.88"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1669.5,-1377.75 1666,-1367.75 1662.5,-1377.75 1669.5,-1377.75"/>
</a>
</g>
<g id="a_edge40&#45;label"><a xlink:title="runtime.goschedImpl &#45;&gt; runtime.schedule (0.02s)">
<text text-anchor="middle" x="1688" y="-1391.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N77&#45;&gt;N76 -->
<g id="edge41" class="edge">
<title>N77&#45;&gt;N76</title>
<g id="a_edge41"><a xlink:title="runtime.gosched_m &#45;&gt; runtime.goschedImpl (0.02s)">
<path fill="none" stroke="#b2afa7" d="M1666,-1539.97C1666,-1522.71 1666,-1495.74 1666,-1475.46"/>
<polygon fill="#b2afa7" stroke="#b2afa7" points="1669.5,-1475.27 1666,-1465.27 1662.5,-1475.27 1669.5,-1475.27"/>
</a>
</g>
<g id="a_edge41&#45;label"><a xlink:title="runtime.gosched_m &#45;&gt; runtime.goschedImpl (0.02s)">
<text text-anchor="middle" x="1688" y="-1494.8" font-family="Times-Roman" font-size="14.00"> 0.02s</text>
</a>
</g>
</g>
<!-- N78&#45;&gt;N1 -->
<g id="edge79" class="edge">
<title>N78&#45;&gt;N1</title>
<g id="a_edge79"><a xlink:title="runtime.heapBits.initSpan &#45;&gt; runtime.memclrNoHeapPointers (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M1476.74,-1424.67C1470.65,-1380.67 1459.58,-1276.87 1476,-1192 1485.76,-1141.57 1508.56,-1087.61 1527.01,-1049.44"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1530.33,-1050.61 1531.59,-1040.09 1524.05,-1047.53 1530.33,-1050.61"/>
</a>
</g>
<g id="a_edge79&#45;label"><a xlink:title="runtime.heapBits.initSpan &#45;&gt; runtime.memclrNoHeapPointers (0.01s)">
<text text-anchor="middle" x="1493" y="-1247.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
<!-- N79&#45;&gt;N40 -->
<g id="edge80" class="edge">
<title>N79&#45;&gt;N40</title>
<g id="a_edge80"><a xlink:title="runtime.heapBits.next &#45;&gt; runtime.add1 (0.01s)">
<path fill="none" stroke="#b2b1ac" d="M147.82,-583.23C147.66,-564.04 147.43,-535.61 147.25,-514.09"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="150.75,-513.82 147.16,-503.85 143.75,-513.88 150.75,-513.82"/>
</a>
</g>
<g id="a_edge80&#45;label"><a xlink:title="runtime.heapBits.next &#45;&gt; runtime.add1 (0.01s)">
<text text-anchor="middle" x="174.5" y="-549.8" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
<text text-anchor="middle" x="174.5" y="-534.8" font-family="Times-Roman" font-size="14.00"> (inline)</text>
</a>
</g>
</g>
<!-- N80&#45;&gt;N45 -->
<g id="edge81" class="edge">
<title>N80&#45;&gt;N45</title>
<g id="a_edge81"><a xlink:title="runtime.mPark ... runtime.futexsleep (0.01s)">
<path fill="none" stroke="#b2b1ac" stroke-dasharray="1,5" d="M1146.18,-1121.99C1118.54,-1097.01 1066.84,-1050.28 1035.41,-1021.87"/>
<polygon fill="#b2b1ac" stroke="#b2b1ac" points="1037.65,-1019.18 1027.88,-1015.07 1032.96,-1024.37 1037.65,-1019.18"/>
</a>
</g>
<g id="a_edge81&#45;label"><a xlink:title="runtime.mPark ... runtime.futexsleep (0.01s)">
<text text-anchor="middle" x="1128" y="-1069.3" font-family="Times-Roman" font-size="14.00"> 0.01s</text>
</a>
</g>
</g>
</g>
</g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment