github.com/phuslu/fastdns@v0.8.3-0.20240310041952-69506fc67dd1/torch.svg (about)

     1  <?xml version="1.0" standalone="no"?>
     2  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
     3  <svg version="1.1" width="1200" height="486" onload="init(evt)" viewBox="0 0 1200 486" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
     4  <!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. -->
     5  <!-- NOTES:  -->
     6  <defs>
     7  	<linearGradient id="background" y1="0" y2="1" x1="0" x2="0" >
     8  		<stop stop-color="#eeeeee" offset="5%" />
     9  		<stop stop-color="#eeeeb0" offset="95%" />
    10  	</linearGradient>
    11  </defs>
    12  <style type="text/css">
    13  	text { font-family:Verdana; font-size:12px; fill:rgb(0,0,0); }
    14  	#search, #ignorecase { opacity:0.1; cursor:pointer; }
    15  	#search:hover, #search.show, #ignorecase:hover, #ignorecase.show { opacity:1; }
    16  	#subtitle { text-anchor:middle; font-color:rgb(160,160,160); }
    17  	#title { text-anchor:middle; font-size:17px}
    18  	#unzoom { cursor:pointer; }
    19  	#frames > *:hover { stroke:black; stroke-width:0.5; cursor:pointer; }
    20  	.hide { display:none; }
    21  	.parent { opacity:0.5; }
    22  </style>
    23  <script type="text/ecmascript">
    24  <![CDATA[
    25  	"use strict";
    26  	var details, searchbtn, unzoombtn, matchedtxt, svg, searching, currentSearchTerm, ignorecase, ignorecaseBtn;
    27  	function init(evt) {
    28  		details = document.getElementById("details").firstChild;
    29  		searchbtn = document.getElementById("search");
    30  		ignorecaseBtn = document.getElementById("ignorecase");
    31  		unzoombtn = document.getElementById("unzoom");
    32  		matchedtxt = document.getElementById("matched");
    33  		svg = document.getElementsByTagName("svg")[0];
    34  		searching = 0;
    35  		currentSearchTerm = null;
    36  	}
    37  
    38  	window.addEventListener("click", function(e) {
    39  		var target = find_group(e.target);
    40  		if (target) {
    41  			if (target.nodeName == "a") {
    42  				if (e.ctrlKey === false) return;
    43  				e.preventDefault();
    44  			}
    45  			if (target.classList.contains("parent")) unzoom();
    46  			zoom(target);
    47  		}
    48  		else if (e.target.id == "unzoom") unzoom();
    49  		else if (e.target.id == "search") search_prompt();
    50  		else if (e.target.id == "ignorecase") toggle_ignorecase();
    51  	}, false)
    52  
    53  	// mouse-over for info
    54  	// show
    55  	window.addEventListener("mouseover", function(e) {
    56  		var target = find_group(e.target);
    57  		if (target) details.nodeValue = "Function: " + g_to_text(target);
    58  	}, false)
    59  
    60  	// clear
    61  	window.addEventListener("mouseout", function(e) {
    62  		var target = find_group(e.target);
    63  		if (target) details.nodeValue = ' ';
    64  	}, false)
    65  
    66  	// ctrl-F for search
    67  	window.addEventListener("keydown",function (e) {
    68  		if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
    69  			e.preventDefault();
    70  			search_prompt();
    71  		}
    72  	}, false)
    73  
    74  	// ctrl-I to toggle case-sensitive search
    75  	window.addEventListener("keydown",function (e) {
    76  		if (e.ctrlKey && e.keyCode === 73) {
    77  			e.preventDefault();
    78  			toggle_ignorecase();
    79  		}
    80  	}, false)
    81  
    82  	// functions
    83  	function find_child(node, selector) {
    84  		var children = node.querySelectorAll(selector);
    85  		if (children.length) return children[0];
    86  		return;
    87  	}
    88  	function find_group(node) {
    89  		var parent = node.parentElement;
    90  		if (!parent) return;
    91  		if (parent.id == "frames") return node;
    92  		return find_group(parent);
    93  	}
    94  	function orig_save(e, attr, val) {
    95  		if (e.attributes["_orig_" + attr] != undefined) return;
    96  		if (e.attributes[attr] == undefined) return;
    97  		if (val == undefined) val = e.attributes[attr].value;
    98  		e.setAttribute("_orig_" + attr, val);
    99  	}
   100  	function orig_load(e, attr) {
   101  		if (e.attributes["_orig_"+attr] == undefined) return;
   102  		e.attributes[attr].value = e.attributes["_orig_" + attr].value;
   103  		e.removeAttribute("_orig_"+attr);
   104  	}
   105  	function g_to_text(e) {
   106  		var text = find_child(e, "title").firstChild.nodeValue;
   107  		return (text)
   108  	}
   109  	function g_to_func(e) {
   110  		var func = g_to_text(e);
   111  		// if there's any manipulation we want to do to the function
   112  		// name before it's searched, do it here before returning.
   113  		return (func);
   114  	}
   115  	function update_text(e) {
   116  		var r = find_child(e, "rect");
   117  		var t = find_child(e, "text");
   118  		var w = parseFloat(r.attributes.width.value) -3;
   119  		var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,"");
   120  		t.attributes.x.value = parseFloat(r.attributes.x.value) + 3;
   121  
   122  		// Smaller than this size won't fit anything
   123  		if (w < 2 * 12 * 0.59) {
   124  			t.textContent = "";
   125  			return;
   126  		}
   127  
   128  		t.textContent = txt;
   129  		// Fit in full text width
   130  		if (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w)
   131  			return;
   132  
   133  		for (var x = txt.length - 2; x > 0; x--) {
   134  			if (t.getSubStringLength(0, x + 2) <= w) {
   135  				t.textContent = txt.substring(0, x) + "..";
   136  				return;
   137  			}
   138  		}
   139  		t.textContent = "";
   140  	}
   141  
   142  	// zoom
   143  	function zoom_reset(e) {
   144  		if (e.attributes != undefined) {
   145  			orig_load(e, "x");
   146  			orig_load(e, "width");
   147  		}
   148  		if (e.childNodes == undefined) return;
   149  		for (var i = 0, c = e.childNodes; i < c.length; i++) {
   150  			zoom_reset(c[i]);
   151  		}
   152  	}
   153  	function zoom_child(e, x, ratio) {
   154  		if (e.attributes != undefined) {
   155  			if (e.attributes.x != undefined) {
   156  				orig_save(e, "x");
   157  				e.attributes.x.value = (parseFloat(e.attributes.x.value) - x - 10) * ratio + 10;
   158  				if (e.tagName == "text")
   159  					e.attributes.x.value = find_child(e.parentNode, "rect[x]").attributes.x.value + 3;
   160  			}
   161  			if (e.attributes.width != undefined) {
   162  				orig_save(e, "width");
   163  				e.attributes.width.value = parseFloat(e.attributes.width.value) * ratio;
   164  			}
   165  		}
   166  
   167  		if (e.childNodes == undefined) return;
   168  		for (var i = 0, c = e.childNodes; i < c.length; i++) {
   169  			zoom_child(c[i], x - 10, ratio);
   170  		}
   171  	}
   172  	function zoom_parent(e) {
   173  		if (e.attributes) {
   174  			if (e.attributes.x != undefined) {
   175  				orig_save(e, "x");
   176  				e.attributes.x.value = 10;
   177  			}
   178  			if (e.attributes.width != undefined) {
   179  				orig_save(e, "width");
   180  				e.attributes.width.value = parseInt(svg.width.baseVal.value) - (10 * 2);
   181  			}
   182  		}
   183  		if (e.childNodes == undefined) return;
   184  		for (var i = 0, c = e.childNodes; i < c.length; i++) {
   185  			zoom_parent(c[i]);
   186  		}
   187  	}
   188  	function zoom(node) {
   189  		var attr = find_child(node, "rect").attributes;
   190  		var width = parseFloat(attr.width.value);
   191  		var xmin = parseFloat(attr.x.value);
   192  		var xmax = parseFloat(xmin + width);
   193  		var ymin = parseFloat(attr.y.value);
   194  		var ratio = (svg.width.baseVal.value - 2 * 10) / width;
   195  
   196  		// XXX: Workaround for JavaScript float issues (fix me)
   197  		var fudge = 0.0001;
   198  
   199  		unzoombtn.classList.remove("hide");
   200  
   201  		var el = document.getElementById("frames").children;
   202  		for (var i = 0; i < el.length; i++) {
   203  			var e = el[i];
   204  			var a = find_child(e, "rect").attributes;
   205  			var ex = parseFloat(a.x.value);
   206  			var ew = parseFloat(a.width.value);
   207  			var upstack;
   208  			// Is it an ancestor
   209  			if (0 == 0) {
   210  				upstack = parseFloat(a.y.value) > ymin;
   211  			} else {
   212  				upstack = parseFloat(a.y.value) < ymin;
   213  			}
   214  			if (upstack) {
   215  				// Direct ancestor
   216  				if (ex <= xmin && (ex+ew+fudge) >= xmax) {
   217  					e.classList.add("parent");
   218  					zoom_parent(e);
   219  					update_text(e);
   220  				}
   221  				// not in current path
   222  				else
   223  					e.classList.add("hide");
   224  			}
   225  			// Children maybe
   226  			else {
   227  				// no common path
   228  				if (ex < xmin || ex + fudge >= xmax) {
   229  					e.classList.add("hide");
   230  				}
   231  				else {
   232  					zoom_child(e, xmin, ratio);
   233  					update_text(e);
   234  				}
   235  			}
   236  		}
   237  		search();
   238  	}
   239  	function unzoom() {
   240  		unzoombtn.classList.add("hide");
   241  		var el = document.getElementById("frames").children;
   242  		for(var i = 0; i < el.length; i++) {
   243  			el[i].classList.remove("parent");
   244  			el[i].classList.remove("hide");
   245  			zoom_reset(el[i]);
   246  			update_text(el[i]);
   247  		}
   248  		search();
   249  	}
   250  
   251  	// search
   252  	function toggle_ignorecase() {
   253  		ignorecase = !ignorecase;
   254  		if (ignorecase) {
   255  			ignorecaseBtn.classList.add("show");
   256  		} else {
   257  			ignorecaseBtn.classList.remove("show");
   258  		}
   259  		reset_search();
   260  		search();
   261  	}
   262  	function reset_search() {
   263  		var el = document.querySelectorAll("#frames rect");
   264  		for (var i = 0; i < el.length; i++) {
   265  			orig_load(el[i], "fill")
   266  		}
   267  	}
   268  	function search_prompt() {
   269  		if (!searching) {
   270  			var term = prompt("Enter a search term (regexp " +
   271  			    "allowed, eg: ^ext4_)"
   272  			    + (ignorecase ? ", ignoring case" : "")
   273  			    + "\nPress Ctrl-i to toggle case sensitivity", "");
   274  			if (term != null) {
   275  				currentSearchTerm = term;
   276  				search();
   277  			}
   278  		} else {
   279  			reset_search();
   280  			searching = 0;
   281  			currentSearchTerm = null;
   282  			searchbtn.classList.remove("show");
   283  			searchbtn.firstChild.nodeValue = "Search"
   284  			matchedtxt.classList.add("hide");
   285  			matchedtxt.firstChild.nodeValue = ""
   286  		}
   287  	}
   288  	function search(term) {
   289  		if (currentSearchTerm === null) return;
   290  		var term = currentSearchTerm;
   291  
   292  		var re = new RegExp(term, ignorecase ? 'i' : '');
   293  		var el = document.getElementById("frames").children;
   294  		var matches = new Object();
   295  		var maxwidth = 0;
   296  		for (var i = 0; i < el.length; i++) {
   297  			var e = el[i];
   298  			var func = g_to_func(e);
   299  			var rect = find_child(e, "rect");
   300  			if (func == null || rect == null)
   301  				continue;
   302  
   303  			// Save max width. Only works as we have a root frame
   304  			var w = parseFloat(rect.attributes.width.value);
   305  			if (w > maxwidth)
   306  				maxwidth = w;
   307  
   308  			if (func.match(re)) {
   309  				// highlight
   310  				var x = parseFloat(rect.attributes.x.value);
   311  				orig_save(rect, "fill");
   312  				rect.attributes.fill.value = "rgb(230,0,230)";
   313  
   314  				// remember matches
   315  				if (matches[x] == undefined) {
   316  					matches[x] = w;
   317  				} else {
   318  					if (w > matches[x]) {
   319  						// overwrite with parent
   320  						matches[x] = w;
   321  					}
   322  				}
   323  				searching = 1;
   324  			}
   325  		}
   326  		if (!searching)
   327  			return;
   328  
   329  		searchbtn.classList.add("show");
   330  		searchbtn.firstChild.nodeValue = "Reset Search";
   331  
   332  		// calculate percent matched, excluding vertical overlap
   333  		var count = 0;
   334  		var lastx = -1;
   335  		var lastw = 0;
   336  		var keys = Array();
   337  		for (k in matches) {
   338  			if (matches.hasOwnProperty(k))
   339  				keys.push(k);
   340  		}
   341  		// sort the matched frames by their x location
   342  		// ascending, then width descending
   343  		keys.sort(function(a, b){
   344  			return a - b;
   345  		});
   346  		// Step through frames saving only the biggest bottom-up frames
   347  		// thanks to the sort order. This relies on the tree property
   348  		// where children are always smaller than their parents.
   349  		var fudge = 0.0001;	// JavaScript floating point
   350  		for (var k in keys) {
   351  			var x = parseFloat(keys[k]);
   352  			var w = matches[keys[k]];
   353  			if (x >= lastx + lastw - fudge) {
   354  				count += w;
   355  				lastx = x;
   356  				lastw = w;
   357  			}
   358  		}
   359  		// display matched percent
   360  		matchedtxt.classList.remove("hide");
   361  		var pct = 100 * count / maxwidth;
   362  		if (pct != 100) pct = pct.toFixed(1)
   363  		matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%";
   364  	}
   365  ]]>
   366  </script>
   367  <rect x="0.0" y="0" width="1200.0" height="486.0" fill="url(#background)"  />
   368  <text id="title" x="600.00" y="24" >Flame Graph</text>
   369  <text id="details" x="10.00" y="469" > </text>
   370  <text id="unzoom" x="10.00" y="24" class="hide">Reset Zoom</text>
   371  <text id="search" x="1090.00" y="24" >Search</text>
   372  <text id="ignorecase" x="1174.00" y="24" >ic</text>
   373  <text id="matched" x="1090.00" y="469" > </text>
   374  <g id="frames">
   375  <g >
   376  <title>runtime.gcMarkTermination (1 samples, 0.04%)</title><rect x="747.8" y="389" width="0.5" height="15.0" fill="rgb(213,188,51)" rx="2" ry="2" />
   377  <text  x="750.84" y="399.5" ></text>
   378  </g>
   379  <g >
   380  <title>runtime.walltime1 (4 samples, 0.15%)</title><rect x="1187.7" y="421" width="1.8" height="15.0" fill="rgb(223,225,29)" rx="2" ry="2" />
   381  <text  x="1190.73" y="431.5" ></text>
   382  </g>
   383  <g >
   384  <title>runtime.(*mheap).freeMSpanLocked (1 samples, 0.04%)</title><rect x="746.9" y="325" width="0.5" height="15.0" fill="rgb(216,201,44)" rx="2" ry="2" />
   385  <text  x="749.93" y="335.5" ></text>
   386  </g>
   387  <g >
   388  <title>runtime.lockWithRank (1 samples, 0.04%)</title><rect x="91.0" y="197" width="0.4" height="15.0" fill="rgb(237,47,37)" rx="2" ry="2" />
   389  <text  x="93.97" y="207.5" ></text>
   390  </g>
   391  <g >
   392  <title>runtime.wbBufFlush (1 samples, 0.04%)</title><rect x="1022.1" y="293" width="0.5" height="15.0" fill="rgb(230,90,48)" rx="2" ry="2" />
   393  <text  x="1025.14" y="303.5" ></text>
   394  </g>
   395  <g >
   396  <title>runtime.gcDrainN (2 samples, 0.08%)</title><rect x="866.1" y="165" width="0.9" height="15.0" fill="rgb(229,220,46)" rx="2" ry="2" />
   397  <text  x="869.11" y="175.5" ></text>
   398  </g>
   399  <g >
   400  <title>runtime.exitsyscall (14 samples, 0.54%)</title><rect x="698.3" y="197" width="6.3" height="15.0" fill="rgb(223,224,51)" rx="2" ry="2" />
   401  <text  x="701.26" y="207.5" ></text>
   402  </g>
   403  <g >
   404  <title>runtime.(*mcache).prepareForSweep (1 samples, 0.04%)</title><rect x="1159.1" y="325" width="0.4" height="15.0" fill="rgb(225,174,42)" rx="2" ry="2" />
   405  <text  x="1162.07" y="335.5" ></text>
   406  </g>
   407  <g >
   408  <title>runtime.arenaIndex (1 samples, 0.04%)</title><rect x="762.4" y="357" width="0.5" height="15.0" fill="rgb(223,180,9)" rx="2" ry="2" />
   409  <text  x="765.40" y="367.5" ></text>
   410  </g>
   411  <g >
   412  <title>runtime.nextFreeFast (5 samples, 0.19%)</title><rect x="77.8" y="229" width="2.3" height="15.0" fill="rgb(210,44,16)" rx="2" ry="2" />
   413  <text  x="80.78" y="239.5" ></text>
   414  </g>
   415  <g >
   416  <title>sync.(*poolChain).pushHead (5 samples, 0.19%)</title><rect x="726.9" y="357" width="2.3" height="15.0" fill="rgb(205,52,34)" rx="2" ry="2" />
   417  <text  x="729.92" y="367.5" ></text>
   418  </g>
   419  <g >
   420  <title>runtime.mallocgc (22 samples, 0.85%)</title><rect x="67.8" y="229" width="10.0" height="15.0" fill="rgb(234,61,15)" rx="2" ry="2" />
   421  <text  x="70.77" y="239.5" ></text>
   422  </g>
   423  <g >
   424  <title>github.com/phuslu/fastdns.(*Message).SetResponseHeader (4 samples, 0.15%)</title><rect x="52.8" y="325" width="1.8" height="15.0" fill="rgb(234,116,24)" rx="2" ry="2" />
   425  <text  x="55.76" y="335.5" ></text>
   426  </g>
   427  <g >
   428  <title>runtime.exitsyscallfast (5 samples, 0.19%)</title><rect x="1015.3" y="229" width="2.3" height="15.0" fill="rgb(220,128,45)" rx="2" ry="2" />
   429  <text  x="1018.32" y="239.5" ></text>
   430  </g>
   431  <g >
   432  <title>runtime.(*mheap).alloc (1 samples, 0.04%)</title><rect x="68.7" y="149" width="0.4" height="15.0" fill="rgb(220,143,30)" rx="2" ry="2" />
   433  <text  x="71.68" y="159.5" ></text>
   434  </g>
   435  <g >
   436  <title>runtime.(*mheap).alloc (3 samples, 0.12%)</title><rect x="863.4" y="165" width="1.3" height="15.0" fill="rgb(223,24,16)" rx="2" ry="2" />
   437  <text  x="866.38" y="175.5" ></text>
   438  </g>
   439  <g >
   440  <title>sync.(*Pool).pin (6 samples, 0.23%)</title><rect x="724.2" y="357" width="2.7" height="15.0" fill="rgb(228,13,49)" rx="2" ry="2" />
   441  <text  x="727.19" y="367.5" ></text>
   442  </g>
   443  <g >
   444  <title>runtime.heapBits.next (1 samples, 0.04%)</title><rect x="762.9" y="357" width="0.4" height="15.0" fill="rgb(205,183,12)" rx="2" ry="2" />
   445  <text  x="765.85" y="367.5" ></text>
   446  </g>
   447  <g >
   448  <title>runtime.notewakeup (6 samples, 0.23%)</title><rect x="1177.7" y="325" width="2.7" height="15.0" fill="rgb(249,164,13)" rx="2" ry="2" />
   449  <text  x="1180.72" y="335.5" ></text>
   450  </g>
   451  <g >
   452  <title>runtime.gcAssistAlloc (18 samples, 0.69%)</title><rect x="69.6" y="213" width="8.2" height="15.0" fill="rgb(208,210,43)" rx="2" ry="2" />
   453  <text  x="72.59" y="223.5" ></text>
   454  </g>
   455  <g >
   456  <title>runtime.schedule (315 samples, 12.14%)</title><rect x="1039.0" y="389" width="143.3" height="15.0" fill="rgb(218,216,19)" rx="2" ry="2" />
   457  <text  x="1041.97" y="399.5" >runtime.schedule</text>
   458  </g>
   459  <g >
   460  <title>runtime.unlockWithRank (7 samples, 0.27%)</title><rect x="823.4" y="309" width="3.1" height="15.0" fill="rgb(247,115,27)" rx="2" ry="2" />
   461  <text  x="826.35" y="319.5" ></text>
   462  </g>
   463  <g >
   464  <title>runtime.casgstatus (5 samples, 0.19%)</title><rect x="1067.2" y="357" width="2.3" height="15.0" fill="rgb(237,99,6)" rx="2" ry="2" />
   465  <text  x="1070.18" y="367.5" ></text>
   466  </g>
   467  <g >
   468  <title>runtime.scanstack.func1 (3 samples, 0.12%)</title><rect x="763.3" y="293" width="1.4" height="15.0" fill="rgb(250,84,10)" rx="2" ry="2" />
   469  <text  x="766.31" y="303.5" ></text>
   470  </g>
   471  <g >
   472  <title>runtime.bulkBarrierPreWrite (1 samples, 0.04%)</title><rect x="1022.1" y="309" width="0.5" height="15.0" fill="rgb(225,227,11)" rx="2" ry="2" />
   473  <text  x="1025.14" y="319.5" ></text>
   474  </g>
   475  <g >
   476  <title>runtime.netpollcheckerr (1 samples, 0.04%)</title><rect x="1019.0" y="277" width="0.4" height="15.0" fill="rgb(210,170,48)" rx="2" ry="2" />
   477  <text  x="1021.96" y="287.5" ></text>
   478  </g>
   479  <g >
   480  <title>runtime.gcAssistAlloc.func1 (18 samples, 0.69%)</title><rect x="69.6" y="181" width="8.2" height="15.0" fill="rgb(207,182,53)" rx="2" ry="2" />
   481  <text  x="72.59" y="191.5" ></text>
   482  </g>
   483  <g >
   484  <title>net.(*UDPConn).ReadFromUDP (423 samples, 16.31%)</title><rect x="839.3" y="373" width="192.4" height="15.0" fill="rgb(248,4,0)" rx="2" ry="2" />
   485  <text  x="842.28" y="383.5" >net.(*UDPConn).ReadFromUDP</text>
   486  </g>
   487  <g >
   488  <title>runtime.pMask.read (2 samples, 0.08%)</title><rect x="1147.7" y="357" width="0.9" height="15.0" fill="rgb(207,29,8)" rx="2" ry="2" />
   489  <text  x="1150.69" y="367.5" ></text>
   490  </g>
   491  <g >
   492  <title>runtime.systemstack (1 samples, 0.04%)</title><rect x="1022.1" y="277" width="0.5" height="15.0" fill="rgb(240,201,51)" rx="2" ry="2" />
   493  <text  x="1025.14" y="287.5" ></text>
   494  </g>
   495  <g >
   496  <title>runtime.getStackMap (1 samples, 0.04%)</title><rect x="763.8" y="261" width="0.4" height="15.0" fill="rgb(223,35,14)" rx="2" ry="2" />
   497  <text  x="766.76" y="271.5" ></text>
   498  </g>
   499  <g >
   500  <title>runtime.unlockWithRank (1 samples, 0.04%)</title><rect x="1033.5" y="389" width="0.5" height="15.0" fill="rgb(238,100,15)" rx="2" ry="2" />
   501  <text  x="1036.52" y="399.5" ></text>
   502  </g>
   503  <g >
   504  <title>runtime.resetspinning (7 samples, 0.27%)</title><rect x="1177.3" y="373" width="3.1" height="15.0" fill="rgb(226,227,15)" rx="2" ry="2" />
   505  <text  x="1180.26" y="383.5" ></text>
   506  </g>
   507  <g >
   508  <title>runtime.(*mcache).releaseAll (1 samples, 0.04%)</title><rect x="747.8" y="293" width="0.5" height="15.0" fill="rgb(226,11,15)" rx="2" ry="2" />
   509  <text  x="750.84" y="303.5" ></text>
   510  </g>
   511  <g >
   512  <title>runtime.mallocgc (16 samples, 0.62%)</title><rect x="1023.5" y="341" width="7.3" height="15.0" fill="rgb(250,9,24)" rx="2" ry="2" />
   513  <text  x="1026.51" y="351.5" ></text>
   514  </g>
   515  <g >
   516  <title>runtime.casgstatus (3 samples, 0.12%)</title><rect x="1014.0" y="229" width="1.3" height="15.0" fill="rgb(247,8,37)" rx="2" ry="2" />
   517  <text  x="1016.96" y="239.5" ></text>
   518  </g>
   519  <g >
   520  <title>runtime.findrunnable (1 samples, 0.04%)</title><rect x="1033.1" y="357" width="0.4" height="15.0" fill="rgb(229,108,7)" rx="2" ry="2" />
   521  <text  x="1036.06" y="367.5" ></text>
   522  </g>
   523  <g >
   524  <title>runtime.goready (19 samples, 0.73%)</title><rect x="813.8" y="309" width="8.6" height="15.0" fill="rgb(253,14,43)" rx="2" ry="2" />
   525  <text  x="816.80" y="319.5" ></text>
   526  </g>
   527  <g >
   528  <title>runtime.pMask.set (1 samples, 0.04%)</title><rect x="1148.6" y="357" width="0.5" height="15.0" fill="rgb(242,211,2)" rx="2" ry="2" />
   529  <text  x="1151.60" y="367.5" ></text>
   530  </g>
   531  <g >
   532  <title>runtime.nextFreeFast (2 samples, 0.08%)</title><rect x="1030.8" y="341" width="0.9" height="15.0" fill="rgb(206,51,33)" rx="2" ry="2" />
   533  <text  x="1033.79" y="351.5" ></text>
   534  </g>
   535  <g >
   536  <title>runtime.semacquire1 (5 samples, 0.19%)</title><rect x="708.3" y="213" width="2.2" height="15.0" fill="rgb(213,74,32)" rx="2" ry="2" />
   537  <text  x="711.27" y="223.5" ></text>
   538  </g>
   539  <g >
   540  <title>runtime.mProf_Malloc (1 samples, 0.04%)</title><rect x="867.0" y="213" width="0.5" height="15.0" fill="rgb(236,64,50)" rx="2" ry="2" />
   541  <text  x="870.02" y="223.5" ></text>
   542  </g>
   543  <g >
   544  <title>runtime.(*lfstack).push (1 samples, 0.04%)</title><rect x="866.1" y="101" width="0.5" height="15.0" fill="rgb(211,87,25)" rx="2" ry="2" />
   545  <text  x="869.11" y="111.5" ></text>
   546  </g>
   547  <g >
   548  <title>runtime.save (1 samples, 0.04%)</title><rect x="1010.8" y="213" width="0.4" height="15.0" fill="rgb(253,200,26)" rx="2" ry="2" />
   549  <text  x="1013.77" y="223.5" ></text>
   550  </g>
   551  <g >
   552  <title>runtime.(*lfstack).pop (2 samples, 0.08%)</title><rect x="73.2" y="117" width="0.9" height="15.0" fill="rgb(214,142,51)" rx="2" ry="2" />
   553  <text  x="76.23" y="127.5" ></text>
   554  </g>
   555  <g >
   556  <title>runtime.mget (1 samples, 0.04%)</title><rect x="1177.3" y="341" width="0.4" height="15.0" fill="rgb(219,168,43)" rx="2" ry="2" />
   557  <text  x="1180.26" y="351.5" ></text>
   558  </g>
   559  <g >
   560  <title>runtime.parkunlock_c (1 samples, 0.04%)</title><rect x="1038.5" y="389" width="0.5" height="15.0" fill="rgb(227,216,37)" rx="2" ry="2" />
   561  <text  x="1041.52" y="399.5" ></text>
   562  </g>
   563  <g >
   564  <title>runtime.(*mcentral).uncacheSpan (1 samples, 0.04%)</title><rect x="1027.6" y="293" width="0.5" height="15.0" fill="rgb(206,165,2)" rx="2" ry="2" />
   565  <text  x="1030.60" y="303.5" ></text>
   566  </g>
   567  <g >
   568  <title>runtime.readyWithTime (4 samples, 0.15%)</title><rect x="94.2" y="181" width="1.8" height="15.0" fill="rgb(239,62,22)" rx="2" ry="2" />
   569  <text  x="97.16" y="191.5" ></text>
   570  </g>
   571  <g >
   572  <title>github.com/phuslu/fastdns.(*ForkServer).ListenAndServe (495 samples, 19.08%)</title><rect x="806.5" y="389" width="225.2" height="15.0" fill="rgb(240,51,20)" rx="2" ry="2" />
   573  <text  x="809.52" y="399.5" >github.com/phuslu/fastdns.(*F..</text>
   574  </g>
   575  <g >
   576  <title>runtime.gcWriteBarrierCX (2 samples, 0.08%)</title><rect x="709.6" y="181" width="0.9" height="15.0" fill="rgb(247,183,40)" rx="2" ry="2" />
   577  <text  x="712.63" y="191.5" ></text>
   578  </g>
   579  <g >
   580  <title>runtime.systemstack (1 samples, 0.04%)</title><rect x="867.0" y="181" width="0.5" height="15.0" fill="rgb(224,122,53)" rx="2" ry="2" />
   581  <text  x="870.02" y="191.5" ></text>
   582  </g>
   583  <g >
   584  <title>aeshashbody (2 samples, 0.08%)</title><rect x="718.3" y="309" width="0.9" height="15.0" fill="rgb(223,162,31)" rx="2" ry="2" />
   585  <text  x="721.27" y="319.5" ></text>
   586  </g>
   587  <g >
   588  <title>runtime.stopm (14 samples, 0.54%)</title><rect x="1158.6" y="357" width="6.4" height="15.0" fill="rgb(241,33,28)" rx="2" ry="2" />
   589  <text  x="1161.61" y="367.5" ></text>
   590  </g>
   591  <g >
   592  <title>runtime.(*lfstack).push (2 samples, 0.08%)</title><rect x="761.5" y="325" width="0.9" height="15.0" fill="rgb(247,147,31)" rx="2" ry="2" />
   593  <text  x="764.49" y="335.5" ></text>
   594  </g>
   595  <g >
   596  <title>runtime.lockWithRank (5 samples, 0.19%)</title><rect x="706.0" y="213" width="2.3" height="15.0" fill="rgb(205,137,52)" rx="2" ry="2" />
   597  <text  x="708.99" y="223.5" ></text>
   598  </g>
   599  <g >
   600  <title>runtime.heapBitsSetType (5 samples, 0.19%)</title><rect x="1028.5" y="325" width="2.3" height="15.0" fill="rgb(242,95,7)" rx="2" ry="2" />
   601  <text  x="1031.51" y="335.5" ></text>
   602  </g>
   603  <g >
   604  <title>main.(*DNSHandler).handleHost (1,482 samples, 57.13%)</title><rect x="47.8" y="357" width="674.1" height="15.0" fill="rgb(238,149,52)" rx="2" ry="2" />
   605  <text  x="50.76" y="367.5" >main.(*DNSHandler).handleHost</text>
   606  </g>
   607  <g >
   608  <title>runtime.systemstack (3 samples, 0.12%)</title><rect x="863.4" y="149" width="1.3" height="15.0" fill="rgb(206,177,41)" rx="2" ry="2" />
   609  <text  x="866.38" y="159.5" ></text>
   610  </g>
   611  <g >
   612  <title>runtime.scanobject (7 samples, 0.27%)</title><rect x="74.6" y="133" width="3.2" height="15.0" fill="rgb(245,22,36)" rx="2" ry="2" />
   613  <text  x="77.60" y="143.5" ></text>
   614  </g>
   615  <g >
   616  <title>github.com/phuslu/fastdns.AppendHOSTRecord (4 samples, 0.15%)</title><rect x="711.0" y="325" width="1.8" height="15.0" fill="rgb(209,50,38)" rx="2" ry="2" />
   617  <text  x="713.99" y="335.5" ></text>
   618  </g>
   619  <g >
   620  <title>runtime.chanrecv (27 samples, 1.04%)</title><rect x="730.6" y="373" width="12.2" height="15.0" fill="rgb(236,88,34)" rx="2" ry="2" />
   621  <text  x="733.56" y="383.5" ></text>
   622  </g>
   623  <g >
   624  <title>runtime.systemstack (3 samples, 0.12%)</title><rect x="865.7" y="213" width="1.3" height="15.0" fill="rgb(229,195,46)" rx="2" ry="2" />
   625  <text  x="868.66" y="223.5" ></text>
   626  </g>
   627  <g >
   628  <title>runtime.goready.func1 (4 samples, 0.15%)</title><rect x="94.2" y="133" width="1.8" height="15.0" fill="rgb(244,112,21)" rx="2" ry="2" />
   629  <text  x="97.16" y="143.5" ></text>
   630  </g>
   631  <g >
   632  <title>runtime.(*mheap).alloc (2 samples, 0.08%)</title><rect x="1026.7" y="261" width="0.9" height="15.0" fill="rgb(219,90,45)" rx="2" ry="2" />
   633  <text  x="1029.69" y="271.5" ></text>
   634  </g>
   635  <g >
   636  <title>runtime.unlockWithRank (5 samples, 0.19%)</title><rect x="1182.3" y="389" width="2.2" height="15.0" fill="rgb(245,202,20)" rx="2" ry="2" />
   637  <text  x="1185.27" y="399.5" ></text>
   638  </g>
   639  <g >
   640  <title>runtime.checkTimers (2 samples, 0.08%)</title><rect x="1064.0" y="373" width="0.9" height="15.0" fill="rgb(206,13,49)" rx="2" ry="2" />
   641  <text  x="1066.99" y="383.5" ></text>
   642  </g>
   643  <g >
   644  <title>runtime.(*mcentral).uncacheSpan (1 samples, 0.04%)</title><rect x="865.2" y="197" width="0.5" height="15.0" fill="rgb(248,133,27)" rx="2" ry="2" />
   645  <text  x="868.20" y="207.5" ></text>
   646  </g>
   647  <g >
   648  <title>runtime.(*guintptr).cas (3 samples, 0.12%)</title><rect x="1043.1" y="373" width="1.3" height="15.0" fill="rgb(217,76,51)" rx="2" ry="2" />
   649  <text  x="1046.07" y="383.5" ></text>
   650  </g>
   651  <g >
   652  <title>runtime.(*lfstack).push (2 samples, 0.08%)</title><rect x="72.3" y="85" width="0.9" height="15.0" fill="rgb(230,0,35)" rx="2" ry="2" />
   653  <text  x="75.32" y="95.5" ></text>
   654  </g>
   655  <g >
   656  <title>runtime.gcMarkTermination.func4.1 (1 samples, 0.04%)</title><rect x="747.8" y="325" width="0.5" height="15.0" fill="rgb(208,167,48)" rx="2" ry="2" />
   657  <text  x="750.84" y="335.5" ></text>
   658  </g>
   659  <g >
   660  <title>gosave_systemstack_switch (1 samples, 0.04%)</title><rect x="1187.3" y="405" width="0.4" height="15.0" fill="rgb(206,80,27)" rx="2" ry="2" />
   661  <text  x="1190.27" y="415.5" ></text>
   662  </g>
   663  <g >
   664  <title>runtime.runqempty (1 samples, 0.04%)</title><rect x="1033.1" y="341" width="0.4" height="15.0" fill="rgb(234,148,23)" rx="2" ry="2" />
   665  <text  x="1036.06" y="351.5" ></text>
   666  </g>
   667  <g >
   668  <title>runtime.gosched_m (2 samples, 0.08%)</title><rect x="1033.1" y="405" width="0.9" height="15.0" fill="rgb(205,156,23)" rx="2" ry="2" />
   669  <text  x="1036.06" y="415.5" ></text>
   670  </g>
   671  <g >
   672  <title>runtime/pprof.profileWriter (1 samples, 0.04%)</title><rect x="1189.5" y="421" width="0.5" height="15.0" fill="rgb(234,71,20)" rx="2" ry="2" />
   673  <text  x="1192.55" y="431.5" ></text>
   674  </g>
   675  <g >
   676  <title>runtime.procyield (1 samples, 0.04%)</title><rect x="1184.5" y="341" width="0.5" height="15.0" fill="rgb(228,96,41)" rx="2" ry="2" />
   677  <text  x="1187.54" y="351.5" ></text>
   678  </g>
   679  <g >
   680  <title>runtime.mallocgc (12 samples, 0.46%)</title><rect x="862.0" y="245" width="5.5" height="15.0" fill="rgb(251,126,17)" rx="2" ry="2" />
   681  <text  x="865.02" y="255.5" ></text>
   682  </g>
   683  <g >
   684  <title>net.(*ipv6ZoneCache).name (2 samples, 0.08%)</title><rect x="849.3" y="325" width="0.9" height="15.0" fill="rgb(214,66,9)" rx="2" ry="2" />
   685  <text  x="852.28" y="335.5" ></text>
   686  </g>
   687  <g >
   688  <title>runtime.runqget (2 samples, 0.08%)</title><rect x="1180.4" y="373" width="1.0" height="15.0" fill="rgb(247,27,51)" rx="2" ry="2" />
   689  <text  x="1183.45" y="383.5" ></text>
   690  </g>
   691  <g >
   692  <title>runtime.markroot.func1 (3 samples, 0.12%)</title><rect x="763.3" y="341" width="1.4" height="15.0" fill="rgb(223,51,44)" rx="2" ry="2" />
   693  <text  x="766.31" y="351.5" ></text>
   694  </g>
   695  <g >
   696  <title>syscall.SendmsgN (1,338 samples, 51.58%)</title><rect x="96.0" y="245" width="608.6" height="15.0" fill="rgb(236,180,9)" rx="2" ry="2" />
   697  <text  x="98.98" y="255.5" >syscall.SendmsgN</text>
   698  </g>
   699  <g >
   700  <title>github.com/phuslu/fastdns.ParseMessage (23 samples, 0.89%)</title><rect x="33.7" y="373" width="10.4" height="15.0" fill="rgb(252,98,45)" rx="2" ry="2" />
   701  <text  x="36.65" y="383.5" ></text>
   702  </g>
   703  <g >
   704  <title>runtime.futexwakeup (3 samples, 0.12%)</title><rect x="94.6" y="53" width="1.4" height="15.0" fill="rgb(226,61,7)" rx="2" ry="2" />
   705  <text  x="97.61" y="63.5" ></text>
   706  </g>
   707  <g >
   708  <title>runtime.(*gcWork).tryGet (2 samples, 0.08%)</title><rect x="73.2" y="133" width="0.9" height="15.0" fill="rgb(240,18,2)" rx="2" ry="2" />
   709  <text  x="76.23" y="143.5" ></text>
   710  </g>
   711  <g >
   712  <title>runtime.netpoll (144 samples, 5.55%)</title><rect x="1082.2" y="357" width="65.5" height="15.0" fill="rgb(246,64,33)" rx="2" ry="2" />
   713  <text  x="1085.19" y="367.5" >runtime..</text>
   714  </g>
   715  <g >
   716  <title>runtime.netpollblockcommit (2 samples, 0.08%)</title><rect x="1037.6" y="389" width="0.9" height="15.0" fill="rgb(219,123,16)" rx="2" ry="2" />
   717  <text  x="1040.61" y="399.5" ></text>
   718  </g>
   719  <g >
   720  <title>runtime.startm (2 samples, 0.08%)</title><rect x="821.5" y="229" width="0.9" height="15.0" fill="rgb(232,188,39)" rx="2" ry="2" />
   721  <text  x="824.53" y="239.5" ></text>
   722  </g>
   723  <g >
   724  <title>runtime.heapBits.initSpan (1 samples, 0.04%)</title><rect x="864.7" y="165" width="0.5" height="15.0" fill="rgb(216,206,30)" rx="2" ry="2" />
   725  <text  x="867.75" y="175.5" ></text>
   726  </g>
   727  <g >
   728  <title>runtime.(*waitq).dequeue (4 samples, 0.15%)</title><rect x="809.7" y="341" width="1.8" height="15.0" fill="rgb(206,189,41)" rx="2" ry="2" />
   729  <text  x="812.71" y="351.5" ></text>
   730  </g>
   731  <g >
   732  <title>runtime.pcvalue (1 samples, 0.04%)</title><rect x="867.0" y="117" width="0.5" height="15.0" fill="rgb(229,46,4)" rx="2" ry="2" />
   733  <text  x="870.02" y="127.5" ></text>
   734  </g>
   735  <g >
   736  <title>runtime.bgsweep (5 samples, 0.19%)</title><rect x="745.6" y="421" width="2.2" height="15.0" fill="rgb(219,48,3)" rx="2" ry="2" />
   737  <text  x="748.57" y="431.5" ></text>
   738  </g>
   739  <g >
   740  <title>runtime.mapaccess2_faststr (11 samples, 0.42%)</title><rect x="716.5" y="325" width="5.0" height="15.0" fill="rgb(251,225,13)" rx="2" ry="2" />
   741  <text  x="719.45" y="335.5" ></text>
   742  </g>
   743  <g >
   744  <title>runtime.execute (14 samples, 0.54%)</title><rect x="1064.9" y="373" width="6.4" height="15.0" fill="rgb(233,74,17)" rx="2" ry="2" />
   745  <text  x="1067.90" y="383.5" ></text>
   746  </g>
   747  <g >
   748  <title>runtime.(*mcache).nextFree (3 samples, 0.12%)</title><rect x="1026.7" y="325" width="1.4" height="15.0" fill="rgb(243,138,19)" rx="2" ry="2" />
   749  <text  x="1029.69" y="335.5" ></text>
   750  </g>
   751  <g >
   752  <title>runtime.(*mcentral).cacheSpan (2 samples, 0.08%)</title><rect x="68.7" y="181" width="0.9" height="15.0" fill="rgb(235,78,13)" rx="2" ry="2" />
   753  <text  x="71.68" y="191.5" ></text>
   754  </g>
   755  <g >
   756  <title>runtime.strhash (1 samples, 0.04%)</title><rect x="721.0" y="309" width="0.5" height="15.0" fill="rgb(237,73,17)" rx="2" ry="2" />
   757  <text  x="724.00" y="319.5" ></text>
   758  </g>
   759  <g >
   760  <title>runtime.lockWithRank (1 samples, 0.04%)</title><rect x="1184.5" y="373" width="0.5" height="15.0" fill="rgb(230,8,23)" rx="2" ry="2" />
   761  <text  x="1187.54" y="383.5" ></text>
   762  </g>
   763  <g >
   764  <title>runtime.netpollready (1 samples, 0.04%)</title><rect x="1145.4" y="341" width="0.5" height="15.0" fill="rgb(224,12,45)" rx="2" ry="2" />
   765  <text  x="1148.42" y="351.5" ></text>
   766  </g>
   767  <g >
   768  <title>runtime.pidleput (6 samples, 0.23%)</title><rect x="1150.4" y="357" width="2.8" height="15.0" fill="rgb(232,102,4)" rx="2" ry="2" />
   769  <text  x="1153.42" y="367.5" ></text>
   770  </g>
   771  <g >
   772  <title>runtime.(*gcWork).put (2 samples, 0.08%)</title><rect x="779.2" y="325" width="0.9" height="15.0" fill="rgb(253,127,11)" rx="2" ry="2" />
   773  <text  x="782.23" y="335.5" ></text>
   774  </g>
   775  <g >
   776  <title>internal/bytealg.Equal (3 samples, 0.12%)</title><rect x="66.0" y="245" width="1.3" height="15.0" fill="rgb(207,118,7)" rx="2" ry="2" />
   777  <text  x="68.95" y="255.5" ></text>
   778  </g>
   779  <g >
   780  <title>runtime.newstack (1 samples, 0.04%)</title><rect x="80.1" y="261" width="0.4" height="15.0" fill="rgb(221,73,40)" rx="2" ry="2" />
   781  <text  x="83.05" y="271.5" ></text>
   782  </g>
   783  <g >
   784  <title>github.com/phuslu/fastdns.(*workerPool).workerFunc (1,617 samples, 62.34%)</title><rect x="10.0" y="405" width="735.6" height="15.0" fill="rgb(205,100,10)" rx="2" ry="2" />
   785  <text  x="13.00" y="415.5" >github.com/phuslu/fastdns.(*workerPool).workerFunc</text>
   786  </g>
   787  <g >
   788  <title>runtime.procyield (1 samples, 0.04%)</title><rect x="707.8" y="181" width="0.5" height="15.0" fill="rgb(216,164,22)" rx="2" ry="2" />
   789  <text  x="710.81" y="191.5" ></text>
   790  </g>
   791  <g >
   792  <title>github.com/phuslu/fastdns.(*workerPool).getCh (6 samples, 0.23%)</title><rect x="807.0" y="357" width="2.7" height="15.0" fill="rgb(217,45,47)" rx="2" ry="2" />
   793  <text  x="809.98" y="367.5" ></text>
   794  </g>
   795  <g >
   796  <title>runtime.(*mcache).refill (3 samples, 0.12%)</title><rect x="1026.7" y="309" width="1.4" height="15.0" fill="rgb(231,194,22)" rx="2" ry="2" />
   797  <text  x="1029.69" y="319.5" ></text>
   798  </g>
   799  <g >
   800  <title>runtime.memclrNoHeapPointers (1 samples, 0.04%)</title><rect x="68.7" y="133" width="0.4" height="15.0" fill="rgb(229,106,30)" rx="2" ry="2" />
   801  <text  x="71.68" y="143.5" ></text>
   802  </g>
   803  <g >
   804  <title>runtime.lock2 (1 samples, 0.04%)</title><rect x="91.0" y="181" width="0.4" height="15.0" fill="rgb(221,136,34)" rx="2" ry="2" />
   805  <text  x="93.97" y="191.5" ></text>
   806  </g>
   807  <g >
   808  <title>runtime.markroot (3 samples, 0.12%)</title><rect x="763.3" y="357" width="1.4" height="15.0" fill="rgb(219,128,46)" rx="2" ry="2" />
   809  <text  x="766.31" y="367.5" ></text>
   810  </g>
   811  <g >
   812  <title>runtime.updateTimerPMask (3 samples, 0.12%)</title><rect x="1151.8" y="341" width="1.4" height="15.0" fill="rgb(232,109,53)" rx="2" ry="2" />
   813  <text  x="1154.79" y="351.5" ></text>
   814  </g>
   815  <g >
   816  <title>runtime.futexsleep (2 samples, 0.08%)</title><rect x="1165.9" y="341" width="0.9" height="15.0" fill="rgb(247,143,4)" rx="2" ry="2" />
   817  <text  x="1168.89" y="351.5" ></text>
   818  </g>
   819  <g >
   820  <title>runtime.scanframeworker (3 samples, 0.12%)</title><rect x="763.3" y="277" width="1.4" height="15.0" fill="rgb(235,55,23)" rx="2" ry="2" />
   821  <text  x="766.31" y="287.5" ></text>
   822  </g>
   823  <g >
   824  <title>internal/poll.(*FD).writeUnlock (20 samples, 0.77%)</title><rect x="86.9" y="245" width="9.1" height="15.0" fill="rgb(206,9,15)" rx="2" ry="2" />
   825  <text  x="89.88" y="255.5" ></text>
   826  </g>
   827  <g >
   828  <title>runtime.unlock2 (5 samples, 0.19%)</title><rect x="1182.3" y="373" width="2.2" height="15.0" fill="rgb(207,127,50)" rx="2" ry="2" />
   829  <text  x="1185.27" y="383.5" ></text>
   830  </g>
   831  <g >
   832  <title>runtime.futexwakeup (6 samples, 0.23%)</title><rect x="1177.7" y="309" width="2.7" height="15.0" fill="rgb(213,125,17)" rx="2" ry="2" />
   833  <text  x="1180.72" y="319.5" ></text>
   834  </g>
   835  <g >
   836  <title>runtime.goschedImpl (1 samples, 0.04%)</title><rect x="1033.1" y="389" width="0.4" height="15.0" fill="rgb(249,58,18)" rx="2" ry="2" />
   837  <text  x="1036.06" y="399.5" ></text>
   838  </g>
   839  <g >
   840  <title>github.com/phuslu/fastdns.HOST (1,455 samples, 56.09%)</title><rect x="51.9" y="341" width="661.8" height="15.0" fill="rgb(232,171,41)" rx="2" ry="2" />
   841  <text  x="54.85" y="351.5" >github.com/phuslu/fastdns.HOST</text>
   842  </g>
   843  <g >
   844  <title>runtime.epollwait (132 samples, 5.09%)</title><rect x="1085.4" y="341" width="60.0" height="15.0" fill="rgb(216,138,25)" rx="2" ry="2" />
   845  <text  x="1088.37" y="351.5" >runtim..</text>
   846  </g>
   847  <g >
   848  <title>runtime.lock2 (4 samples, 0.15%)</title><rect x="826.5" y="325" width="1.9" height="15.0" fill="rgb(248,165,5)" rx="2" ry="2" />
   849  <text  x="829.54" y="335.5" ></text>
   850  </g>
   851  <g >
   852  <title>runtime.futex (6 samples, 0.23%)</title><rect x="1177.7" y="293" width="2.7" height="15.0" fill="rgb(241,193,38)" rx="2" ry="2" />
   853  <text  x="1180.72" y="303.5" ></text>
   854  </g>
   855  <g >
   856  <title>runtime.getempty (1 samples, 0.04%)</title><rect x="779.7" y="309" width="0.4" height="15.0" fill="rgb(232,30,4)" rx="2" ry="2" />
   857  <text  x="782.68" y="319.5" ></text>
   858  </g>
   859  <g >
   860  <title>runtime.chansend (33 samples, 1.27%)</title><rect x="811.5" y="341" width="15.0" height="15.0" fill="rgb(222,99,28)" rx="2" ry="2" />
   861  <text  x="814.53" y="351.5" ></text>
   862  </g>
   863  <g >
   864  <title>runtime.(*spanSet).push (1 samples, 0.04%)</title><rect x="865.2" y="181" width="0.5" height="15.0" fill="rgb(234,59,25)" rx="2" ry="2" />
   865  <text  x="868.20" y="191.5" ></text>
   866  </g>
   867  <g >
   868  <title>runtime.exitsyscallfast_reacquired (1 samples, 0.04%)</title><rect x="1016.7" y="213" width="0.4" height="15.0" fill="rgb(217,59,15)" rx="2" ry="2" />
   869  <text  x="1019.68" y="223.5" ></text>
   870  </g>
   871  <g >
   872  <title>net.(*UDPConn).WriteMsgUDP (1,437 samples, 55.40%)</title><rect x="57.3" y="309" width="653.7" height="15.0" fill="rgb(239,116,44)" rx="2" ry="2" />
   873  <text  x="60.31" y="319.5" >net.(*UDPConn).WriteMsgUDP</text>
   874  </g>
   875  <g >
   876  <title>runtime.systemstack (1 samples, 0.04%)</title><rect x="747.8" y="373" width="0.5" height="15.0" fill="rgb(235,1,12)" rx="2" ry="2" />
   877  <text  x="750.84" y="383.5" ></text>
   878  </g>
   879  <g >
   880  <title>net.isZeros (2 samples, 0.08%)</title><rect x="712.8" y="325" width="0.9" height="15.0" fill="rgb(241,22,7)" rx="2" ry="2" />
   881  <text  x="715.81" y="335.5" ></text>
   882  </g>
   883  <g >
   884  <title>runtime.memclrNoHeapPointers (1 samples, 0.04%)</title><rect x="747.4" y="341" width="0.4" height="15.0" fill="rgb(216,128,31)" rx="2" ry="2" />
   885  <text  x="750.39" y="351.5" ></text>
   886  </g>
   887  <g >
   888  <title>syscall.anyToSockaddr (24 samples, 0.93%)</title><rect x="857.9" y="277" width="10.9" height="15.0" fill="rgb(238,195,14)" rx="2" ry="2" />
   889  <text  x="860.93" y="287.5" ></text>
   890  </g>
   891  <g >
   892  <title>internal/poll.(*fdMutex).rwlock (12 samples, 0.46%)</title><rect x="705.1" y="245" width="5.4" height="15.0" fill="rgb(207,18,49)" rx="2" ry="2" />
   893  <text  x="708.08" y="255.5" ></text>
   894  </g>
   895  <g >
   896  <title>runtime.arenaIndex (1 samples, 0.04%)</title><rect x="774.7" y="341" width="0.4" height="15.0" fill="rgb(219,107,2)" rx="2" ry="2" />
   897  <text  x="777.68" y="351.5" ></text>
   898  </g>
   899  <g >
   900  <title>runtime.nanotime1 (2 samples, 0.08%)</title><rect x="1185.5" y="421" width="0.9" height="15.0" fill="rgb(248,147,18)" rx="2" ry="2" />
   901  <text  x="1188.45" y="431.5" ></text>
   902  </g>
   903  <g >
   904  <title>runtime.gcWriteBarrier (2 samples, 0.08%)</title><rect x="93.2" y="165" width="1.0" height="15.0" fill="rgb(206,203,14)" rx="2" ry="2" />
   905  <text  x="96.25" y="175.5" ></text>
   906  </g>
   907  <g >
   908  <title>runtime.checkTimers (4 samples, 0.15%)</title><rect x="1079.9" y="357" width="1.8" height="15.0" fill="rgb(211,67,18)" rx="2" ry="2" />
   909  <text  x="1082.92" y="367.5" ></text>
   910  </g>
   911  <g >
   912  <title>runtime.newobject (28 samples, 1.08%)</title><rect x="67.3" y="245" width="12.8" height="15.0" fill="rgb(247,69,12)" rx="2" ry="2" />
   913  <text  x="70.32" y="255.5" ></text>
   914  </g>
   915  <g >
   916  <title>runtime.heapBits.forwardOrBoundary (1 samples, 0.04%)</title><rect x="864.7" y="149" width="0.5" height="15.0" fill="rgb(227,19,31)" rx="2" ry="2" />
   917  <text  x="867.75" y="159.5" ></text>
   918  </g>
   919  <g >
   920  <title>runtime.gcDrain (128 samples, 4.93%)</title><rect x="748.3" y="373" width="58.2" height="15.0" fill="rgb(206,0,38)" rx="2" ry="2" />
   921  <text  x="751.30" y="383.5" >runtim..</text>
   922  </g>
   923  <g >
   924  <title>sync.(*poolChain).popHead (2 samples, 0.08%)</title><rect x="838.4" y="341" width="0.9" height="15.0" fill="rgb(228,23,34)" rx="2" ry="2" />
   925  <text  x="841.37" y="351.5" ></text>
   926  </g>
   927  <g >
   928  <title>all (2,594 samples, 100%)</title><rect x="10.0" y="437" width="1180.0" height="15.0" fill="rgb(232,1,0)" rx="2" ry="2" />
   929  <text  x="13.00" y="447.5" ></text>
   930  </g>
   931  <g >
   932  <title>github.com/phuslu/fastdns.serve (20 samples, 0.77%)</title><rect x="830.2" y="373" width="9.1" height="15.0" fill="rgb(230,52,40)" rx="2" ry="2" />
   933  <text  x="833.18" y="383.5" ></text>
   934  </g>
   935  <g >
   936  <title>internal/poll.(*pollDesc).prepare (1 samples, 0.04%)</title><rect x="1019.0" y="293" width="0.4" height="15.0" fill="rgb(207,143,54)" rx="2" ry="2" />
   937  <text  x="1021.96" y="303.5" ></text>
   938  </g>
   939  <g >
   940  <title>internal/poll.(*FD).writeLock (13 samples, 0.50%)</title><rect x="704.6" y="261" width="5.9" height="15.0" fill="rgb(207,11,32)" rx="2" ry="2" />
   941  <text  x="707.63" y="271.5" ></text>
   942  </g>
   943  <g >
   944  <title>sync.(*poolChain).popTail (1 samples, 0.04%)</title><rect x="837.5" y="325" width="0.4" height="15.0" fill="rgb(239,34,1)" rx="2" ry="2" />
   945  <text  x="840.46" y="335.5" ></text>
   946  </g>
   947  <g >
   948  <title>runtime.park_m (331 samples, 12.76%)</title><rect x="1034.0" y="405" width="150.5" height="15.0" fill="rgb(227,130,5)" rx="2" ry="2" />
   949  <text  x="1036.97" y="415.5" >runtime.park_m</text>
   950  </g>
   951  <g >
   952  <title>runtime.spanOf (1 samples, 0.04%)</title><rect x="1022.1" y="229" width="0.5" height="15.0" fill="rgb(218,126,34)" rx="2" ry="2" />
   953  <text  x="1025.14" y="239.5" ></text>
   954  </g>
   955  <g >
   956  <title>runtime.procyield (1 samples, 0.04%)</title><rect x="1166.8" y="341" width="0.5" height="15.0" fill="rgb(222,228,30)" rx="2" ry="2" />
   957  <text  x="1169.80" y="351.5" ></text>
   958  </g>
   959  <g >
   960  <title>github.com/phuslu/fastdns.(*workerPool).getCh.func1 (1,617 samples, 62.34%)</title><rect x="10.0" y="421" width="735.6" height="15.0" fill="rgb(246,89,45)" rx="2" ry="2" />
   961  <text  x="13.00" y="431.5" >github.com/phuslu/fastdns.(*workerPool).getCh.func1</text>
   962  </g>
   963  <g >
   964  <title>runtime.send (30 samples, 1.16%)</title><rect x="812.9" y="325" width="13.6" height="15.0" fill="rgb(227,149,31)" rx="2" ry="2" />
   965  <text  x="815.89" y="335.5" ></text>
   966  </g>
   967  <g >
   968  <title>runtime.(*lfstack).pop (5 samples, 0.19%)</title><rect x="755.6" y="325" width="2.2" height="15.0" fill="rgb(226,48,53)" rx="2" ry="2" />
   969  <text  x="758.57" y="335.5" ></text>
   970  </g>
   971  <g >
   972  <title>runtime.chanrecv2 (34 samples, 1.31%)</title><rect x="729.2" y="389" width="15.5" height="15.0" fill="rgb(226,46,25)" rx="2" ry="2" />
   973  <text  x="732.19" y="399.5" ></text>
   974  </g>
   975  <g >
   976  <title>runtime.heapBits.next (1 samples, 0.04%)</title><rect x="866.6" y="149" width="0.4" height="15.0" fill="rgb(241,75,37)" rx="2" ry="2" />
   977  <text  x="869.57" y="159.5" ></text>
   978  </g>
   979  <g >
   980  <title>runtime.newAllocBits (1 samples, 0.04%)</title><rect x="863.8" y="101" width="0.5" height="15.0" fill="rgb(215,203,36)" rx="2" ry="2" />
   981  <text  x="866.84" y="111.5" ></text>
   982  </g>
   983  <g >
   984  <title>runtime.acquirem (1 samples, 0.04%)</title><rect x="67.3" y="229" width="0.5" height="15.0" fill="rgb(208,30,38)" rx="2" ry="2" />
   985  <text  x="70.32" y="239.5" ></text>
   986  </g>
   987  <g >
   988  <title>syscall.Syscall (1,326 samples, 51.12%)</title><rect x="101.4" y="213" width="603.2" height="15.0" fill="rgb(205,123,10)" rx="2" ry="2" />
   989  <text  x="104.43" y="223.5" >syscall.Syscall</text>
   990  </g>
   991  <g >
   992  <title>runtime.mcall (336 samples, 12.95%)</title><rect x="1031.7" y="421" width="152.8" height="15.0" fill="rgb(225,54,31)" rx="2" ry="2" />
   993  <text  x="1034.70" y="431.5" >runtime.mcall</text>
   994  </g>
   995  <g >
   996  <title>runtime.systemstack (4 samples, 0.15%)</title><rect x="94.2" y="149" width="1.8" height="15.0" fill="rgb(209,22,24)" rx="2" ry="2" />
   997  <text  x="97.16" y="159.5" ></text>
   998  </g>
   999  <g >
  1000  <title>runtime.copystack (1 samples, 0.04%)</title><rect x="80.1" y="245" width="0.4" height="15.0" fill="rgb(209,53,21)" rx="2" ry="2" />
  1001  <text  x="83.05" y="255.5" ></text>
  1002  </g>
  1003  <g >
  1004  <title>sync.(*Pool).getSlow (4 samples, 0.15%)</title><rect x="836.1" y="341" width="1.8" height="15.0" fill="rgb(218,75,23)" rx="2" ry="2" />
  1005  <text  x="839.09" y="351.5" ></text>
  1006  </g>
  1007  <g >
  1008  <title>runtime.pageIndexOf (2 samples, 0.08%)</title><rect x="76.9" y="117" width="0.9" height="15.0" fill="rgb(220,9,9)" rx="2" ry="2" />
  1009  <text  x="79.87" y="127.5" ></text>
  1010  </g>
  1011  <g >
  1012  <title>net.(*netFD).writeMsg (1,386 samples, 53.43%)</title><rect x="80.5" y="277" width="630.5" height="15.0" fill="rgb(238,153,37)" rx="2" ry="2" />
  1013  <text  x="83.51" y="287.5" >net.(*netFD).writeMsg</text>
  1014  </g>
  1015  <g >
  1016  <title>runtime.runqsteal (10 samples, 0.39%)</title><rect x="1154.1" y="357" width="4.5" height="15.0" fill="rgb(209,120,16)" rx="2" ry="2" />
  1017  <text  x="1157.06" y="367.5" ></text>
  1018  </g>
  1019  <g >
  1020  <title>runtime.gcWriteBarrier (2 samples, 0.08%)</title><rect x="709.6" y="165" width="0.9" height="15.0" fill="rgb(247,79,52)" rx="2" ry="2" />
  1021  <text  x="712.63" y="175.5" ></text>
  1022  </g>
  1023  <g >
  1024  <title>runtime.futex (10 samples, 0.39%)</title><rect x="1160.4" y="293" width="4.6" height="15.0" fill="rgb(249,96,32)" rx="2" ry="2" />
  1025  <text  x="1163.43" y="303.5" ></text>
  1026  </g>
  1027  <g >
  1028  <title>main.main (495 samples, 19.08%)</title><rect x="806.5" y="405" width="225.2" height="15.0" fill="rgb(214,79,7)" rx="2" ry="2" />
  1029  <text  x="809.52" y="415.5" >main.main</text>
  1030  </g>
  1031  <g >
  1032  <title>runtime.unlock2 (2 samples, 0.08%)</title><rect x="1181.4" y="357" width="0.9" height="15.0" fill="rgb(210,109,33)" rx="2" ry="2" />
  1033  <text  x="1184.36" y="367.5" ></text>
  1034  </g>
  1035  <g >
  1036  <title>syscall.(*SockaddrInet6).sockaddr (5 samples, 0.19%)</title><rect x="98.7" y="229" width="2.3" height="15.0" fill="rgb(247,34,14)" rx="2" ry="2" />
  1037  <text  x="101.70" y="239.5" ></text>
  1038  </g>
  1039  <g >
  1040  <title>runtime.gcDrainN (18 samples, 0.69%)</title><rect x="69.6" y="149" width="8.2" height="15.0" fill="rgb(228,207,27)" rx="2" ry="2" />
  1041  <text  x="72.59" y="159.5" ></text>
  1042  </g>
  1043  <g >
  1044  <title>runtime.(*mcache).prepareForSweep (1 samples, 0.04%)</title><rect x="747.8" y="309" width="0.5" height="15.0" fill="rgb(243,2,5)" rx="2" ry="2" />
  1045  <text  x="750.84" y="319.5" ></text>
  1046  </g>
  1047  <g >
  1048  <title>runtime.nanotime (5 samples, 0.19%)</title><rect x="21.4" y="357" width="2.2" height="15.0" fill="rgb(226,181,17)" rx="2" ry="2" />
  1049  <text  x="24.37" y="367.5" ></text>
  1050  </g>
  1051  <g >
  1052  <title>runtime.futexsleep (10 samples, 0.39%)</title><rect x="1160.4" y="309" width="4.6" height="15.0" fill="rgb(222,195,32)" rx="2" ry="2" />
  1053  <text  x="1163.43" y="319.5" ></text>
  1054  </g>
  1055  <g >
  1056  <title>runtime.markBits.isMarked (40 samples, 1.54%)</title><rect x="780.1" y="341" width="18.2" height="15.0" fill="rgb(237,12,26)" rx="2" ry="2" />
  1057  <text  x="783.14" y="351.5" ></text>
  1058  </g>
  1059  <g >
  1060  <title>time.Now (19 samples, 0.73%)</title><rect x="20.0" y="373" width="8.7" height="15.0" fill="rgb(221,173,43)" rx="2" ry="2" />
  1061  <text  x="23.01" y="383.5" ></text>
  1062  </g>
  1063  <g >
  1064  <title>runtime.netpollunblock (4 samples, 0.15%)</title><rect x="1145.9" y="341" width="1.8" height="15.0" fill="rgb(210,162,4)" rx="2" ry="2" />
  1065  <text  x="1148.88" y="351.5" ></text>
  1066  </g>
  1067  <g >
  1068  <title>runtime.systemstack (18 samples, 0.69%)</title><rect x="814.3" y="293" width="8.1" height="15.0" fill="rgb(242,102,7)" rx="2" ry="2" />
  1069  <text  x="817.26" y="303.5" ></text>
  1070  </g>
  1071  <g >
  1072  <title>runtime.profilealloc (1 samples, 0.04%)</title><rect x="867.0" y="229" width="0.5" height="15.0" fill="rgb(232,195,25)" rx="2" ry="2" />
  1073  <text  x="870.02" y="239.5" ></text>
  1074  </g>
  1075  <g >
  1076  <title>runtime.wakep (7 samples, 0.27%)</title><rect x="1177.3" y="357" width="3.1" height="15.0" fill="rgb(216,176,40)" rx="2" ry="2" />
  1077  <text  x="1180.26" y="367.5" ></text>
  1078  </g>
  1079  <g >
  1080  <title>main.(*DumpInfoImpl).GetHostRecords (17 samples, 0.66%)</title><rect x="713.7" y="341" width="7.8" height="15.0" fill="rgb(216,179,26)" rx="2" ry="2" />
  1081  <text  x="716.72" y="351.5" ></text>
  1082  </g>
  1083  <g >
  1084  <title>runtime.spanOf (1 samples, 0.04%)</title><rect x="806.1" y="341" width="0.4" height="15.0" fill="rgb(246,150,27)" rx="2" ry="2" />
  1085  <text  x="809.07" y="351.5" ></text>
  1086  </g>
  1087  <g >
  1088  <title>runtime.gcBgMarkWorker (129 samples, 4.97%)</title><rect x="747.8" y="421" width="58.7" height="15.0" fill="rgb(238,179,18)" rx="2" ry="2" />
  1089  <text  x="750.84" y="431.5" >runtim..</text>
  1090  </g>
  1091  <g >
  1092  <title>runtime.(*mspan).base (1 samples, 0.04%)</title><rect x="773.8" y="341" width="0.4" height="15.0" fill="rgb(236,198,8)" rx="2" ry="2" />
  1093  <text  x="776.77" y="351.5" ></text>
  1094  </g>
  1095  <g >
  1096  <title>runtime.wbBufFlush1 (1 samples, 0.04%)</title><rect x="1022.1" y="245" width="0.5" height="15.0" fill="rgb(248,109,13)" rx="2" ry="2" />
  1097  <text  x="1025.14" y="255.5" ></text>
  1098  </g>
  1099  <g >
  1100  <title>memeqbody (3 samples, 0.12%)</title><rect x="66.0" y="229" width="1.3" height="15.0" fill="rgb(247,151,48)" rx="2" ry="2" />
  1101  <text  x="68.95" y="239.5" ></text>
  1102  </g>
  1103  <g >
  1104  <title>runtime.(*mspan).sweep (5 samples, 0.19%)</title><rect x="745.6" y="389" width="2.2" height="15.0" fill="rgb(209,118,1)" rx="2" ry="2" />
  1105  <text  x="748.57" y="399.5" ></text>
  1106  </g>
  1107  <g >
  1108  <title>runtime.walltime (6 samples, 0.23%)</title><rect x="23.6" y="357" width="2.8" height="15.0" fill="rgb(212,128,6)" rx="2" ry="2" />
  1109  <text  x="26.65" y="367.5" ></text>
  1110  </g>
  1111  <g >
  1112  <title>runtime.chansend.func1 (1 samples, 0.04%)</title><rect x="813.3" y="309" width="0.5" height="15.0" fill="rgb(232,143,1)" rx="2" ry="2" />
  1113  <text  x="816.35" y="319.5" ></text>
  1114  </g>
  1115  <g >
  1116  <title>runtime.procPin (1 samples, 0.04%)</title><rect x="726.0" y="341" width="0.5" height="15.0" fill="rgb(252,6,32)" rx="2" ry="2" />
  1117  <text  x="729.01" y="351.5" ></text>
  1118  </g>
  1119  <g >
  1120  <title>runtime.gcBgMarkWorker.func2 (128 samples, 4.93%)</title><rect x="748.3" y="389" width="58.2" height="15.0" fill="rgb(242,206,26)" rx="2" ry="2" />
  1121  <text  x="751.30" y="399.5" >runtim..</text>
  1122  </g>
  1123  <g >
  1124  <title>runtime.cansemacquire (1 samples, 0.04%)</title><rect x="705.5" y="213" width="0.5" height="15.0" fill="rgb(225,23,45)" rx="2" ry="2" />
  1125  <text  x="708.54" y="223.5" ></text>
  1126  </g>
  1127  <g >
  1128  <title>sync.(*Mutex).Unlock (2 samples, 0.08%)</title><rect x="744.7" y="389" width="0.9" height="15.0" fill="rgb(224,83,43)" rx="2" ry="2" />
  1129  <text  x="747.66" y="399.5" ></text>
  1130  </g>
  1131  <g >
  1132  <title>runtime.markBits.isMarked (2 samples, 0.08%)</title><rect x="76.0" y="117" width="0.9" height="15.0" fill="rgb(228,180,8)" rx="2" ry="2" />
  1133  <text  x="78.96" y="127.5" ></text>
  1134  </g>
  1135  <g >
  1136  <title>runtime.(*gcControllerState).enlistWorker (1 samples, 0.04%)</title><rect x="779.2" y="309" width="0.5" height="15.0" fill="rgb(223,185,16)" rx="2" ry="2" />
  1137  <text  x="782.23" y="319.5" ></text>
  1138  </g>
  1139  <g >
  1140  <title>runtime.gcAssistAlloc (3 samples, 0.12%)</title><rect x="865.7" y="229" width="1.3" height="15.0" fill="rgb(244,68,9)" rx="2" ry="2" />
  1141  <text  x="868.66" y="239.5" ></text>
  1142  </g>
  1143  <g >
  1144  <title>github.com/phuslu/fastdns.(*workerPool).release (23 samples, 0.89%)</title><rect x="18.2" y="389" width="10.5" height="15.0" fill="rgb(235,79,21)" rx="2" ry="2" />
  1145  <text  x="21.19" y="399.5" ></text>
  1146  </g>
  1147  <g >
  1148  <title>runtime.lockWithRank (4 samples, 0.15%)</title><rect x="742.8" y="373" width="1.9" height="15.0" fill="rgb(228,9,4)" rx="2" ry="2" />
  1149  <text  x="745.84" y="383.5" ></text>
  1150  </g>
  1151  <g >
  1152  <title>runtime.gcAssistAlloc.func1 (3 samples, 0.12%)</title><rect x="865.7" y="197" width="1.3" height="15.0" fill="rgb(219,222,0)" rx="2" ry="2" />
  1153  <text  x="868.66" y="207.5" ></text>
  1154  </g>
  1155  <g >
  1156  <title>sync.(*poolDequeue).pushHead (2 samples, 0.08%)</title><rect x="728.3" y="341" width="0.9" height="15.0" fill="rgb(234,175,16)" rx="2" ry="2" />
  1157  <text  x="731.28" y="351.5" ></text>
  1158  </g>
  1159  <g >
  1160  <title>runtime.putfull (1 samples, 0.04%)</title><rect x="866.1" y="117" width="0.5" height="15.0" fill="rgb(236,187,25)" rx="2" ry="2" />
  1161  <text  x="869.11" y="127.5" ></text>
  1162  </g>
  1163  <g >
  1164  <title>runtime.memclrNoHeapPointers (2 samples, 0.08%)</title><rect x="1026.7" y="245" width="0.9" height="15.0" fill="rgb(225,71,46)" rx="2" ry="2" />
  1165  <text  x="1029.69" y="255.5" ></text>
  1166  </g>
  1167  <g >
  1168  <title>github.com/phuslu/fastdns.(*workerPool).Serve (52 samples, 2.00%)</title><rect x="806.5" y="373" width="23.7" height="15.0" fill="rgb(239,46,35)" rx="2" ry="2" />
  1169  <text  x="809.52" y="383.5" >g..</text>
  1170  </g>
  1171  <g >
  1172  <title>sync.(*Pool).Put (16 samples, 0.62%)</title><rect x="721.9" y="373" width="7.3" height="15.0" fill="rgb(254,220,43)" rx="2" ry="2" />
  1173  <text  x="724.91" y="383.5" ></text>
  1174  </g>
  1175  <g >
  1176  <title>runtime.(*semaRoot).queue (3 samples, 0.12%)</title><rect x="709.2" y="197" width="1.3" height="15.0" fill="rgb(235,2,38)" rx="2" ry="2" />
  1177  <text  x="712.18" y="207.5" ></text>
  1178  </g>
  1179  <g >
  1180  <title>runtime.forEachP (1 samples, 0.04%)</title><rect x="747.8" y="341" width="0.5" height="15.0" fill="rgb(231,7,51)" rx="2" ry="2" />
  1181  <text  x="750.84" y="351.5" ></text>
  1182  </g>
  1183  <g >
  1184  <title>runtime.gcMarkTermination.func4 (1 samples, 0.04%)</title><rect x="747.8" y="357" width="0.5" height="15.0" fill="rgb(226,183,39)" rx="2" ry="2" />
  1185  <text  x="750.84" y="367.5" ></text>
  1186  </g>
  1187  <g >
  1188  <title>runtime.(*gcBitsArena).tryAlloc (1 samples, 0.04%)</title><rect x="863.8" y="85" width="0.5" height="15.0" fill="rgb(244,206,2)" rx="2" ry="2" />
  1189  <text  x="866.84" y="95.5" ></text>
  1190  </g>
  1191  <g >
  1192  <title>runtime.acquirep (1 samples, 0.04%)</title><rect x="1159.1" y="341" width="0.4" height="15.0" fill="rgb(248,77,19)" rx="2" ry="2" />
  1193  <text  x="1162.07" y="351.5" ></text>
  1194  </g>
  1195  <g >
  1196  <title>runtime.(*profBuf).read (1 samples, 0.04%)</title><rect x="1189.5" y="389" width="0.5" height="15.0" fill="rgb(250,96,39)" rx="2" ry="2" />
  1197  <text  x="1192.55" y="399.5" ></text>
  1198  </g>
  1199  <g >
  1200  <title>runtime.(*stackScanState).addObject (1 samples, 0.04%)</title><rect x="763.3" y="261" width="0.5" height="15.0" fill="rgb(245,118,38)" rx="2" ry="2" />
  1201  <text  x="766.31" y="271.5" ></text>
  1202  </g>
  1203  <g >
  1204  <title>runtime.(*randomEnum).next (39 samples, 1.50%)</title><rect x="1045.3" y="373" width="17.8" height="15.0" fill="rgb(225,156,29)" rx="2" ry="2" />
  1205  <text  x="1048.34" y="383.5" ></text>
  1206  </g>
  1207  <g >
  1208  <title>runtime.memmove (3 samples, 0.12%)</title><rect x="42.8" y="357" width="1.3" height="15.0" fill="rgb(247,185,31)" rx="2" ry="2" />
  1209  <text  x="45.75" y="367.5" ></text>
  1210  </g>
  1211  <g >
  1212  <title>runtime.(*gcBits).bitp (1 samples, 0.04%)</title><rect x="773.3" y="341" width="0.5" height="15.0" fill="rgb(246,198,7)" rx="2" ry="2" />
  1213  <text  x="776.32" y="351.5" ></text>
  1214  </g>
  1215  <g >
  1216  <title>main.(*DumpInfoReloader).GetHostRecords (1 samples, 0.04%)</title><rect x="721.5" y="341" width="0.4" height="15.0" fill="rgb(209,141,48)" rx="2" ry="2" />
  1217  <text  x="724.46" y="351.5" ></text>
  1218  </g>
  1219  <g >
  1220  <title>internal/poll.(*pollDesc).prepareRead (1 samples, 0.04%)</title><rect x="1019.0" y="309" width="0.4" height="15.0" fill="rgb(223,50,9)" rx="2" ry="2" />
  1221  <text  x="1021.96" y="319.5" ></text>
  1222  </g>
  1223  <g >
  1224  <title>runtime.(*gcBitsArena).tryAlloc (2 samples, 0.08%)</title><rect x="746.0" y="373" width="0.9" height="15.0" fill="rgb(229,196,20)" rx="2" ry="2" />
  1225  <text  x="749.02" y="383.5" ></text>
  1226  </g>
  1227  <g >
  1228  <title>runtime.releasem (1 samples, 0.04%)</title><rect x="742.4" y="357" width="0.4" height="15.0" fill="rgb(223,23,43)" rx="2" ry="2" />
  1229  <text  x="745.38" y="367.5" ></text>
  1230  </g>
  1231  <g >
  1232  <title>runtime.casgstatus (4 samples, 0.15%)</title><rect x="701.0" y="181" width="1.8" height="15.0" fill="rgb(253,105,11)" rx="2" ry="2" />
  1233  <text  x="703.99" y="191.5" ></text>
  1234  </g>
  1235  <g >
  1236  <title>runtime.(*mcentral).cacheSpan (2 samples, 0.08%)</title><rect x="1026.7" y="293" width="0.9" height="15.0" fill="rgb(246,209,3)" rx="2" ry="2" />
  1237  <text  x="1029.69" y="303.5" ></text>
  1238  </g>
  1239  <g >
  1240  <title>runtime.goready.func1 (18 samples, 0.69%)</title><rect x="814.3" y="277" width="8.1" height="15.0" fill="rgb(220,41,24)" rx="2" ry="2" />
  1241  <text  x="817.26" y="287.5" ></text>
  1242  </g>
  1243  <g >
  1244  <title>runtime.pidleget (3 samples, 0.12%)</title><rect x="1149.1" y="357" width="1.3" height="15.0" fill="rgb(232,201,14)" rx="2" ry="2" />
  1245  <text  x="1152.06" y="367.5" ></text>
  1246  </g>
  1247  <g >
  1248  <title>runtime.(*headTailIndex).incTail (1 samples, 0.04%)</title><rect x="865.2" y="165" width="0.5" height="15.0" fill="rgb(248,83,14)" rx="2" ry="2" />
  1249  <text  x="868.20" y="175.5" ></text>
  1250  </g>
  1251  <g >
  1252  <title>runtime.runqempty (2 samples, 0.08%)</title><rect x="1153.2" y="357" width="0.9" height="15.0" fill="rgb(216,43,13)" rx="2" ry="2" />
  1253  <text  x="1156.15" y="367.5" ></text>
  1254  </g>
  1255  <g >
  1256  <title>runtime.(*randomEnum).position (2 samples, 0.08%)</title><rect x="1063.1" y="373" width="0.9" height="15.0" fill="rgb(215,43,0)" rx="2" ry="2" />
  1257  <text  x="1066.08" y="383.5" ></text>
  1258  </g>
  1259  <g >
  1260  <title>runtime.arenaIndex (1 samples, 0.04%)</title><rect x="864.3" y="117" width="0.4" height="15.0" fill="rgb(220,110,20)" rx="2" ry="2" />
  1261  <text  x="867.29" y="127.5" ></text>
  1262  </g>
  1263  <g >
  1264  <title>runtime.unlockWithRank (2 samples, 0.08%)</title><rect x="1181.4" y="373" width="0.9" height="15.0" fill="rgb(226,151,42)" rx="2" ry="2" />
  1265  <text  x="1184.36" y="383.5" ></text>
  1266  </g>
  1267  <g >
  1268  <title>main.(*DNSHandler).ServeDNS (1,490 samples, 57.44%)</title><rect x="44.1" y="373" width="677.8" height="15.0" fill="rgb(206,70,27)" rx="2" ry="2" />
  1269  <text  x="47.12" y="383.5" >main.(*DNSHandler).ServeDNS</text>
  1270  </g>
  1271  <g >
  1272  <title>runtime.casgstatus (1 samples, 0.04%)</title><rect x="1079.5" y="357" width="0.4" height="15.0" fill="rgb(232,122,31)" rx="2" ry="2" />
  1273  <text  x="1082.46" y="367.5" ></text>
  1274  </g>
  1275  <g >
  1276  <title>runtime.putempty (2 samples, 0.08%)</title><rect x="761.5" y="341" width="0.9" height="15.0" fill="rgb(230,94,2)" rx="2" ry="2" />
  1277  <text  x="764.49" y="351.5" ></text>
  1278  </g>
  1279  <g >
  1280  <title>runtime.systemstack (1 samples, 0.04%)</title><rect x="746.9" y="357" width="0.5" height="15.0" fill="rgb(221,12,4)" rx="2" ry="2" />
  1281  <text  x="749.93" y="367.5" ></text>
  1282  </g>
  1283  <g >
  1284  <title>runtime.(*mcache).refill (2 samples, 0.08%)</title><rect x="68.7" y="197" width="0.9" height="15.0" fill="rgb(245,147,26)" rx="2" ry="2" />
  1285  <text  x="71.68" y="207.5" ></text>
  1286  </g>
  1287  <g >
  1288  <title>internal/poll.runtime_pollWait (4 samples, 0.15%)</title><rect x="1020.3" y="277" width="1.8" height="15.0" fill="rgb(216,29,26)" rx="2" ry="2" />
  1289  <text  x="1023.32" y="287.5" ></text>
  1290  </g>
  1291  <g >
  1292  <title>runtime.semrelease1 (10 samples, 0.39%)</title><rect x="91.4" y="197" width="4.6" height="15.0" fill="rgb(249,49,26)" rx="2" ry="2" />
  1293  <text  x="94.43" y="207.5" ></text>
  1294  </g>
  1295  <g >
  1296  <title>runtime.(*gcWork).tryGet (6 samples, 0.23%)</title><rect x="759.7" y="357" width="2.7" height="15.0" fill="rgb(246,46,46)" rx="2" ry="2" />
  1297  <text  x="762.67" y="367.5" ></text>
  1298  </g>
  1299  <g >
  1300  <title>syscall.recvfrom (327 samples, 12.61%)</title><rect x="868.8" y="277" width="148.8" height="15.0" fill="rgb(241,111,54)" rx="2" ry="2" />
  1301  <text  x="871.84" y="287.5" >syscall.recvfrom</text>
  1302  </g>
  1303  <g >
  1304  <title>runtime.unlock2 (7 samples, 0.27%)</title><rect x="823.4" y="293" width="3.1" height="15.0" fill="rgb(228,44,0)" rx="2" ry="2" />
  1305  <text  x="826.35" y="303.5" ></text>
  1306  </g>
  1307  <g >
  1308  <title>runtime.futex (2 samples, 0.08%)</title><rect x="821.5" y="181" width="0.9" height="15.0" fill="rgb(215,80,39)" rx="2" ry="2" />
  1309  <text  x="824.53" y="191.5" ></text>
  1310  </g>
  1311  <g >
  1312  <title>runtime.(*lfstack).pop (1 samples, 0.04%)</title><rect x="71.9" y="101" width="0.4" height="15.0" fill="rgb(220,34,29)" rx="2" ry="2" />
  1313  <text  x="74.87" y="111.5" ></text>
  1314  </g>
  1315  <g >
  1316  <title>runtime.gentraceback (3 samples, 0.12%)</title><rect x="763.3" y="309" width="1.4" height="15.0" fill="rgb(229,19,14)" rx="2" ry="2" />
  1317  <text  x="766.31" y="319.5" ></text>
  1318  </g>
  1319  <g >
  1320  <title>sync.(*poolDequeue).popHead (1 samples, 0.04%)</title><rect x="838.8" y="325" width="0.5" height="15.0" fill="rgb(240,225,26)" rx="2" ry="2" />
  1321  <text  x="841.82" y="335.5" ></text>
  1322  </g>
  1323  <g >
  1324  <title>runtime.gogo (4 samples, 0.15%)</title><rect x="1069.5" y="357" width="1.8" height="15.0" fill="rgb(223,143,30)" rx="2" ry="2" />
  1325  <text  x="1072.45" y="367.5" ></text>
  1326  </g>
  1327  <g >
  1328  <title>runtime.(*randomEnum).done (2 samples, 0.08%)</title><rect x="1044.4" y="373" width="0.9" height="15.0" fill="rgb(225,22,42)" rx="2" ry="2" />
  1329  <text  x="1047.43" y="383.5" ></text>
  1330  </g>
  1331  <g >
  1332  <title>runtime.newArenaMayUnlock (1 samples, 0.04%)</title><rect x="747.4" y="357" width="0.4" height="15.0" fill="rgb(222,80,7)" rx="2" ry="2" />
  1333  <text  x="750.39" y="367.5" ></text>
  1334  </g>
  1335  <g >
  1336  <title>runtime.typeBitsBulkBarrier (1 samples, 0.04%)</title><rect x="822.9" y="293" width="0.5" height="15.0" fill="rgb(230,44,54)" rx="2" ry="2" />
  1337  <text  x="825.90" y="303.5" ></text>
  1338  </g>
  1339  <g >
  1340  <title>runtime.sweepone (5 samples, 0.19%)</title><rect x="745.6" y="405" width="2.2" height="15.0" fill="rgb(211,81,28)" rx="2" ry="2" />
  1341  <text  x="748.57" y="415.5" ></text>
  1342  </g>
  1343  <g >
  1344  <title>runtime.divRoundUp (1 samples, 0.04%)</title><rect x="1023.1" y="341" width="0.4" height="15.0" fill="rgb(210,164,12)" rx="2" ry="2" />
  1345  <text  x="1026.05" y="351.5" ></text>
  1346  </g>
  1347  <g >
  1348  <title>runtime.pcdatavalue (1 samples, 0.04%)</title><rect x="867.0" y="133" width="0.5" height="15.0" fill="rgb(221,141,16)" rx="2" ry="2" />
  1349  <text  x="870.02" y="143.5" ></text>
  1350  </g>
  1351  <g >
  1352  <title>runtime.sendDirect (2 samples, 0.08%)</title><rect x="822.4" y="309" width="1.0" height="15.0" fill="rgb(250,151,9)" rx="2" ry="2" />
  1353  <text  x="825.44" y="319.5" ></text>
  1354  </g>
  1355  <g >
  1356  <title>runtime.(*spanSet).push (1 samples, 0.04%)</title><rect x="1027.6" y="277" width="0.5" height="15.0" fill="rgb(243,36,30)" rx="2" ry="2" />
  1357  <text  x="1030.60" y="287.5" ></text>
  1358  </g>
  1359  <g >
  1360  <title>runtime.systemstack (128 samples, 4.93%)</title><rect x="748.3" y="405" width="58.2" height="15.0" fill="rgb(242,75,11)" rx="2" ry="2" />
  1361  <text  x="751.30" y="415.5" >runtim..</text>
  1362  </g>
  1363  <g >
  1364  <title>runtime.lockWithRank (4 samples, 0.15%)</title><rect x="826.5" y="341" width="1.9" height="15.0" fill="rgb(254,182,12)" rx="2" ry="2" />
  1365  <text  x="829.54" y="351.5" ></text>
  1366  </g>
  1367  <g >
  1368  <title>runtime.exitsyscall (14 samples, 0.54%)</title><rect x="1011.2" y="245" width="6.4" height="15.0" fill="rgb(251,227,46)" rx="2" ry="2" />
  1369  <text  x="1014.23" y="255.5" ></text>
  1370  </g>
  1371  <g >
  1372  <title>runtime.(*mcentral).grow (2 samples, 0.08%)</title><rect x="1026.7" y="277" width="0.9" height="15.0" fill="rgb(209,40,6)" rx="2" ry="2" />
  1373  <text  x="1029.69" y="287.5" ></text>
  1374  </g>
  1375  <g >
  1376  <title>runtime.runqput (4 samples, 0.15%)</title><rect x="819.3" y="245" width="1.8" height="15.0" fill="rgb(253,63,0)" rx="2" ry="2" />
  1377  <text  x="822.26" y="255.5" ></text>
  1378  </g>
  1379  <g >
  1380  <title>runtime.futex (2 samples, 0.08%)</title><rect x="1165.9" y="325" width="0.9" height="15.0" fill="rgb(240,213,54)" rx="2" ry="2" />
  1381  <text  x="1168.89" y="335.5" ></text>
  1382  </g>
  1383  <g >
  1384  <title>runtime.(*lfstack).push (4 samples, 0.15%)</title><rect x="757.8" y="309" width="1.9" height="15.0" fill="rgb(252,9,46)" rx="2" ry="2" />
  1385  <text  x="760.85" y="319.5" ></text>
  1386  </g>
  1387  <g >
  1388  <title>runtime.newstack (1 samples, 0.04%)</title><rect x="1184.5" y="405" width="0.5" height="15.0" fill="rgb(248,123,49)" rx="2" ry="2" />
  1389  <text  x="1187.54" y="415.5" ></text>
  1390  </g>
  1391  <g >
  1392  <title>runtime.(*gcWork).balance (9 samples, 0.35%)</title><rect x="755.6" y="357" width="4.1" height="15.0" fill="rgb(233,125,30)" rx="2" ry="2" />
  1393  <text  x="758.57" y="367.5" ></text>
  1394  </g>
  1395  <g >
  1396  <title>sync.(*Pool).Get (8 samples, 0.31%)</title><rect x="835.6" y="357" width="3.7" height="15.0" fill="rgb(223,223,26)" rx="2" ry="2" />
  1397  <text  x="838.64" y="367.5" ></text>
  1398  </g>
  1399  <g >
  1400  <title>runtime.futex (3 samples, 0.12%)</title><rect x="94.6" y="37" width="1.4" height="15.0" fill="rgb(229,123,7)" rx="2" ry="2" />
  1401  <text  x="97.61" y="47.5" ></text>
  1402  </g>
  1403  <g >
  1404  <title>net.(*netFD).readFrom (378 samples, 14.57%)</title><rect x="850.2" y="325" width="171.9" height="15.0" fill="rgb(251,206,54)" rx="2" ry="2" />
  1405  <text  x="853.19" y="335.5" >net.(*netFD).readFrom</text>
  1406  </g>
  1407  <g >
  1408  <title>runtime.gopreempt_m (1 samples, 0.04%)</title><rect x="1184.5" y="389" width="0.5" height="15.0" fill="rgb(208,211,12)" rx="2" ry="2" />
  1409  <text  x="1187.54" y="399.5" ></text>
  1410  </g>
  1411  <g >
  1412  <title>runtime.callers.func1 (1 samples, 0.04%)</title><rect x="867.0" y="165" width="0.5" height="15.0" fill="rgb(217,79,19)" rx="2" ry="2" />
  1413  <text  x="870.02" y="175.5" ></text>
  1414  </g>
  1415  <g >
  1416  <title>runtime.(*guintptr).cas (2 samples, 0.08%)</title><rect x="817.0" y="245" width="0.9" height="15.0" fill="rgb(225,229,21)" rx="2" ry="2" />
  1417  <text  x="819.99" y="255.5" ></text>
  1418  </g>
  1419  <g >
  1420  <title>runtime.putfull (2 samples, 0.08%)</title><rect x="72.3" y="101" width="0.9" height="15.0" fill="rgb(237,46,33)" rx="2" ry="2" />
  1421  <text  x="75.32" y="111.5" ></text>
  1422  </g>
  1423  <g >
  1424  <title>runtime.gopark (2 samples, 0.08%)</title><rect x="739.7" y="357" width="0.9" height="15.0" fill="rgb(233,129,24)" rx="2" ry="2" />
  1425  <text  x="742.65" y="367.5" ></text>
  1426  </g>
  1427  <g >
  1428  <title>runtime.ready (4 samples, 0.15%)</title><rect x="94.2" y="117" width="1.8" height="15.0" fill="rgb(247,221,33)" rx="2" ry="2" />
  1429  <text  x="97.16" y="127.5" ></text>
  1430  </g>
  1431  <g >
  1432  <title>runtime.chansend1 (41 samples, 1.58%)</title><rect x="809.7" y="357" width="18.7" height="15.0" fill="rgb(222,43,20)" rx="2" ry="2" />
  1433  <text  x="812.71" y="367.5" ></text>
  1434  </g>
  1435  <g >
  1436  <title>runtime.nextFreeFast (3 samples, 0.12%)</title><rect x="867.5" y="245" width="1.3" height="15.0" fill="rgb(205,172,34)" rx="2" ry="2" />
  1437  <text  x="870.48" y="255.5" ></text>
  1438  </g>
  1439  <g >
  1440  <title>runtime.(*mcache).nextFree (5 samples, 0.19%)</title><rect x="863.4" y="229" width="2.3" height="15.0" fill="rgb(239,66,10)" rx="2" ry="2" />
  1441  <text  x="866.38" y="239.5" ></text>
  1442  </g>
  1443  <g >
  1444  <title>runtime.(*mcentral).grow (1 samples, 0.04%)</title><rect x="68.7" y="165" width="0.4" height="15.0" fill="rgb(215,16,8)" rx="2" ry="2" />
  1445  <text  x="71.68" y="175.5" ></text>
  1446  </g>
  1447  <g >
  1448  <title>runtime.deductSweepCredit (1 samples, 0.04%)</title><rect x="69.1" y="165" width="0.5" height="15.0" fill="rgb(251,168,48)" rx="2" ry="2" />
  1449  <text  x="72.14" y="175.5" ></text>
  1450  </g>
  1451  <g >
  1452  <title>github.com/phuslu/fastdns.(*udpResponseWriter).Write (1,443 samples, 55.63%)</title><rect x="54.6" y="325" width="656.4" height="15.0" fill="rgb(234,144,53)" rx="2" ry="2" />
  1453  <text  x="57.58" y="335.5" >github.com/phuslu/fastdns.(*udpResponseWriter).Write</text>
  1454  </g>
  1455  <g >
  1456  <title>runtime.gcAssistAlloc1 (3 samples, 0.12%)</title><rect x="865.7" y="181" width="1.3" height="15.0" fill="rgb(228,36,49)" rx="2" ry="2" />
  1457  <text  x="868.66" y="191.5" ></text>
  1458  </g>
  1459  <g >
  1460  <title>runtime.(*mheap).freeSpan (1 samples, 0.04%)</title><rect x="746.9" y="373" width="0.5" height="15.0" fill="rgb(229,190,12)" rx="2" ry="2" />
  1461  <text  x="749.93" y="383.5" ></text>
  1462  </g>
  1463  <g >
  1464  <title>runtime.startm (6 samples, 0.23%)</title><rect x="1177.7" y="341" width="2.7" height="15.0" fill="rgb(205,140,43)" rx="2" ry="2" />
  1465  <text  x="1180.72" y="351.5" ></text>
  1466  </g>
  1467  <g >
  1468  <title>runtime.stopTheWorldWithSema (1 samples, 0.04%)</title><rect x="1028.1" y="293" width="0.4" height="15.0" fill="rgb(218,215,40)" rx="2" ry="2" />
  1469  <text  x="1031.06" y="303.5" ></text>
  1470  </g>
  1471  <g >
  1472  <title>runtime.callers (1 samples, 0.04%)</title><rect x="867.0" y="197" width="0.5" height="15.0" fill="rgb(217,161,50)" rx="2" ry="2" />
  1473  <text  x="870.02" y="207.5" ></text>
  1474  </g>
  1475  <g >
  1476  <title>runtime.(*mheap).alloc.func1 (3 samples, 0.12%)</title><rect x="863.4" y="133" width="1.3" height="15.0" fill="rgb(249,211,44)" rx="2" ry="2" />
  1477  <text  x="866.38" y="143.5" ></text>
  1478  </g>
  1479  <g >
  1480  <title>runtime.exitsyscallfast (4 samples, 0.15%)</title><rect x="702.8" y="181" width="1.8" height="15.0" fill="rgb(206,206,52)" rx="2" ry="2" />
  1481  <text  x="705.81" y="191.5" ></text>
  1482  </g>
  1483  <g >
  1484  <title>runtime.stackalloc (1 samples, 0.04%)</title><rect x="80.1" y="229" width="0.4" height="15.0" fill="rgb(225,98,37)" rx="2" ry="2" />
  1485  <text  x="83.05" y="239.5" ></text>
  1486  </g>
  1487  <g >
  1488  <title>runtime.putfull (4 samples, 0.15%)</title><rect x="757.8" y="325" width="1.9" height="15.0" fill="rgb(218,173,5)" rx="2" ry="2" />
  1489  <text  x="760.85" y="335.5" ></text>
  1490  </g>
  1491  <g >
  1492  <title>internal/poll.(*FD).WriteMsg (1,366 samples, 52.66%)</title><rect x="83.2" y="261" width="621.4" height="15.0" fill="rgb(217,86,41)" rx="2" ry="2" />
  1493  <text  x="86.24" y="271.5" >internal/poll.(*FD).WriteMsg</text>
  1494  </g>
  1495  <g >
  1496  <title>runtime.wbBufFlush.func1 (1 samples, 0.04%)</title><rect x="1022.1" y="261" width="0.5" height="15.0" fill="rgb(243,79,49)" rx="2" ry="2" />
  1497  <text  x="1025.14" y="271.5" ></text>
  1498  </g>
  1499  <g >
  1500  <title>sync.(*Pool).pin (1 samples, 0.04%)</title><rect x="837.9" y="341" width="0.5" height="15.0" fill="rgb(216,186,10)" rx="2" ry="2" />
  1501  <text  x="840.91" y="351.5" ></text>
  1502  </g>
  1503  <g >
  1504  <title>runtime.procUnpin (1 samples, 0.04%)</title><rect x="723.7" y="357" width="0.5" height="15.0" fill="rgb(209,158,46)" rx="2" ry="2" />
  1505  <text  x="726.73" y="367.5" ></text>
  1506  </g>
  1507  <g >
  1508  <title>github.com/phuslu/fastdns.serveCtx (1,540 samples, 59.37%)</title><rect x="28.7" y="389" width="700.5" height="15.0" fill="rgb(219,189,37)" rx="2" ry="2" />
  1509  <text  x="31.65" y="399.5" >github.com/phuslu/fastdns.serveCtx</text>
  1510  </g>
  1511  <g >
  1512  <title>runtime.systemstack (18 samples, 0.69%)</title><rect x="69.6" y="197" width="8.2" height="15.0" fill="rgb(254,206,17)" rx="2" ry="2" />
  1513  <text  x="72.59" y="207.5" ></text>
  1514  </g>
  1515  <g >
  1516  <title>runtime.futexsleep (2 samples, 0.08%)</title><rect x="706.9" y="181" width="0.9" height="15.0" fill="rgb(245,84,23)" rx="2" ry="2" />
  1517  <text  x="709.90" y="191.5" ></text>
  1518  </g>
  1519  <g >
  1520  <title>runtime.gcStart (1 samples, 0.04%)</title><rect x="1028.1" y="325" width="0.4" height="15.0" fill="rgb(212,182,13)" rx="2" ry="2" />
  1521  <text  x="1031.06" y="335.5" ></text>
  1522  </g>
  1523  <g >
  1524  <title>runtime.lock2 (5 samples, 0.19%)</title><rect x="706.0" y="197" width="2.3" height="15.0" fill="rgb(218,184,39)" rx="2" ry="2" />
  1525  <text  x="708.99" y="207.5" ></text>
  1526  </g>
  1527  <g >
  1528  <title>internal/poll.(*fdMutex).rwunlock (4 samples, 0.15%)</title><rect x="855.2" y="277" width="1.8" height="15.0" fill="rgb(226,194,51)" rx="2" ry="2" />
  1529  <text  x="858.20" y="287.5" ></text>
  1530  </g>
  1531  <g >
  1532  <title>internal/poll.runtime_Semacquire (11 samples, 0.42%)</title><rect x="705.5" y="229" width="5.0" height="15.0" fill="rgb(220,150,31)" rx="2" ry="2" />
  1533  <text  x="708.54" y="239.5" ></text>
  1534  </g>
  1535  <g >
  1536  <title>runtime.newobject (18 samples, 0.69%)</title><rect x="860.7" y="261" width="8.1" height="15.0" fill="rgb(206,158,49)" rx="2" ry="2" />
  1537  <text  x="863.66" y="271.5" ></text>
  1538  </g>
  1539  <g >
  1540  <title>net.(*UDPAddr).sockaddr (36 samples, 1.39%)</title><rect x="64.1" y="277" width="16.4" height="15.0" fill="rgb(231,25,22)" rx="2" ry="2" />
  1541  <text  x="67.13" y="287.5" ></text>
  1542  </g>
  1543  <g >
  1544  <title>runtime.pageIndexOf (17 samples, 0.66%)</title><rect x="798.3" y="341" width="7.8" height="15.0" fill="rgb(220,217,26)" rx="2" ry="2" />
  1545  <text  x="801.33" y="351.5" ></text>
  1546  </g>
  1547  <g >
  1548  <title>time.now (5 samples, 0.19%)</title><rect x="26.4" y="357" width="2.3" height="15.0" fill="rgb(205,226,12)" rx="2" ry="2" />
  1549  <text  x="29.38" y="367.5" ></text>
  1550  </g>
  1551  <g >
  1552  <title>runtime.notesleep (11 samples, 0.42%)</title><rect x="1160.0" y="325" width="5.0" height="15.0" fill="rgb(218,173,10)" rx="2" ry="2" />
  1553  <text  x="1162.98" y="335.5" ></text>
  1554  </g>
  1555  <g >
  1556  <title>runtime.lock2 (1 samples, 0.04%)</title><rect x="1184.5" y="357" width="0.5" height="15.0" fill="rgb(223,70,3)" rx="2" ry="2" />
  1557  <text  x="1187.54" y="367.5" ></text>
  1558  </g>
  1559  <g >
  1560  <title>internal/poll.(*fdMutex).rwlock (3 samples, 0.12%)</title><rect x="1017.6" y="293" width="1.4" height="15.0" fill="rgb(210,175,11)" rx="2" ry="2" />
  1561  <text  x="1020.59" y="303.5" ></text>
  1562  </g>
  1563  <g >
  1564  <title>runtime.typedmemmove (1 samples, 0.04%)</title><rect x="1022.1" y="325" width="0.5" height="15.0" fill="rgb(235,144,14)" rx="2" ry="2" />
  1565  <text  x="1025.14" y="335.5" ></text>
  1566  </g>
  1567  <g >
  1568  <title>runtime.nanotime (6 samples, 0.23%)</title><rect x="1167.3" y="373" width="2.7" height="15.0" fill="rgb(216,163,31)" rx="2" ry="2" />
  1569  <text  x="1170.26" y="383.5" ></text>
  1570  </g>
  1571  <g >
  1572  <title>runtime.wakep (3 samples, 0.12%)</title><rect x="821.1" y="245" width="1.3" height="15.0" fill="rgb(209,66,30)" rx="2" ry="2" />
  1573  <text  x="824.08" y="255.5" ></text>
  1574  </g>
  1575  <g >
  1576  <title>runtime.goready (4 samples, 0.15%)</title><rect x="94.2" y="165" width="1.8" height="15.0" fill="rgb(205,178,15)" rx="2" ry="2" />
  1577  <text  x="97.16" y="175.5" ></text>
  1578  </g>
  1579  <g >
  1580  <title>runtime.runqgrab (8 samples, 0.31%)</title><rect x="1155.0" y="341" width="3.6" height="15.0" fill="rgb(216,198,10)" rx="2" ry="2" />
  1581  <text  x="1157.97" y="351.5" ></text>
  1582  </g>
  1583  <g >
  1584  <title>syscall.Recvfrom (353 samples, 13.61%)</title><rect x="857.0" y="293" width="160.6" height="15.0" fill="rgb(209,161,50)" rx="2" ry="2" />
  1585  <text  x="860.02" y="303.5" >syscall.Recvfrom</text>
  1586  </g>
  1587  <g >
  1588  <title>net.(*UDPConn).readFromUDP (397 samples, 15.30%)</title><rect x="842.0" y="357" width="180.6" height="15.0" fill="rgb(241,100,31)" rx="2" ry="2" />
  1589  <text  x="845.00" y="367.5" >net.(*UDPConn).readFrom..</text>
  1590  </g>
  1591  <g >
  1592  <title>runtime.mPark (12 samples, 0.46%)</title><rect x="1159.5" y="341" width="5.5" height="15.0" fill="rgb(234,159,18)" rx="2" ry="2" />
  1593  <text  x="1162.52" y="351.5" ></text>
  1594  </g>
  1595  <g >
  1596  <title>runtime.startm (3 samples, 0.12%)</title><rect x="94.6" y="85" width="1.4" height="15.0" fill="rgb(217,61,23)" rx="2" ry="2" />
  1597  <text  x="97.61" y="95.5" ></text>
  1598  </g>
  1599  <g >
  1600  <title>runtime.lock2 (5 samples, 0.19%)</title><rect x="1165.0" y="357" width="2.3" height="15.0" fill="rgb(212,43,32)" rx="2" ry="2" />
  1601  <text  x="1167.98" y="367.5" ></text>
  1602  </g>
  1603  <g >
  1604  <title>runtime.greyobject (3 samples, 0.12%)</title><rect x="778.8" y="341" width="1.3" height="15.0" fill="rgb(214,115,9)" rx="2" ry="2" />
  1605  <text  x="781.77" y="351.5" ></text>
  1606  </g>
  1607  <g >
  1608  <title>runtime.futexwakeup (2 samples, 0.08%)</title><rect x="821.5" y="197" width="0.9" height="15.0" fill="rgb(210,138,37)" rx="2" ry="2" />
  1609  <text  x="824.53" y="207.5" ></text>
  1610  </g>
  1611  <g >
  1612  <title>runtime.scanblock (1 samples, 0.04%)</title><rect x="764.2" y="261" width="0.5" height="15.0" fill="rgb(212,63,1)" rx="2" ry="2" />
  1613  <text  x="767.22" y="271.5" ></text>
  1614  </g>
  1615  <g >
  1616  <title>net.ipToSockaddr (34 samples, 1.31%)</title><rect x="64.6" y="261" width="15.5" height="15.0" fill="rgb(216,123,39)" rx="2" ry="2" />
  1617  <text  x="67.59" y="271.5" ></text>
  1618  </g>
  1619  <g >
  1620  <title>runtime.ready (15 samples, 0.58%)</title><rect x="815.6" y="261" width="6.8" height="15.0" fill="rgb(208,112,13)" rx="2" ry="2" />
  1621  <text  x="818.62" y="271.5" ></text>
  1622  </g>
  1623  <g >
  1624  <title>runtime.(*mheap).freeSpan.func1 (1 samples, 0.04%)</title><rect x="746.9" y="341" width="0.5" height="15.0" fill="rgb(214,49,44)" rx="2" ry="2" />
  1625  <text  x="749.93" y="351.5" ></text>
  1626  </g>
  1627  <g >
  1628  <title>runtime.lockWithRank (5 samples, 0.19%)</title><rect x="1165.0" y="373" width="2.3" height="15.0" fill="rgb(225,138,21)" rx="2" ry="2" />
  1629  <text  x="1167.98" y="383.5" ></text>
  1630  </g>
  1631  <g >
  1632  <title>runtime.pMask.read (11 samples, 0.42%)</title><rect x="1172.3" y="373" width="5.0" height="15.0" fill="rgb(238,26,38)" rx="2" ry="2" />
  1633  <text  x="1175.26" y="383.5" ></text>
  1634  </g>
  1635  <g >
  1636  <title>runtime.newobject (20 samples, 0.77%)</title><rect x="1022.6" y="357" width="9.1" height="15.0" fill="rgb(234,27,33)" rx="2" ry="2" />
  1637  <text  x="1025.60" y="367.5" ></text>
  1638  </g>
  1639  <g >
  1640  <title>runtime.nanotime (1 samples, 0.04%)</title><rect x="1185.0" y="421" width="0.5" height="15.0" fill="rgb(233,139,43)" rx="2" ry="2" />
  1641  <text  x="1188.00" y="431.5" ></text>
  1642  </g>
  1643  <g >
  1644  <title>runtime.wirep (1 samples, 0.04%)</title><rect x="1017.1" y="213" width="0.5" height="15.0" fill="rgb(237,156,42)" rx="2" ry="2" />
  1645  <text  x="1020.14" y="223.5" ></text>
  1646  </g>
  1647  <g >
  1648  <title>runtime.findrunnable (206 samples, 7.94%)</title><rect x="1071.3" y="373" width="93.7" height="15.0" fill="rgb(240,219,29)" rx="2" ry="2" />
  1649  <text  x="1074.27" y="383.5" >runtime.fin..</text>
  1650  </g>
  1651  <g >
  1652  <title>runtime.notewakeup (3 samples, 0.12%)</title><rect x="94.6" y="69" width="1.4" height="15.0" fill="rgb(237,128,20)" rx="2" ry="2" />
  1653  <text  x="97.61" y="79.5" ></text>
  1654  </g>
  1655  <g >
  1656  <title>runtime.casgstatus (4 samples, 0.15%)</title><rect x="1035.3" y="389" width="1.9" height="15.0" fill="rgb(225,176,19)" rx="2" ry="2" />
  1657  <text  x="1038.34" y="399.5" ></text>
  1658  </g>
  1659  <g >
  1660  <title>sync.(*Mutex).Unlock (4 samples, 0.15%)</title><rect x="828.4" y="357" width="1.8" height="15.0" fill="rgb(234,221,40)" rx="2" ry="2" />
  1661  <text  x="831.36" y="367.5" ></text>
  1662  </g>
  1663  <g >
  1664  <title>runtime.acquireSudog (4 samples, 0.15%)</title><rect x="737.8" y="357" width="1.9" height="15.0" fill="rgb(214,6,54)" rx="2" ry="2" />
  1665  <text  x="740.83" y="367.5" ></text>
  1666  </g>
  1667  <g >
  1668  <title>net.(*UDPConn).readFrom (391 samples, 15.07%)</title><rect x="844.7" y="341" width="177.9" height="15.0" fill="rgb(237,45,12)" rx="2" ry="2" />
  1669  <text  x="847.73" y="351.5" >net.(*UDPConn).readFrom</text>
  1670  </g>
  1671  <g >
  1672  <title>runtime.casgstatus (3 samples, 0.12%)</title><rect x="817.9" y="245" width="1.4" height="15.0" fill="rgb(210,96,41)" rx="2" ry="2" />
  1673  <text  x="820.90" y="255.5" ></text>
  1674  </g>
  1675  <g >
  1676  <title>runtime.(*mcentral).cacheSpan (4 samples, 0.15%)</title><rect x="863.4" y="197" width="1.8" height="15.0" fill="rgb(245,37,42)" rx="2" ry="2" />
  1677  <text  x="866.38" y="207.5" ></text>
  1678  </g>
  1679  <g >
  1680  <title>runtime.(*mcache).nextFree (2 samples, 0.08%)</title><rect x="68.7" y="213" width="0.9" height="15.0" fill="rgb(221,54,34)" rx="2" ry="2" />
  1681  <text  x="71.68" y="223.5" ></text>
  1682  </g>
  1683  <g >
  1684  <title>runtime.handoff (1 samples, 0.04%)</title><rect x="866.1" y="133" width="0.5" height="15.0" fill="rgb(245,58,27)" rx="2" ry="2" />
  1685  <text  x="869.11" y="143.5" ></text>
  1686  </g>
  1687  <g >
  1688  <title>internal/poll.(*pollDesc).waitRead (6 samples, 0.23%)</title><rect x="1019.4" y="309" width="2.7" height="15.0" fill="rgb(231,8,29)" rx="2" ry="2" />
  1689  <text  x="1022.41" y="319.5" ></text>
  1690  </g>
  1691  <g >
  1692  <title>runtime.stackpoolalloc (1 samples, 0.04%)</title><rect x="80.1" y="197" width="0.4" height="15.0" fill="rgb(215,73,4)" rx="2" ry="2" />
  1693  <text  x="83.05" y="207.5" ></text>
  1694  </g>
  1695  <g >
  1696  <title>runtime.(*lfstack).pop (3 samples, 0.12%)</title><rect x="760.1" y="341" width="1.4" height="15.0" fill="rgb(241,47,40)" rx="2" ry="2" />
  1697  <text  x="763.12" y="351.5" ></text>
  1698  </g>
  1699  <g >
  1700  <title>runtime.gentraceback (1 samples, 0.04%)</title><rect x="867.0" y="149" width="0.5" height="15.0" fill="rgb(226,104,38)" rx="2" ry="2" />
  1701  <text  x="870.02" y="159.5" ></text>
  1702  </g>
  1703  <g >
  1704  <title>runtime.heapBits.bits (1 samples, 0.04%)</title><rect x="74.1" y="133" width="0.5" height="15.0" fill="rgb(210,42,1)" rx="2" ry="2" />
  1705  <text  x="77.14" y="143.5" ></text>
  1706  </g>
  1707  <g >
  1708  <title>runtime.reentersyscall (13 samples, 0.50%)</title><rect x="692.3" y="181" width="6.0" height="15.0" fill="rgb(223,4,4)" rx="2" ry="2" />
  1709  <text  x="695.34" y="191.5" ></text>
  1710  </g>
  1711  <g >
  1712  <title>runtime.notewakeup (2 samples, 0.08%)</title><rect x="821.5" y="213" width="0.9" height="15.0" fill="rgb(213,204,22)" rx="2" ry="2" />
  1713  <text  x="824.53" y="223.5" ></text>
  1714  </g>
  1715  <g >
  1716  <title>runtime.(*semaRoot).dequeue (4 samples, 0.15%)</title><rect x="92.3" y="181" width="1.9" height="15.0" fill="rgb(215,208,27)" rx="2" ry="2" />
  1717  <text  x="95.34" y="191.5" ></text>
  1718  </g>
  1719  <g >
  1720  <title>internal/poll.(*fdMutex).rwunlock (19 samples, 0.73%)</title><rect x="87.3" y="229" width="8.7" height="15.0" fill="rgb(224,145,17)" rx="2" ry="2" />
  1721  <text  x="90.33" y="239.5" ></text>
  1722  </g>
  1723  <g >
  1724  <title>runtime.(*mheap).allocSpan (2 samples, 0.08%)</title><rect x="863.4" y="117" width="0.9" height="15.0" fill="rgb(219,52,48)" rx="2" ry="2" />
  1725  <text  x="866.38" y="127.5" ></text>
  1726  </g>
  1727  <g >
  1728  <title>syscall.Syscall6 (324 samples, 12.49%)</title><rect x="870.2" y="261" width="147.4" height="15.0" fill="rgb(245,180,46)" rx="2" ry="2" />
  1729  <text  x="873.21" y="271.5" >syscall.Syscall6</text>
  1730  </g>
  1731  <g >
  1732  <title>runtime.wakep (3 samples, 0.12%)</title><rect x="94.6" y="101" width="1.4" height="15.0" fill="rgb(212,82,47)" rx="2" ry="2" />
  1733  <text  x="97.61" y="111.5" ></text>
  1734  </g>
  1735  <g >
  1736  <title>runtime.futex (2 samples, 0.08%)</title><rect x="706.9" y="165" width="0.9" height="15.0" fill="rgb(231,88,9)" rx="2" ry="2" />
  1737  <text  x="709.90" y="175.5" ></text>
  1738  </g>
  1739  <g >
  1740  <title>runtime.systemstack (3 samples, 0.12%)</title><rect x="1186.4" y="421" width="1.3" height="15.0" fill="rgb(207,108,8)" rx="2" ry="2" />
  1741  <text  x="1189.36" y="431.5" ></text>
  1742  </g>
  1743  <g >
  1744  <title>memeqbody (4 samples, 0.15%)</title><rect x="719.2" y="309" width="1.8" height="15.0" fill="rgb(228,39,2)" rx="2" ry="2" />
  1745  <text  x="722.18" y="319.5" ></text>
  1746  </g>
  1747  <g >
  1748  <title>runtime.gcMarkDone (1 samples, 0.04%)</title><rect x="747.8" y="405" width="0.5" height="15.0" fill="rgb(235,50,52)" rx="2" ry="2" />
  1749  <text  x="750.84" y="415.5" ></text>
  1750  </g>
  1751  <g >
  1752  <title>runtime.casgstatus (8 samples, 0.31%)</title><rect x="694.6" y="165" width="3.7" height="15.0" fill="rgb(218,108,40)" rx="2" ry="2" />
  1753  <text  x="697.62" y="175.5" ></text>
  1754  </g>
  1755  <g >
  1756  <title>runtime.entersyscall (16 samples, 0.62%)</title><rect x="691.0" y="197" width="7.3" height="15.0" fill="rgb(236,114,29)" rx="2" ry="2" />
  1757  <text  x="693.98" y="207.5" ></text>
  1758  </g>
  1759  <g >
  1760  <title>sync.(*poolDequeue).popTail (1 samples, 0.04%)</title><rect x="837.5" y="309" width="0.4" height="15.0" fill="rgb(224,68,54)" rx="2" ry="2" />
  1761  <text  x="840.46" y="319.5" ></text>
  1762  </g>
  1763  <g >
  1764  <title>runtime.handoff (9 samples, 0.35%)</title><rect x="755.6" y="341" width="4.1" height="15.0" fill="rgb(216,123,1)" rx="2" ry="2" />
  1765  <text  x="758.57" y="351.5" ></text>
  1766  </g>
  1767  <g >
  1768  <title>runtime.lock2 (3 samples, 0.12%)</title><rect x="743.3" y="357" width="1.4" height="15.0" fill="rgb(212,25,46)" rx="2" ry="2" />
  1769  <text  x="746.29" y="367.5" ></text>
  1770  </g>
  1771  <g >
  1772  <title>runtime.(*gcBitsArena).tryAlloc (1 samples, 0.04%)</title><rect x="863.4" y="101" width="0.4" height="15.0" fill="rgb(252,153,8)" rx="2" ry="2" />
  1773  <text  x="866.38" y="111.5" ></text>
  1774  </g>
  1775  <g >
  1776  <title>runtime.unlock2 (1 samples, 0.04%)</title><rect x="1033.5" y="373" width="0.5" height="15.0" fill="rgb(233,67,5)" rx="2" ry="2" />
  1777  <text  x="1036.52" y="383.5" ></text>
  1778  </g>
  1779  <g >
  1780  <title>internal/poll.(*FD).readLock (3 samples, 0.12%)</title><rect x="1017.6" y="309" width="1.4" height="15.0" fill="rgb(209,212,54)" rx="2" ry="2" />
  1781  <text  x="1020.59" y="319.5" ></text>
  1782  </g>
  1783  <g >
  1784  <title>internal/poll.(*FD).ReadFrom (367 samples, 14.15%)</title><rect x="850.6" y="309" width="167.0" height="15.0" fill="rgb(244,165,30)" rx="2" ry="2" />
  1785  <text  x="853.65" y="319.5" >internal/poll.(*FD).R..</text>
  1786  </g>
  1787  <g >
  1788  <title>runtime.netpollblock (2 samples, 0.08%)</title><rect x="1021.2" y="261" width="0.9" height="15.0" fill="rgb(220,1,47)" rx="2" ry="2" />
  1789  <text  x="1024.23" y="271.5" ></text>
  1790  </g>
  1791  <g >
  1792  <title>runtime.(*gcWork).balance (1 samples, 0.04%)</title><rect x="866.1" y="149" width="0.5" height="15.0" fill="rgb(208,94,42)" rx="2" ry="2" />
  1793  <text  x="869.11" y="159.5" ></text>
  1794  </g>
  1795  <g >
  1796  <title>runtime.reentersyscall (12 samples, 0.46%)</title><rect x="1005.8" y="229" width="5.4" height="15.0" fill="rgb(252,81,36)" rx="2" ry="2" />
  1797  <text  x="1008.77" y="239.5" ></text>
  1798  </g>
  1799  <g >
  1800  <title>internal/poll.(*FD).readUnlock (5 samples, 0.19%)</title><rect x="854.7" y="293" width="2.3" height="15.0" fill="rgb(244,167,40)" rx="2" ry="2" />
  1801  <text  x="857.74" y="303.5" ></text>
  1802  </g>
  1803  <g >
  1804  <title>runtime.scanobject (92 samples, 3.55%)</title><rect x="764.7" y="357" width="41.8" height="15.0" fill="rgb(229,72,40)" rx="2" ry="2" />
  1805  <text  x="767.67" y="367.5" >run..</text>
  1806  </g>
  1807  <g >
  1808  <title>runtime.chanparkcommit (1 samples, 0.04%)</title><rect x="1037.2" y="389" width="0.4" height="15.0" fill="rgb(210,36,54)" rx="2" ry="2" />
  1809  <text  x="1040.15" y="399.5" ></text>
  1810  </g>
  1811  <g >
  1812  <title>runtime.main (495 samples, 19.08%)</title><rect x="806.5" y="421" width="225.2" height="15.0" fill="rgb(205,160,48)" rx="2" ry="2" />
  1813  <text  x="809.52" y="431.5" >runtime.main</text>
  1814  </g>
  1815  <g >
  1816  <title>runtime.findObject (8 samples, 0.31%)</title><rect x="775.1" y="341" width="3.7" height="15.0" fill="rgb(208,73,9)" rx="2" ry="2" />
  1817  <text  x="778.13" y="351.5" ></text>
  1818  </g>
  1819  <g >
  1820  <title>runtime.(*mcentral).grow (4 samples, 0.15%)</title><rect x="863.4" y="181" width="1.8" height="15.0" fill="rgb(210,78,29)" rx="2" ry="2" />
  1821  <text  x="866.38" y="191.5" ></text>
  1822  </g>
  1823  <g >
  1824  <title>runtime.gcAssistAlloc1 (18 samples, 0.69%)</title><rect x="69.6" y="165" width="8.2" height="15.0" fill="rgb(245,69,10)" rx="2" ry="2" />
  1825  <text  x="72.59" y="175.5" ></text>
  1826  </g>
  1827  <g >
  1828  <title>runtime.acquirem (1 samples, 0.04%)</title><rect x="861.6" y="245" width="0.4" height="15.0" fill="rgb(215,188,30)" rx="2" ry="2" />
  1829  <text  x="864.57" y="255.5" ></text>
  1830  </g>
  1831  <g >
  1832  <title>syscall.sendmsg (1,327 samples, 51.16%)</title><rect x="101.0" y="229" width="603.6" height="15.0" fill="rgb(208,112,40)" rx="2" ry="2" />
  1833  <text  x="103.98" y="239.5" >syscall.sendmsg</text>
  1834  </g>
  1835  <g >
  1836  <title>runtime.handoff (3 samples, 0.12%)</title><rect x="71.9" y="117" width="1.3" height="15.0" fill="rgb(223,94,39)" rx="2" ry="2" />
  1837  <text  x="74.87" y="127.5" ></text>
  1838  </g>
  1839  <g >
  1840  <title>runtime.add (1 samples, 0.04%)</title><rect x="716.0" y="325" width="0.5" height="15.0" fill="rgb(238,42,30)" rx="2" ry="2" />
  1841  <text  x="719.00" y="335.5" ></text>
  1842  </g>
  1843  <g >
  1844  <title>runtime.newMarkBits (1 samples, 0.04%)</title><rect x="747.4" y="373" width="0.4" height="15.0" fill="rgb(224,212,49)" rx="2" ry="2" />
  1845  <text  x="750.39" y="383.5" ></text>
  1846  </g>
  1847  <g >
  1848  <title>runtime.releaseSudog (4 samples, 0.15%)</title><rect x="740.6" y="357" width="1.8" height="15.0" fill="rgb(210,2,32)" rx="2" ry="2" />
  1849  <text  x="743.56" y="367.5" ></text>
  1850  </g>
  1851  <g >
  1852  <title>runtime.nobarrierWakeTime (5 samples, 0.19%)</title><rect x="1170.0" y="373" width="2.3" height="15.0" fill="rgb(218,114,4)" rx="2" ry="2" />
  1853  <text  x="1172.98" y="383.5" ></text>
  1854  </g>
  1855  <g >
  1856  <title>runtime.globrunqget (1 samples, 0.04%)</title><rect x="1081.7" y="357" width="0.5" height="15.0" fill="rgb(221,108,23)" rx="2" ry="2" />
  1857  <text  x="1084.73" y="367.5" ></text>
  1858  </g>
  1859  <g >
  1860  <title>runtime.(*mspan).divideByElemSize (1 samples, 0.04%)</title><rect x="774.2" y="341" width="0.5" height="15.0" fill="rgb(229,68,38)" rx="2" ry="2" />
  1861  <text  x="777.23" y="351.5" ></text>
  1862  </g>
  1863  <g >
  1864  <title>internal/poll.(*pollDesc).prepareWrite (1 samples, 0.04%)</title><rect x="710.5" y="261" width="0.5" height="15.0" fill="rgb(219,138,6)" rx="2" ry="2" />
  1865  <text  x="713.54" y="271.5" ></text>
  1866  </g>
  1867  <g >
  1868  <title>runtime.(*guintptr).cas (1 samples, 0.04%)</title><rect x="94.2" y="101" width="0.4" height="15.0" fill="rgb(215,21,2)" rx="2" ry="2" />
  1869  <text  x="97.16" y="111.5" ></text>
  1870  </g>
  1871  <g >
  1872  <title>runtime.scanstack (3 samples, 0.12%)</title><rect x="763.3" y="325" width="1.4" height="15.0" fill="rgb(225,135,9)" rx="2" ry="2" />
  1873  <text  x="766.31" y="335.5" ></text>
  1874  </g>
  1875  <g >
  1876  <title>runtime.stackcacherefill (1 samples, 0.04%)</title><rect x="80.1" y="213" width="0.4" height="15.0" fill="rgb(210,72,40)" rx="2" ry="2" />
  1877  <text  x="83.05" y="223.5" ></text>
  1878  </g>
  1879  <g >
  1880  <title>runtime.usleep (6 samples, 0.23%)</title><rect x="1155.9" y="325" width="2.7" height="15.0" fill="rgb(226,40,42)" rx="2" ry="2" />
  1881  <text  x="1158.88" y="335.5" ></text>
  1882  </g>
  1883  <g >
  1884  <title>runtime.casgstatus (6 samples, 0.23%)</title><rect x="1008.0" y="213" width="2.8" height="15.0" fill="rgb(209,55,23)" rx="2" ry="2" />
  1885  <text  x="1011.04" y="223.5" ></text>
  1886  </g>
  1887  <g >
  1888  <title>runtime.morestack (1 samples, 0.04%)</title><rect x="1184.5" y="421" width="0.5" height="15.0" fill="rgb(243,51,50)" rx="2" ry="2" />
  1889  <text  x="1187.54" y="431.5" ></text>
  1890  </g>
  1891  <g >
  1892  <title>runtime.semrelease (11 samples, 0.42%)</title><rect x="91.0" y="213" width="5.0" height="15.0" fill="rgb(232,112,5)" rx="2" ry="2" />
  1893  <text  x="93.97" y="223.5" ></text>
  1894  </g>
  1895  <g >
  1896  <title>runtime.schedule (1 samples, 0.04%)</title><rect x="1033.1" y="373" width="0.4" height="15.0" fill="rgb(229,60,5)" rx="2" ry="2" />
  1897  <text  x="1036.06" y="383.5" ></text>
  1898  </g>
  1899  <g >
  1900  <title>runtime.systemstack (1 samples, 0.04%)</title><rect x="1028.1" y="309" width="0.4" height="15.0" fill="rgb(223,196,38)" rx="2" ry="2" />
  1901  <text  x="1031.06" y="319.5" ></text>
  1902  </g>
  1903  <g >
  1904  <title>runtime.(*mcache).refill (5 samples, 0.19%)</title><rect x="863.4" y="213" width="2.3" height="15.0" fill="rgb(236,93,7)" rx="2" ry="2" />
  1905  <text  x="866.38" y="223.5" ></text>
  1906  </g>
  1907  <g >
  1908  <title>net.(*UDPConn).writeMsg (1,430 samples, 55.13%)</title><rect x="60.5" y="293" width="650.5" height="15.0" fill="rgb(248,72,38)" rx="2" ry="2" />
  1909  <text  x="63.49" y="303.5" >net.(*UDPConn).writeMsg</text>
  1910  </g>
  1911  <g >
  1912  <title>runtime.(*gcWork).balance (3 samples, 0.12%)</title><rect x="71.9" y="133" width="1.3" height="15.0" fill="rgb(205,108,22)" rx="2" ry="2" />
  1913  <text  x="74.87" y="143.5" ></text>
  1914  </g>
  1915  <g >
  1916  <title>runtime/pprof.readProfile (1 samples, 0.04%)</title><rect x="1189.5" y="405" width="0.5" height="15.0" fill="rgb(219,120,42)" rx="2" ry="2" />
  1917  <text  x="1192.55" y="415.5" ></text>
  1918  </g>
  1919  <g >
  1920  <title>internal/poll.(*pollDesc).wait (6 samples, 0.23%)</title><rect x="1019.4" y="293" width="2.7" height="15.0" fill="rgb(226,101,33)" rx="2" ry="2" />
  1921  <text  x="1022.41" y="303.5" ></text>
  1922  </g>
  1923  <g >
  1924  <title>sync.runtime_procPin (1 samples, 0.04%)</title><rect x="726.5" y="341" width="0.4" height="15.0" fill="rgb(247,35,20)" rx="2" ry="2" />
  1925  <text  x="729.46" y="351.5" ></text>
  1926  </g>
  1927  <g >
  1928  <title>runtime.entersyscall (12 samples, 0.46%)</title><rect x="1005.8" y="245" width="5.4" height="15.0" fill="rgb(229,92,48)" rx="2" ry="2" />
  1929  <text  x="1008.77" y="255.5" ></text>
  1930  </g>
  1931  </g>
  1932  </svg>