Skip to content

Instantly share code, notes, and snippets.

@tumdum
Last active September 26, 2016 20:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tumdum/a10e1fea3c8edf9e7f04719ce4714214 to your computer and use it in GitHub Desktop.
Save tumdum/a10e1fea3c8edf9e7f04719ce4714214 to your computer and use it in GitHub Desktop.
Cost of stating files while walking linux kernel tree 4.7.5
package main
import (
"fmt"
"log"
"os"
"path/filepath"
"runtime/pprof"
)
// #include <dirent.h>
import "C"
type FileInfo struct {
Name string
Type uint8
}
func (f FileInfo) IsDirectory() bool {
return f.Type&C.DT_DIR != 0
}
func (f FileInfo) IsSymbolicLink() bool {
return f.Type&C.DT_LNK != 0
}
func (f FileInfo) IsRegularFile() bool {
return f.Type&C.DT_REG != 0
}
type WalkFunc func(path string, info FileInfo)
func Walk(path string, walkFunc WalkFunc) error {
f, err := os.Open(path)
if err != nil {
return err
}
dir := C.fdopendir(C.int(f.Fd()))
for {
dirent := C.readdir(dir)
if dirent == nil {
break
}
info := FileInfo{C.GoString((*C.char)(&dirent.d_name[0])), uint8(dirent.d_type)}
if info.Name == "." || info.Name == ".." {
continue
}
fullPath := path + "/" + info.Name
walkFunc(fullPath, info)
if info.IsDirectory() {
Walk(fullPath, walkFunc)
}
}
f.Close()
return nil
}
func main() {
if len(os.Args) != 2 {
log.Fatal("need one arg")
}
f, err := os.Create(os.Args[1] + ".prof")
if err != nil {
log.Fatal(err)
}
pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
if os.Args[1] == "cgo" {
Walk(".", func(name string, info FileInfo) {
fmt.Println(name)
})
} else if os.Args[1] == "pure" {
filepath.Walk(".", func(name string, info os.FileInfo, err error) error {
fmt.Println(name)
return nil
})
}
}
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.38.0 (20140413.2041)
-->
<!-- Title: cgowalk Pages: 1 -->
<svg width="477" height="661" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<script type="text/ecmascript"><![CDATA[
/**
* SVGPan library 1.2.1
* ======================
*
* Given an unique existing element with id "viewport" (or when missing, the first g
* element), including the 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.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-2010 Andrea Leofreddi <a.leofreddi@itcharm.com>. 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.
*
* THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``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 Andrea Leofreddi 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)
/// <====
/// END OF CONFIGURATION
var root = document.documentElement;
var state = 'none', svgRoot, 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(typeof(svgRoot) == "undefined") {
var g = null;
g = root.getElementById("viewport");
if(g == null)
g = root.getElementsByTagName('g')[0];
if(g == null)
alert('Unable to obtain SVG root element');
setCTM(g, g.getCTM());
g.removeAttribute("viewBox");
svgRoot = g;
}
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 / 3600; // Chrome/Safari
else
delta = evt.detail / -90; // Mozilla
var z = 1 + delta; // Zoom factor: 0.9/1.1
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 1318)">
<title>cgowalk</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1318 951,-1318 951,4 -4,4"/>
<g id="clust1" class="cluster"><title>cluster_L</title>
<polygon fill="none" stroke="black" points="8,-1177 8,-1306 438,-1306 438,-1177 8,-1177"/>
</g>
<!-- L -->
<g id="node1" class="node"><title>L</title>
<polygon fill="#f8f8f8" stroke="black" points="430,-1298 16,-1298 16,-1185 430,-1185 430,-1298"/>
<text text-anchor="start" x="24" y="-1268.4" font-family="Times,serif" font-size="32.00">File: cgowalk</text>
<text text-anchor="start" x="24" y="-1233.4" font-family="Times,serif" font-size="32.00">Type: cpu</text>
<text text-anchor="start" x="24" y="-1198.4" font-family="Times,serif" font-size="32.00">290ms of 290ms total ( &#160;100%)</text>
</g>
<!-- N1 -->
<g id="node2" class="node"><title>N1</title>
<g id="a_node2"><a xlink:title="runtime.cgocall (110ms)">
<polygon fill="#f8f8f8" stroke="black" points="429.5,-767 232.5,-767 232.5,-681 429.5,-681 429.5,-767"/>
<text text-anchor="middle" x="331" y="-743.8" font-family="Times,serif" font-size="24.00">runtime.cgocall</text>
<text text-anchor="middle" x="331" y="-717.8" font-family="Times,serif" font-size="24.00">90ms(31.03%)</text>
<text text-anchor="middle" x="331" y="-691.8" font-family="Times,serif" font-size="24.00">of 110ms(37.93%)</text>
</a>
</g>
</g>
<!-- N9 -->
<g id="node10" class="node"><title>N9</title>
<g id="a_node10"><a xlink:title="runtime.deferreturn (20ms)">
<polygon fill="#f8f8f8" stroke="black" points="392.5,-630 269.5,-630 269.5,-577 392.5,-577 392.5,-630"/>
<text text-anchor="middle" x="331" y="-614.8" font-family="Times,serif" font-size="14.00">runtime.deferreturn</text>
<text text-anchor="middle" x="331" y="-599.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
<text text-anchor="middle" x="331" y="-584.8" font-family="Times,serif" font-size="14.00">of 20ms(6.90%)</text>
</a>
</g>
</g>
<!-- N1&#45;&gt;N9 -->
<g id="edge17" class="edge"><title>N1&#45;&gt;N9</title>
<g id="a_edge17"><a xlink:title="runtime.cgocall &#45;&gt; runtime.deferreturn (20ms)">
<path fill="none" stroke="black" d="M331,-680.888C331,-667.687 331,-653.244 331,-640.505"/>
<polygon fill="black" stroke="black" points="334.5,-640.27 331,-630.27 327.5,-640.27 334.5,-640.27"/>
</a>
</g>
<g id="a_edge17&#45;label"><a xlink:title="runtime.cgocall &#45;&gt; runtime.deferreturn (20ms)">
<text text-anchor="middle" x="348" y="-651.8" font-family="Times,serif" font-size="14.00"> 20ms</text>
</a>
</g>
</g>
<!-- N2 -->
<g id="node3" class="node"><title>N2</title>
<g id="a_node3"><a xlink:title="syscall.Syscall (80ms)">
<polygon fill="#f8f8f8" stroke="black" points="577,-172 401,-172 401,-89 577,-89 577,-172"/>
<text text-anchor="middle" x="489" y="-149.6" font-family="Times,serif" font-size="23.00">syscall.Syscall</text>
<text text-anchor="middle" x="489" y="-124.6" font-family="Times,serif" font-size="23.00">70ms(24.14%)</text>
<text text-anchor="middle" x="489" y="-99.6" font-family="Times,serif" font-size="23.00">of 80ms(27.59%)</text>
</a>
</g>
</g>
<!-- N10 -->
<g id="node11" class="node"><title>N10</title>
<g id="a_node11"><a xlink:title="runtime.exitsyscall (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="549,-38 429,-38 429,-0 549,-0 549,-38"/>
<text text-anchor="middle" x="489" y="-22.8" font-family="Times,serif" font-size="14.00">runtime.exitsyscall</text>
<text text-anchor="middle" x="489" y="-7.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N2&#45;&gt;N10 -->
<g id="edge34" class="edge"><title>N2&#45;&gt;N10</title>
<g id="a_edge34"><a xlink:title="syscall.Syscall &#45;&gt; runtime.exitsyscall (10ms)">
<path fill="none" stroke="black" d="M489,-88.7262C489,-75.2759 489,-60.6195 489,-48.3097"/>
<polygon fill="black" stroke="black" points="492.5,-48.1854 489,-38.1854 485.5,-48.1854 492.5,-48.1854"/>
</a>
</g>
<g id="a_edge34&#45;label"><a xlink:title="syscall.Syscall &#45;&gt; runtime.exitsyscall (10ms)">
<text text-anchor="middle" x="506" y="-59.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N3 -->
<g id="node4" class="node"><title>N3</title>
<g id="a_node4"><a xlink:title="fmt.(*pp).doPrintln (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="339.5,-526 216.5,-526 216.5,-488 339.5,-488 339.5,-526"/>
<text text-anchor="middle" x="278" y="-510.8" font-family="Times,serif" font-size="14.00">fmt.(*pp).doPrintln</text>
<text text-anchor="middle" x="278" y="-495.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N4 -->
<g id="node5" class="node"><title>N4</title>
<g id="a_node5"><a xlink:title="fmt.Fprintln (120ms)">
<polygon fill="#f8f8f8" stroke="black" points="549,-630 429,-630 429,-577 549,-577 549,-630"/>
<text text-anchor="middle" x="489" y="-614.8" font-family="Times,serif" font-size="14.00">fmt.Fprintln</text>
<text text-anchor="middle" x="489" y="-599.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
<text text-anchor="middle" x="489" y="-584.8" font-family="Times,serif" font-size="14.00">of 120ms(41.38%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N3 -->
<g id="edge19" class="edge"><title>N4&#45;&gt;N3</title>
<g id="a_edge19"><a xlink:title="fmt.Fprintln &#45;&gt; fmt.(*pp).doPrintln (10ms)">
<path fill="none" stroke="black" d="M431.9,-576.927C399.382,-562.363 359.032,-544.291 327.806,-530.307"/>
<polygon fill="black" stroke="black" points="328.985,-526.999 318.427,-526.106 326.123,-533.388 328.985,-526.999"/>
</a>
</g>
<g id="a_edge19&#45;label"><a xlink:title="fmt.Fprintln &#45;&gt; fmt.(*pp).doPrintln (10ms)">
<text text-anchor="middle" x="407" y="-547.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N17 -->
<g id="node18" class="node"><title>N17</title>
<g id="a_node18"><a xlink:title="fmt.newPrinter (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="432,-525 358,-525 358,-489 432,-489 432,-525"/>
<text text-anchor="middle" x="395" y="-509.6" font-family="Times,serif" font-size="8.00">fmt.newPrinter</text>
<text text-anchor="middle" x="395" y="-500.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N17 -->
<g id="edge20" class="edge"><title>N4&#45;&gt;N17</title>
<g id="a_edge20"><a xlink:title="fmt.Fprintln &#45;&gt; fmt.newPrinter (10ms)">
<path fill="none" stroke="black" d="M463.314,-576.677C449.555,-562.845 432.703,-545.903 419.18,-532.308"/>
<polygon fill="black" stroke="black" points="421.584,-529.762 412.05,-525.141 416.621,-534.699 421.584,-529.762"/>
</a>
</g>
<g id="a_edge20&#45;label"><a xlink:title="fmt.Fprintln &#45;&gt; fmt.newPrinter (10ms)">
<text text-anchor="middle" x="462" y="-547.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N22 -->
<g id="node23" class="node"><title>N22</title>
<g id="a_node23"><a xlink:title="os.(*File).Write (90ms)">
<polygon fill="#f8f8f8" stroke="black" points="528,-525 450,-525 450,-489 528,-489 528,-525"/>
<text text-anchor="middle" x="489" y="-509.6" font-family="Times,serif" font-size="8.00">os.(*File).Write</text>
<text text-anchor="middle" x="489" y="-500.6" font-family="Times,serif" font-size="8.00">0 of 90ms(31.03%)</text>
</a>
</g>
</g>
<!-- N4&#45;&gt;N22 -->
<g id="edge7" class="edge"><title>N4&#45;&gt;N22</title>
<g id="a_edge7"><a xlink:title="fmt.Fprintln &#45;&gt; os.(*File).Write (90ms)">
<path fill="none" stroke="black" stroke-width="2" d="M489,-576.677C489,-563.869 489,-548.396 489,-535.382"/>
<polygon fill="black" stroke="black" stroke-width="2" points="492.5,-535.141 489,-525.141 485.5,-535.141 492.5,-535.141"/>
</a>
</g>
<g id="a_edge7&#45;label"><a xlink:title="fmt.Fprintln &#45;&gt; os.(*File).Write (90ms)">
<text text-anchor="middle" x="506" y="-547.8" font-family="Times,serif" font-size="14.00"> 90ms</text>
</a>
</g>
</g>
<!-- N5 -->
<g id="node6" class="node"><title>N5</title>
<g id="a_node6"><a xlink:title="main.Walk (280ms)">
<polygon fill="#f8f8f8" stroke="black" points="549,-958 429,-958 429,-905 549,-905 549,-958"/>
<text text-anchor="middle" x="489" y="-942.8" font-family="Times,serif" font-size="14.00">main.Walk</text>
<text text-anchor="middle" x="489" y="-927.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
<text text-anchor="middle" x="489" y="-912.8" font-family="Times,serif" font-size="14.00">of 280ms(96.55%)</text>
</a>
</g>
</g>
<!-- N18 -->
<g id="node19" class="node"><title>N18</title>
<g id="a_node19"><a xlink:title="main._Cfunc_fdopendir (40ms)">
<polygon fill="#f8f8f8" stroke="black" points="326,-854 234,-854 234,-818 326,-818 326,-854"/>
<text text-anchor="middle" x="280" y="-838.6" font-family="Times,serif" font-size="8.00">main._Cfunc_fdopendir</text>
<text text-anchor="middle" x="280" y="-829.6" font-family="Times,serif" font-size="8.00">0 of 40ms(13.79%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N18 -->
<g id="edge14" class="edge"><title>N5&#45;&gt;N18</title>
<g id="a_edge14"><a xlink:title="main.Walk &#45;&gt; main._Cfunc_fdopendir (40ms)">
<path fill="none" stroke="black" d="M428.801,-904.888C415.344,-899.074 401.161,-892.879 388,-887 367.411,-877.802 344.747,-867.359 325.52,-858.404"/>
<polygon fill="black" stroke="black" points="326.924,-855.197 316.382,-854.14 323.964,-861.54 326.924,-855.197"/>
</a>
</g>
<g id="a_edge14&#45;label"><a xlink:title="main.Walk &#45;&gt; main._Cfunc_fdopendir (40ms)">
<text text-anchor="middle" x="405" y="-875.8" font-family="Times,serif" font-size="14.00"> 40ms</text>
</a>
</g>
</g>
<!-- N19 -->
<g id="node20" class="node"><title>N19</title>
<g id="a_node20"><a xlink:title="main._Cfunc_readdir (70ms)">
<polygon fill="#f8f8f8" stroke="black" points="429.5,-854 344.5,-854 344.5,-818 429.5,-818 429.5,-854"/>
<text text-anchor="middle" x="387" y="-838.6" font-family="Times,serif" font-size="8.00">main._Cfunc_readdir</text>
<text text-anchor="middle" x="387" y="-829.6" font-family="Times,serif" font-size="8.00">0 of 70ms(24.14%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N19 -->
<g id="edge12" class="edge"><title>N5&#45;&gt;N19</title>
<g id="a_edge12"><a xlink:title="main.Walk &#45;&gt; main._Cfunc_readdir (70ms)">
<path fill="none" stroke="black" stroke-width="2" d="M461.128,-904.951C446.297,-891.356 428.155,-874.726 413.531,-861.321"/>
<polygon fill="black" stroke="black" stroke-width="2" points="415.549,-858.422 405.812,-854.245 410.819,-863.582 415.549,-858.422"/>
</a>
</g>
<g id="a_edge12&#45;label"><a xlink:title="main.Walk &#45;&gt; main._Cfunc_readdir (70ms)">
<text text-anchor="middle" x="459" y="-875.8" font-family="Times,serif" font-size="14.00"> 70ms</text>
</a>
</g>
</g>
<!-- N21 -->
<g id="node22" class="node"><title>N21</title>
<g id="a_node22"><a xlink:title="main.main.func1 (120ms)">
<polygon fill="#f8f8f8" stroke="black" points="530,-854 448,-854 448,-818 530,-818 530,-854"/>
<text text-anchor="middle" x="489" y="-838.6" font-family="Times,serif" font-size="8.00">main.main.func1</text>
<text text-anchor="middle" x="489" y="-829.6" font-family="Times,serif" font-size="8.00">0 of 120ms(41.38%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N21 -->
<g id="edge5" class="edge"><title>N5&#45;&gt;N21</title>
<g id="a_edge5"><a xlink:title="main.Walk &#45;&gt; main.main.func1 (120ms)">
<path fill="none" stroke="black" stroke-width="3" d="M489,-904.951C489,-892.363 489,-877.173 489,-864.35"/>
<polygon fill="black" stroke="black" stroke-width="3" points="492.5,-864.245 489,-854.245 485.5,-864.245 492.5,-864.245"/>
</a>
</g>
<g id="a_edge5&#45;label"><a xlink:title="main.Walk &#45;&gt; main.main.func1 (120ms)">
<text text-anchor="middle" x="509.5" y="-875.8" font-family="Times,serif" font-size="14.00"> 120ms</text>
</a>
</g>
</g>
<!-- N24 -->
<g id="node25" class="node"><title>N24</title>
<g id="a_node25"><a xlink:title="os.Open (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="622,-854 548,-854 548,-818 622,-818 622,-854"/>
<text text-anchor="middle" x="585" y="-838.6" font-family="Times,serif" font-size="8.00">os.Open</text>
<text text-anchor="middle" x="585" y="-829.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N24 -->
<g id="edge22" class="edge"><title>N5&#45;&gt;N24</title>
<g id="a_edge22"><a xlink:title="main.Walk &#45;&gt; os.Open (10ms)">
<path fill="none" stroke="black" d="M515.68,-904.769C521.713,-898.935 528.083,-892.76 534,-887 542.571,-878.656 551.924,-869.501 560.253,-861.33"/>
<polygon fill="black" stroke="black" points="562.878,-863.658 567.563,-854.155 557.975,-858.662 562.878,-863.658"/>
</a>
</g>
<g id="a_edge22&#45;label"><a xlink:title="main.Walk &#45;&gt; os.Open (10ms)">
<text text-anchor="middle" x="566" y="-875.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N28 -->
<g id="node29" class="node"><title>N28</title>
<g id="a_node29"><a xlink:title="runtime.cgoCheckPointer (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="738,-854 640,-854 640,-818 738,-818 738,-854"/>
<text text-anchor="middle" x="689" y="-838.6" font-family="Times,serif" font-size="8.00">runtime.cgoCheckPointer</text>
<text text-anchor="middle" x="689" y="-829.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N28 -->
<g id="edge23" class="edge"><title>N5&#45;&gt;N28</title>
<g id="a_edge23"><a xlink:title="main.Walk &#45;&gt; runtime.cgoCheckPointer (10ms)">
<path fill="none" stroke="black" d="M547.463,-904.985C560.518,-899.167 574.265,-892.945 587,-887 606.326,-877.978 627.527,-867.655 645.57,-858.741"/>
<polygon fill="black" stroke="black" points="647.284,-861.798 654.691,-854.222 644.176,-855.526 647.284,-861.798"/>
</a>
</g>
<g id="a_edge23&#45;label"><a xlink:title="main.Walk &#45;&gt; runtime.cgoCheckPointer (10ms)">
<text text-anchor="middle" x="636" y="-875.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N29 -->
<g id="node30" class="node"><title>N29</title>
<g id="a_node30"><a xlink:title="runtime.concatstring3 (20ms)">
<polygon fill="#f8f8f8" stroke="black" points="851,-854 765,-854 765,-818 851,-818 851,-854"/>
<text text-anchor="middle" x="808" y="-838.6" font-family="Times,serif" font-size="8.00">runtime.concatstring3</text>
<text text-anchor="middle" x="808" y="-829.6" font-family="Times,serif" font-size="8.00">0 of 20ms(6.90%)</text>
</a>
</g>
</g>
<!-- N5&#45;&gt;N29 -->
<g id="edge16" class="edge"><title>N5&#45;&gt;N29</title>
<g id="a_edge16"><a xlink:title="main.Walk &#45;&gt; runtime.concatstring3 (20ms)">
<path fill="none" stroke="black" d="M549.136,-915.958C581.282,-907.926 621.453,-897.475 657,-887 689.961,-877.287 726.555,-865.203 755.463,-855.348"/>
<polygon fill="black" stroke="black" points="756.628,-858.649 764.956,-852.098 754.361,-852.026 756.628,-858.649"/>
</a>
</g>
<g id="a_edge16&#45;label"><a xlink:title="main.Walk &#45;&gt; runtime.concatstring3 (20ms)">
<text text-anchor="middle" x="720" y="-875.8" font-family="Times,serif" font-size="14.00"> 20ms</text>
</a>
</g>
</g>
<!-- N6 -->
<g id="node7" class="node"><title>N6</title>
<g id="a_node7"><a xlink:title="runtime.assertI2T2 (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="432,-348 312,-348 312,-310 432,-310 432,-348"/>
<text text-anchor="middle" x="372" y="-332.8" font-family="Times,serif" font-size="14.00">runtime.assertI2T2</text>
<text text-anchor="middle" x="372" y="-317.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N7 -->
<g id="node8" class="node"><title>N7</title>
<g id="a_node8"><a xlink:title="runtime.cgoIsGoPointer (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="807,-622.5 659,-622.5 659,-584.5 807,-584.5 807,-622.5"/>
<text text-anchor="middle" x="733" y="-607.3" font-family="Times,serif" font-size="14.00">runtime.cgoIsGoPointer</text>
<text text-anchor="middle" x="733" y="-592.3" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N8 -->
<g id="node9" class="node"><title>N8</title>
<g id="a_node9"><a xlink:title="runtime.concatstrings (20ms)">
<polygon fill="#f8f8f8" stroke="black" points="885,-750.5 751,-750.5 751,-697.5 885,-697.5 885,-750.5"/>
<text text-anchor="middle" x="818" y="-735.3" font-family="Times,serif" font-size="14.00">runtime.concatstrings</text>
<text text-anchor="middle" x="818" y="-720.3" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
<text text-anchor="middle" x="818" y="-705.3" font-family="Times,serif" font-size="14.00">of 20ms(6.90%)</text>
</a>
</g>
</g>
<!-- N12 -->
<g id="node13" class="node"><title>N12</title>
<g id="a_node13"><a xlink:title="runtime.memmove (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="947,-622.5 825,-622.5 825,-584.5 947,-584.5 947,-622.5"/>
<text text-anchor="middle" x="886" y="-607.3" font-family="Times,serif" font-size="14.00">runtime.memmove</text>
<text text-anchor="middle" x="886" y="-592.3" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N8&#45;&gt;N12 -->
<g id="edge30" class="edge"><title>N8&#45;&gt;N12</title>
<g id="a_edge30"><a xlink:title="runtime.concatstrings &#45;&gt; runtime.memmove (10ms)">
<path fill="none" stroke="black" d="M832.755,-697.287C843.883,-677.895 859.112,-651.357 870.433,-631.628"/>
<polygon fill="black" stroke="black" points="873.544,-633.238 875.486,-622.823 867.473,-629.754 873.544,-633.238"/>
</a>
</g>
<g id="a_edge30&#45;label"><a xlink:title="runtime.concatstrings &#45;&gt; runtime.memmove (10ms)">
<text text-anchor="middle" x="878" y="-651.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N11 -->
<g id="node12" class="node"><title>N11</title>
<g id="a_node12"><a xlink:title="runtime.getcallersp (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="198,-526 76,-526 76,-488 198,-488 198,-526"/>
<text text-anchor="middle" x="137" y="-510.8" font-family="Times,serif" font-size="14.00">runtime.getcallersp</text>
<text text-anchor="middle" x="137" y="-495.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N9&#45;&gt;N11 -->
<g id="edge31" class="edge"><title>N9&#45;&gt;N11</title>
<g id="a_edge31"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (10ms)">
<path fill="none" stroke="black" d="M269.419,-579.926C253.736,-573.634 237.062,-566.463 222,-559 205.655,-550.9 188.272,-540.764 173.514,-531.667"/>
<polygon fill="black" stroke="black" points="175.033,-528.49 164.697,-526.165 171.327,-534.428 175.033,-528.49"/>
</a>
</g>
<g id="a_edge31&#45;label"><a xlink:title="runtime.deferreturn &#45;&gt; runtime.getcallersp (10ms)">
<text text-anchor="middle" x="239" y="-547.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N13 -->
<g id="node14" class="node"><title>N13</title>
<g id="a_node14"><a xlink:title="runtime.systemstack (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="677.5,-1134 548.5,-1134 548.5,-1096 677.5,-1096 677.5,-1134"/>
<text text-anchor="middle" x="613" y="-1118.8" font-family="Times,serif" font-size="14.00">runtime.systemstack</text>
<text text-anchor="middle" x="613" y="-1103.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N14 -->
<g id="node15" class="node"><title>N14</title>
<g id="a_node15"><a xlink:title="sync.(*Pool).pin (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="293.5,-348 186.5,-348 186.5,-310 293.5,-310 293.5,-348"/>
<text text-anchor="middle" x="240" y="-332.8" font-family="Times,serif" font-size="14.00">sync.(*Pool).pin</text>
<text text-anchor="middle" x="240" y="-317.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N15 -->
<g id="node16" class="node"><title>N15</title>
<g id="a_node16"><a xlink:title="syscall.Syscall6 (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="655.5,-437 552.5,-437 552.5,-399 655.5,-399 655.5,-437"/>
<text text-anchor="middle" x="604" y="-421.8" font-family="Times,serif" font-size="14.00">syscall.Syscall6</text>
<text text-anchor="middle" x="604" y="-406.8" font-family="Times,serif" font-size="14.00">10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N16 -->
<g id="node17" class="node"><title>N16</title>
<g id="a_node17"><a xlink:title="fmt.Println (120ms)">
<polygon fill="#f8f8f8" stroke="black" points="530,-742 448,-742 448,-706 530,-706 530,-742"/>
<text text-anchor="middle" x="489" y="-726.6" font-family="Times,serif" font-size="8.00">fmt.Println</text>
<text text-anchor="middle" x="489" y="-717.6" font-family="Times,serif" font-size="8.00">0 of 120ms(41.38%)</text>
</a>
</g>
</g>
<!-- N16&#45;&gt;N4 -->
<g id="edge4" class="edge"><title>N16&#45;&gt;N4</title>
<g id="a_edge4"><a xlink:title="fmt.Println &#45;&gt; fmt.Fprintln (120ms)">
<path fill="none" stroke="black" stroke-width="3" d="M489,-705.769C489,-688.668 489,-661.946 489,-640.245"/>
<polygon fill="black" stroke="black" stroke-width="3" points="492.5,-640.059 489,-630.059 485.5,-640.059 492.5,-640.059"/>
</a>
</g>
<g id="a_edge4&#45;label"><a xlink:title="fmt.Println &#45;&gt; fmt.Fprintln (120ms)">
<text text-anchor="middle" x="509.5" y="-651.8" font-family="Times,serif" font-size="14.00"> 120ms</text>
</a>
</g>
</g>
<!-- N32 -->
<g id="node33" class="node"><title>N32</title>
<g id="a_node33"><a xlink:title="sync.(*Pool).Get (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="316,-436 242,-436 242,-400 316,-400 316,-436"/>
<text text-anchor="middle" x="279" y="-420.6" font-family="Times,serif" font-size="8.00">sync.(*Pool).Get</text>
<text text-anchor="middle" x="279" y="-411.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N17&#45;&gt;N32 -->
<g id="edge21" class="edge"><title>N17&#45;&gt;N32</title>
<g id="a_edge21"><a xlink:title="fmt.newPrinter &#45;&gt; sync.(*Pool).Get (10ms)">
<path fill="none" stroke="black" d="M372.082,-488.812C354.288,-475.466 329.437,-456.827 309.888,-442.166"/>
<polygon fill="black" stroke="black" points="311.97,-439.353 301.87,-436.153 307.77,-444.953 311.97,-439.353"/>
</a>
</g>
<g id="a_edge21&#45;label"><a xlink:title="fmt.newPrinter &#45;&gt; sync.(*Pool).Get (10ms)">
<text text-anchor="middle" x="361" y="-458.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N18&#45;&gt;N1 -->
<g id="edge15" class="edge"><title>N18&#45;&gt;N1</title>
<g id="a_edge15"><a xlink:title="main._Cfunc_fdopendir &#45;&gt; runtime.cgocall (40ms)">
<path fill="none" stroke="black" d="M287.969,-817.812C293.166,-806.604 300.245,-791.334 307.161,-776.417"/>
<polygon fill="black" stroke="black" points="310.397,-777.759 311.428,-767.214 304.046,-774.814 310.397,-777.759"/>
</a>
</g>
<g id="a_edge15&#45;label"><a xlink:title="main._Cfunc_fdopendir &#45;&gt; runtime.cgocall (40ms)">
<text text-anchor="middle" x="320" y="-788.8" font-family="Times,serif" font-size="14.00"> 40ms</text>
</a>
</g>
</g>
<!-- N19&#45;&gt;N1 -->
<g id="edge13" class="edge"><title>N19&#45;&gt;N1</title>
<g id="a_edge13"><a xlink:title="main._Cfunc_readdir &#45;&gt; runtime.cgocall (70ms)">
<path fill="none" stroke="black" stroke-width="2" d="M378.25,-817.812C372.544,-806.604 364.77,-791.334 357.176,-776.417"/>
<polygon fill="black" stroke="black" stroke-width="2" points="360.147,-774.538 352.491,-767.214 353.909,-777.714 360.147,-774.538"/>
</a>
</g>
<g id="a_edge13&#45;label"><a xlink:title="main._Cfunc_readdir &#45;&gt; runtime.cgocall (70ms)">
<text text-anchor="middle" x="386" y="-788.8" font-family="Times,serif" font-size="14.00"> 70ms</text>
</a>
</g>
</g>
<!-- N20 -->
<g id="node21" class="node"><title>N20</title>
<g id="a_node21"><a xlink:title="main.main (280ms)">
<polygon fill="#f8f8f8" stroke="black" points="530,-1045 448,-1045 448,-1009 530,-1009 530,-1045"/>
<text text-anchor="middle" x="489" y="-1029.6" font-family="Times,serif" font-size="8.00">main.main</text>
<text text-anchor="middle" x="489" y="-1020.6" font-family="Times,serif" font-size="8.00">0 of 280ms(96.55%)</text>
</a>
</g>
</g>
<!-- N20&#45;&gt;N5 -->
<g id="edge1" class="edge"><title>N20&#45;&gt;N5</title>
<g id="a_edge1"><a xlink:title="main.main &#45;&gt; main.Walk (280ms)">
<path fill="none" stroke="black" stroke-width="5" d="M489,-1008.85C489,-997.508 489,-982.215 489,-968.295"/>
<polygon fill="black" stroke="black" stroke-width="5" points="493.375,-968.007 489,-958.007 484.625,-968.007 493.375,-968.007"/>
</a>
</g>
<g id="a_edge1&#45;label"><a xlink:title="main.main &#45;&gt; main.Walk (280ms)">
<text text-anchor="middle" x="509.5" y="-979.8" font-family="Times,serif" font-size="14.00"> 280ms</text>
</a>
</g>
</g>
<!-- N21&#45;&gt;N16 -->
<g id="edge6" class="edge"><title>N21&#45;&gt;N16</title>
<g id="a_edge6"><a xlink:title="main.main.func1 &#45;&gt; fmt.Println (120ms)">
<path fill="none" stroke="black" stroke-width="3" d="M489,-817.812C489,-800.215 489,-772.607 489,-752.071"/>
<polygon fill="black" stroke="black" stroke-width="3" points="492.5,-752.067 489,-742.067 485.5,-752.067 492.5,-752.067"/>
</a>
</g>
<g id="a_edge6&#45;label"><a xlink:title="main.main.func1 &#45;&gt; fmt.Println (120ms)">
<text text-anchor="middle" x="509.5" y="-788.8" font-family="Times,serif" font-size="14.00"> 120ms</text>
</a>
</g>
</g>
<!-- N23 -->
<g id="node24" class="node"><title>N23</title>
<g id="a_node24"><a xlink:title="os.(*File).write (90ms)">
<polygon fill="#f8f8f8" stroke="black" points="528,-436 450,-436 450,-400 528,-400 528,-436"/>
<text text-anchor="middle" x="489" y="-420.6" font-family="Times,serif" font-size="8.00">os.(*File).write</text>
<text text-anchor="middle" x="489" y="-411.6" font-family="Times,serif" font-size="8.00">0 of 90ms(31.03%)</text>
</a>
</g>
</g>
<!-- N22&#45;&gt;N23 -->
<g id="edge8" class="edge"><title>N22&#45;&gt;N23</title>
<g id="a_edge8"><a xlink:title="os.(*File).Write &#45;&gt; os.(*File).write (90ms)">
<path fill="none" stroke="black" stroke-width="2" d="M489,-488.812C489,-476.657 489,-460.114 489,-446.182"/>
<polygon fill="black" stroke="black" stroke-width="2" points="492.5,-446.153 489,-436.153 485.5,-446.153 492.5,-446.153"/>
</a>
</g>
<g id="a_edge8&#45;label"><a xlink:title="os.(*File).Write &#45;&gt; os.(*File).write (90ms)">
<text text-anchor="middle" x="506" y="-458.8" font-family="Times,serif" font-size="14.00"> 90ms</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N6 -->
<g id="edge24" class="edge"><title>N23&#45;&gt;N6</title>
<g id="a_edge24"><a xlink:title="os.(*File).write &#45;&gt; runtime.assertI2T2 (10ms)">
<path fill="none" stroke="black" d="M465.885,-399.812C448.286,-386.726 423.845,-368.552 404.312,-354.027"/>
<polygon fill="black" stroke="black" points="406.389,-351.21 396.276,-348.051 402.212,-356.827 406.389,-351.21"/>
</a>
</g>
<g id="a_edge24&#45;label"><a xlink:title="os.(*File).write &#45;&gt; runtime.assertI2T2 (10ms)">
<text text-anchor="middle" x="455" y="-369.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N34 -->
<g id="node35" class="node"><title>N34</title>
<g id="a_node35"><a xlink:title="syscall.Write (80ms)">
<polygon fill="#f8f8f8" stroke="black" points="528,-347 450,-347 450,-311 528,-311 528,-347"/>
<text text-anchor="middle" x="489" y="-331.6" font-family="Times,serif" font-size="8.00">syscall.Write</text>
<text text-anchor="middle" x="489" y="-322.6" font-family="Times,serif" font-size="8.00">0 of 80ms(27.59%)</text>
</a>
</g>
</g>
<!-- N23&#45;&gt;N34 -->
<g id="edge9" class="edge"><title>N23&#45;&gt;N34</title>
<g id="a_edge9"><a xlink:title="os.(*File).write &#45;&gt; syscall.Write (80ms)">
<path fill="none" stroke="black" stroke-width="2" d="M489,-399.812C489,-387.657 489,-371.114 489,-357.182"/>
<polygon fill="black" stroke="black" stroke-width="2" points="492.5,-357.153 489,-347.153 485.5,-357.153 492.5,-357.153"/>
</a>
</g>
<g id="a_edge9&#45;label"><a xlink:title="os.(*File).write &#45;&gt; syscall.Write (80ms)">
<text text-anchor="middle" x="506" y="-369.8" font-family="Times,serif" font-size="14.00"> 80ms</text>
</a>
</g>
</g>
<!-- N25 -->
<g id="node26" class="node"><title>N25</title>
<g id="a_node26"><a xlink:title="os.OpenFile (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="626,-742 552,-742 552,-706 626,-706 626,-742"/>
<text text-anchor="middle" x="589" y="-726.6" font-family="Times,serif" font-size="8.00">os.OpenFile</text>
<text text-anchor="middle" x="589" y="-717.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N24&#45;&gt;N25 -->
<g id="edge25" class="edge"><title>N24&#45;&gt;N25</title>
<g id="a_edge25"><a xlink:title="os.Open &#45;&gt; os.OpenFile (10ms)">
<path fill="none" stroke="black" d="M585.625,-817.812C586.265,-800.215 587.269,-772.607 588.016,-752.071"/>
<polygon fill="black" stroke="black" points="591.514,-752.187 588.379,-742.067 584.518,-751.933 591.514,-752.187"/>
</a>
</g>
<g id="a_edge25&#45;label"><a xlink:title="os.Open &#45;&gt; os.OpenFile (10ms)">
<text text-anchor="middle" x="604" y="-788.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N33 -->
<g id="node34" class="node"><title>N33</title>
<g id="a_node34"><a xlink:title="syscall.Open (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="641,-621.5 567,-621.5 567,-585.5 641,-585.5 641,-621.5"/>
<text text-anchor="middle" x="604" y="-606.1" font-family="Times,serif" font-size="8.00">syscall.Open</text>
<text text-anchor="middle" x="604" y="-597.1" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N25&#45;&gt;N33 -->
<g id="edge26" class="edge"><title>N25&#45;&gt;N33</title>
<g id="a_edge26"><a xlink:title="os.OpenFile &#45;&gt; syscall.Open (10ms)">
<path fill="none" stroke="black" d="M591.181,-705.769C593.636,-686.374 597.658,-654.603 600.542,-631.817"/>
<polygon fill="black" stroke="black" points="604.033,-632.112 601.816,-621.752 597.088,-631.233 604.033,-632.112"/>
</a>
</g>
<g id="a_edge26&#45;label"><a xlink:title="os.OpenFile &#45;&gt; syscall.Open (10ms)">
<text text-anchor="middle" x="616" y="-651.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N26 -->
<g id="node27" class="node"><title>N26</title>
<g id="a_node27"><a xlink:title="runtime._System (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="650,-1259.5 576,-1259.5 576,-1223.5 650,-1223.5 650,-1259.5"/>
<text text-anchor="middle" x="613" y="-1244.1" font-family="Times,serif" font-size="8.00">runtime._System</text>
<text text-anchor="middle" x="613" y="-1235.1" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N26&#45;&gt;N13 -->
<g id="edge27" class="edge"><title>N26&#45;&gt;N13</title>
<g id="a_edge27"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (10ms)">
<path fill="none" stroke="black" d="M613,-1223.45C613,-1203.03 613,-1168.53 613,-1144.14"/>
<polygon fill="black" stroke="black" points="616.5,-1144.05 613,-1134.05 609.5,-1144.05 616.5,-1144.05"/>
</a>
</g>
<g id="a_edge27&#45;label"><a xlink:title="runtime._System &#45;&gt; runtime.systemstack (10ms)">
<text text-anchor="middle" x="630" y="-1155.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N27 -->
<g id="node28" class="node"><title>N27</title>
<g id="a_node28"><a xlink:title="runtime.cgoCheckArg (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="733,-742 645,-742 645,-706 733,-706 733,-742"/>
<text text-anchor="middle" x="689" y="-726.6" font-family="Times,serif" font-size="8.00">runtime.cgoCheckArg</text>
<text text-anchor="middle" x="689" y="-717.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N27&#45;&gt;N7 -->
<g id="edge28" class="edge"><title>N27&#45;&gt;N7</title>
<g id="a_edge28"><a xlink:title="runtime.cgoCheckArg &#45;&gt; runtime.cgoIsGoPointer (10ms)">
<path fill="none" stroke="black" d="M695.398,-705.769C702.582,-686.422 714.338,-654.76 722.794,-631.986"/>
<polygon fill="black" stroke="black" points="726.106,-633.122 726.306,-622.529 719.544,-630.685 726.106,-633.122"/>
</a>
</g>
<g id="a_edge28&#45;label"><a xlink:title="runtime.cgoCheckArg &#45;&gt; runtime.cgoIsGoPointer (10ms)">
<text text-anchor="middle" x="734" y="-651.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N28&#45;&gt;N27 -->
<g id="edge29" class="edge"><title>N28&#45;&gt;N27</title>
<g id="a_edge29"><a xlink:title="runtime.cgoCheckPointer &#45;&gt; runtime.cgoCheckArg (10ms)">
<path fill="none" stroke="black" d="M689,-817.812C689,-800.215 689,-772.607 689,-752.071"/>
<polygon fill="black" stroke="black" points="692.5,-752.067 689,-742.067 685.5,-752.067 692.5,-752.067"/>
</a>
</g>
<g id="a_edge29&#45;label"><a xlink:title="runtime.cgoCheckPointer &#45;&gt; runtime.cgoCheckArg (10ms)">
<text text-anchor="middle" x="706" y="-788.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N29&#45;&gt;N8 -->
<g id="edge18" class="edge"><title>N29&#45;&gt;N8</title>
<g id="a_edge18"><a xlink:title="runtime.concatstring3 &#45;&gt; runtime.concatstrings (20ms)">
<path fill="none" stroke="black" d="M809.562,-817.812C810.944,-802.619 813.003,-779.965 814.742,-760.842"/>
<polygon fill="black" stroke="black" points="818.248,-760.927 815.668,-750.651 811.277,-760.293 818.248,-760.927"/>
</a>
</g>
<g id="a_edge18&#45;label"><a xlink:title="runtime.concatstring3 &#45;&gt; runtime.concatstrings (20ms)">
<text text-anchor="middle" x="830" y="-788.8" font-family="Times,serif" font-size="14.00"> 20ms</text>
</a>
</g>
</g>
<!-- N30 -->
<g id="node31" class="node"><title>N30</title>
<g id="a_node31"><a xlink:title="runtime.goexit (280ms)">
<polygon fill="#f8f8f8" stroke="black" points="530,-1259.5 448,-1259.5 448,-1223.5 530,-1223.5 530,-1259.5"/>
<text text-anchor="middle" x="489" y="-1244.1" font-family="Times,serif" font-size="8.00">runtime.goexit</text>
<text text-anchor="middle" x="489" y="-1235.1" font-family="Times,serif" font-size="8.00">0 of 280ms(96.55%)</text>
</a>
</g>
</g>
<!-- N31 -->
<g id="node32" class="node"><title>N31</title>
<g id="a_node32"><a xlink:title="runtime.main (280ms)">
<polygon fill="#f8f8f8" stroke="black" points="530,-1133 448,-1133 448,-1097 530,-1097 530,-1133"/>
<text text-anchor="middle" x="489" y="-1117.6" font-family="Times,serif" font-size="8.00">runtime.main</text>
<text text-anchor="middle" x="489" y="-1108.6" font-family="Times,serif" font-size="8.00">0 of 280ms(96.55%)</text>
</a>
</g>
</g>
<!-- N30&#45;&gt;N31 -->
<g id="edge2" class="edge"><title>N30&#45;&gt;N31</title>
<g id="a_edge2"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (280ms)">
<path fill="none" stroke="black" stroke-width="5" d="M489,-1223.45C489,-1202.8 489,-1167.74 489,-1143.31"/>
<polygon fill="black" stroke="black" stroke-width="5" points="493.375,-1143.24 489,-1133.24 484.625,-1143.24 493.375,-1143.24"/>
</a>
</g>
<g id="a_edge2&#45;label"><a xlink:title="runtime.goexit &#45;&gt; runtime.main (280ms)">
<text text-anchor="middle" x="509.5" y="-1155.8" font-family="Times,serif" font-size="14.00"> 280ms</text>
</a>
</g>
</g>
<!-- N31&#45;&gt;N20 -->
<g id="edge3" class="edge"><title>N31&#45;&gt;N20</title>
<g id="a_edge3"><a xlink:title="runtime.main &#45;&gt; main.main (280ms)">
<path fill="none" stroke="black" stroke-width="5" d="M489,-1096.6C489,-1084.75 489,-1068.82 489,-1055.29"/>
<polygon fill="black" stroke="black" stroke-width="5" points="493.375,-1055.08 489,-1045.08 484.625,-1055.08 493.375,-1055.08"/>
</a>
</g>
<g id="a_edge3&#45;label"><a xlink:title="runtime.main &#45;&gt; main.main (280ms)">
<text text-anchor="middle" x="509.5" y="-1066.8" font-family="Times,serif" font-size="14.00"> 280ms</text>
</a>
</g>
</g>
<!-- N32&#45;&gt;N14 -->
<g id="edge32" class="edge"><title>N32&#45;&gt;N14</title>
<g id="a_edge32"><a xlink:title="sync.(*Pool).Get &#45;&gt; sync.(*Pool).pin (10ms)">
<path fill="none" stroke="black" d="M271.295,-399.812C265.848,-387.661 258.434,-371.122 252.19,-357.192"/>
<polygon fill="black" stroke="black" points="255.376,-355.745 248.092,-348.051 248.989,-358.608 255.376,-355.745"/>
</a>
</g>
<g id="a_edge32&#45;label"><a xlink:title="sync.(*Pool).Get &#45;&gt; sync.(*Pool).pin (10ms)">
<text text-anchor="middle" x="279" y="-369.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N35 -->
<g id="node36" class="node"><title>N35</title>
<g id="a_node36"><a xlink:title="syscall.openat (10ms)">
<polygon fill="#f8f8f8" stroke="black" points="641,-525 567,-525 567,-489 641,-489 641,-525"/>
<text text-anchor="middle" x="604" y="-509.6" font-family="Times,serif" font-size="8.00">syscall.openat</text>
<text text-anchor="middle" x="604" y="-500.6" font-family="Times,serif" font-size="8.00">0 of 10ms(3.45%)</text>
</a>
</g>
</g>
<!-- N33&#45;&gt;N35 -->
<g id="edge33" class="edge"><title>N33&#45;&gt;N35</title>
<g id="a_edge33"><a xlink:title="syscall.Open &#45;&gt; syscall.openat (10ms)">
<path fill="none" stroke="black" d="M604,-585.167C604,-571.313 604,-551.631 604,-535.611"/>
<polygon fill="black" stroke="black" points="607.5,-535.223 604,-525.223 600.5,-535.223 607.5,-535.223"/>
</a>
</g>
<g id="a_edge33&#45;label"><a xlink:title="syscall.Open &#45;&gt; syscall.openat (10ms)">
<text text-anchor="middle" x="621" y="-547.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N36 -->
<g id="node37" class="node"><title>N36</title>
<g id="a_node37"><a xlink:title="syscall.write (80ms)">
<polygon fill="#f8f8f8" stroke="black" points="528,-259 450,-259 450,-223 528,-223 528,-259"/>
<text text-anchor="middle" x="489" y="-243.6" font-family="Times,serif" font-size="8.00">syscall.write</text>
<text text-anchor="middle" x="489" y="-234.6" font-family="Times,serif" font-size="8.00">0 of 80ms(27.59%)</text>
</a>
</g>
</g>
<!-- N34&#45;&gt;N36 -->
<g id="edge10" class="edge"><title>N34&#45;&gt;N36</title>
<g id="a_edge10"><a xlink:title="syscall.Write &#45;&gt; syscall.write (80ms)">
<path fill="none" stroke="black" stroke-width="2" d="M489,-310.597C489,-298.746 489,-282.817 489,-269.292"/>
<polygon fill="black" stroke="black" stroke-width="2" points="492.5,-269.084 489,-259.084 485.5,-269.084 492.5,-269.084"/>
</a>
</g>
<g id="a_edge10&#45;label"><a xlink:title="syscall.Write &#45;&gt; syscall.write (80ms)">
<text text-anchor="middle" x="506" y="-280.8" font-family="Times,serif" font-size="14.00"> 80ms</text>
</a>
</g>
</g>
<!-- N35&#45;&gt;N15 -->
<g id="edge35" class="edge"><title>N35&#45;&gt;N15</title>
<g id="a_edge35"><a xlink:title="syscall.openat &#45;&gt; syscall.Syscall6 (10ms)">
<path fill="none" stroke="black" d="M604,-488.812C604,-477.011 604,-461.072 604,-447.404"/>
<polygon fill="black" stroke="black" points="607.5,-447.051 604,-437.051 600.5,-447.051 607.5,-447.051"/>
</a>
</g>
<g id="a_edge35&#45;label"><a xlink:title="syscall.openat &#45;&gt; syscall.Syscall6 (10ms)">
<text text-anchor="middle" x="621" y="-458.8" font-family="Times,serif" font-size="14.00"> 10ms</text>
</a>
</g>
</g>
<!-- N36&#45;&gt;N2 -->
<g id="edge11" class="edge"><title>N36&#45;&gt;N2</title>
<g id="a_edge11"><a xlink:title="syscall.write &#45;&gt; syscall.Syscall (80ms)">
<path fill="none" stroke="black" stroke-width="2" d="M489,-222.568C489,-211.674 489,-197.029 489,-182.673"/>
<polygon fill="black" stroke="black" stroke-width="2" points="492.5,-182.328 489,-172.328 485.5,-182.328 492.5,-182.328"/>
</a>
</g>
<g id="a_edge11&#45;label"><a xlink:title="syscall.write &#45;&gt; syscall.Syscall (80ms)">
<text text-anchor="middle" x="506" y="-193.8" font-family="Times,serif" font-size="14.00"> 80ms</text>
</a>
</g>
</g>
</g>
</g></svg>
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment