Last active
February 24, 2025 22:09
-
-
Save matthunz/14044fc8ffef6abb9ce0dbd1e22fe122 to your computer and use it in GitHub Desktop.
flamegraph.svg
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0" standalone="no"?> | |
| <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |
| <svg version="1.1" width="1200" height="438" onload="init(evt)" viewBox="0 0 1200 438" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | |
| <!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. --> | |
| <!-- NOTES: --> | |
| <defs > | |
| <linearGradient id="background" y1="0" y2="1" x1="0" x2="0" > | |
| <stop stop-color="#eeeeee" offset="5%" /> | |
| <stop stop-color="#eeeeb0" offset="95%" /> | |
| </linearGradient> | |
| </defs> | |
| <style type="text/css"> | |
| .func_g:hover { stroke:black; stroke-width:0.5; cursor:pointer; } | |
| </style> | |
| <script type="text/ecmascript"> | |
| <![CDATA[ | |
| var details, searchbtn, matchedtxt, svg; | |
| function init(evt) { | |
| details = document.getElementById("details").firstChild; | |
| searchbtn = document.getElementById("search"); | |
| matchedtxt = document.getElementById("matched"); | |
| svg = document.getElementsByTagName("svg")[0]; | |
| searching = 0; | |
| } | |
| // mouse-over for info | |
| function s(node) { // show | |
| info = g_to_text(node); | |
| details.nodeValue = "Function: " + info; | |
| } | |
| function c() { // clear | |
| details.nodeValue = ' '; | |
| } | |
| // ctrl-F for search | |
| window.addEventListener("keydown",function (e) { | |
| if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) { | |
| e.preventDefault(); | |
| search_prompt(); | |
| } | |
| }) | |
| // functions | |
| function find_child(parent, name, attr) { | |
| var children = parent.childNodes; | |
| for (var i=0; i<children.length;i++) { | |
| if (children[i].tagName == name) | |
| return (attr != undefined) ? children[i].attributes[attr].value : children[i]; | |
| } | |
| return; | |
| } | |
| function orig_save(e, attr, val) { | |
| if (e.attributes["_orig_"+attr] != undefined) return; | |
| if (e.attributes[attr] == undefined) return; | |
| if (val == undefined) val = e.attributes[attr].value; | |
| e.setAttribute("_orig_"+attr, val); | |
| } | |
| function orig_load(e, attr) { | |
| if (e.attributes["_orig_"+attr] == undefined) return; | |
| e.attributes[attr].value = e.attributes["_orig_"+attr].value; | |
| e.removeAttribute("_orig_"+attr); | |
| } | |
| function g_to_text(e) { | |
| var text = find_child(e, "title").firstChild.nodeValue; | |
| return (text) | |
| } | |
| function g_to_func(e) { | |
| var func = g_to_text(e); | |
| // if there's any manipulation we want to do to the function | |
| // name before it's searched, do it here before returning. | |
| return (func); | |
| } | |
| function update_text(e) { | |
| var r = find_child(e, "rect"); | |
| var t = find_child(e, "text"); | |
| var w = parseFloat(r.attributes["width"].value) -3; | |
| var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,""); | |
| t.attributes["x"].value = parseFloat(r.attributes["x"].value) +3; | |
| // Smaller than this size won't fit anything | |
| if (w < 2*12*0.59) { | |
| t.textContent = ""; | |
| return; | |
| } | |
| t.textContent = txt; | |
| // Fit in full text width | |
| if (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w) | |
| return; | |
| for (var x=txt.length-2; x>0; x--) { | |
| if (t.getSubStringLength(0, x+2) <= w) { | |
| t.textContent = txt.substring(0,x) + ".."; | |
| return; | |
| } | |
| } | |
| t.textContent = ""; | |
| } | |
| // zoom | |
| function zoom_reset(e) { | |
| if (e.attributes != undefined) { | |
| orig_load(e, "x"); | |
| orig_load(e, "width"); | |
| } | |
| if (e.childNodes == undefined) return; | |
| for(var i=0, c=e.childNodes; i<c.length; i++) { | |
| zoom_reset(c[i]); | |
| } | |
| } | |
| function zoom_child(e, x, ratio) { | |
| if (e.attributes != undefined) { | |
| if (e.attributes["x"] != undefined) { | |
| orig_save(e, "x"); | |
| e.attributes["x"].value = (parseFloat(e.attributes["x"].value) - x - 10) * ratio + 10; | |
| if(e.tagName == "text") e.attributes["x"].value = find_child(e.parentNode, "rect", "x") + 3; | |
| } | |
| if (e.attributes["width"] != undefined) { | |
| orig_save(e, "width"); | |
| e.attributes["width"].value = parseFloat(e.attributes["width"].value) * ratio; | |
| } | |
| } | |
| if (e.childNodes == undefined) return; | |
| for(var i=0, c=e.childNodes; i<c.length; i++) { | |
| zoom_child(c[i], x-10, ratio); | |
| } | |
| } | |
| function zoom_parent(e) { | |
| if (e.attributes) { | |
| if (e.attributes["x"] != undefined) { | |
| orig_save(e, "x"); | |
| e.attributes["x"].value = 10; | |
| } | |
| if (e.attributes["width"] != undefined) { | |
| orig_save(e, "width"); | |
| e.attributes["width"].value = parseInt(svg.width.baseVal.value) - (10*2); | |
| } | |
| } | |
| if (e.childNodes == undefined) return; | |
| for(var i=0, c=e.childNodes; i<c.length; i++) { | |
| zoom_parent(c[i]); | |
| } | |
| } | |
| function zoom(node) { | |
| var attr = find_child(node, "rect").attributes; | |
| var width = parseFloat(attr["width"].value); | |
| var xmin = parseFloat(attr["x"].value); | |
| var xmax = parseFloat(xmin + width); | |
| var ymin = parseFloat(attr["y"].value); | |
| var ratio = (svg.width.baseVal.value - 2*10) / width; | |
| // XXX: Workaround for JavaScript float issues (fix me) | |
| var fudge = 0.0001; | |
| var unzoombtn = document.getElementById("unzoom"); | |
| unzoombtn.style["opacity"] = "1.0"; | |
| var el = document.getElementsByTagName("g"); | |
| for(var i=0;i<el.length;i++){ | |
| var e = el[i]; | |
| var a = find_child(e, "rect").attributes; | |
| var ex = parseFloat(a["x"].value); | |
| var ew = parseFloat(a["width"].value); | |
| // Is it an ancestor | |
| if (0 == 0) { | |
| var upstack = parseFloat(a["y"].value) > ymin; | |
| } else { | |
| var upstack = parseFloat(a["y"].value) < ymin; | |
| } | |
| if (upstack) { | |
| // Direct ancestor | |
| if (ex <= xmin && (ex+ew+fudge) >= xmax) { | |
| e.style["opacity"] = "0.5"; | |
| zoom_parent(e); | |
| e.onclick = function(e){unzoom(); zoom(this);}; | |
| update_text(e); | |
| } | |
| // not in current path | |
| else | |
| e.style["display"] = "none"; | |
| } | |
| // Children maybe | |
| else { | |
| // no common path | |
| if (ex < xmin || ex + fudge >= xmax) { | |
| e.style["display"] = "none"; | |
| } | |
| else { | |
| zoom_child(e, xmin, ratio); | |
| e.onclick = function(e){zoom(this);}; | |
| update_text(e); | |
| } | |
| } | |
| } | |
| } | |
| function unzoom() { | |
| var unzoombtn = document.getElementById("unzoom"); | |
| unzoombtn.style["opacity"] = "0.0"; | |
| var el = document.getElementsByTagName("g"); | |
| for(i=0;i<el.length;i++) { | |
| el[i].style["display"] = "block"; | |
| el[i].style["opacity"] = "1"; | |
| zoom_reset(el[i]); | |
| update_text(el[i]); | |
| } | |
| } | |
| // search | |
| function reset_search() { | |
| var el = document.getElementsByTagName("rect"); | |
| for (var i=0; i < el.length; i++) { | |
| orig_load(el[i], "fill") | |
| } | |
| } | |
| function search_prompt() { | |
| if (!searching) { | |
| var term = prompt("Enter a search term (regexp " + | |
| "allowed, eg: ^ext4_)", ""); | |
| if (term != null) { | |
| search(term) | |
| } | |
| } else { | |
| reset_search(); | |
| searching = 0; | |
| searchbtn.style["opacity"] = "0.1"; | |
| searchbtn.firstChild.nodeValue = "Search" | |
| matchedtxt.style["opacity"] = "0.0"; | |
| matchedtxt.firstChild.nodeValue = "" | |
| } | |
| } | |
| function search(term) { | |
| var re = new RegExp(term); | |
| var el = document.getElementsByTagName("g"); | |
| var matches = new Object(); | |
| var maxwidth = 0; | |
| for (var i = 0; i < el.length; i++) { | |
| var e = el[i]; | |
| if (e.attributes["class"].value != "func_g") | |
| continue; | |
| var func = g_to_func(e); | |
| var rect = find_child(e, "rect"); | |
| if (rect == null) { | |
| // the rect might be wrapped in an anchor | |
| // if nameattr href is being used | |
| if (rect = find_child(e, "a")) { | |
| rect = find_child(r, "rect"); | |
| } | |
| } | |
| if (func == null || rect == null) | |
| continue; | |
| // Save max width. Only works as we have a root frame | |
| var w = parseFloat(rect.attributes["width"].value); | |
| if (w > maxwidth) | |
| maxwidth = w; | |
| if (func.match(re)) { | |
| // highlight | |
| var x = parseFloat(rect.attributes["x"].value); | |
| orig_save(rect, "fill"); | |
| rect.attributes["fill"].value = | |
| "rgb(230,0,230)"; | |
| // remember matches | |
| if (matches[x] == undefined) { | |
| matches[x] = w; | |
| } else { | |
| if (w > matches[x]) { | |
| // overwrite with parent | |
| matches[x] = w; | |
| } | |
| } | |
| searching = 1; | |
| } | |
| } | |
| if (!searching) | |
| return; | |
| searchbtn.style["opacity"] = "1.0"; | |
| searchbtn.firstChild.nodeValue = "Reset Search" | |
| // calculate percent matched, excluding vertical overlap | |
| var count = 0; | |
| var lastx = -1; | |
| var lastw = 0; | |
| var keys = Array(); | |
| for (k in matches) { | |
| if (matches.hasOwnProperty(k)) | |
| keys.push(k); | |
| } | |
| // sort the matched frames by their x location | |
| // ascending, then width descending | |
| keys.sort(function(a, b){ | |
| return a - b; | |
| }); | |
| // Step through frames saving only the biggest bottom-up frames | |
| // thanks to the sort order. This relies on the tree property | |
| // where children are always smaller than their parents. | |
| var fudge = 0.0001; // JavaScript floating point | |
| for (var k in keys) { | |
| var x = parseFloat(keys[k]); | |
| var w = matches[keys[k]]; | |
| if (x >= lastx + lastw - fudge) { | |
| count += w; | |
| lastx = x; | |
| lastw = w; | |
| } | |
| } | |
| // display matched percent | |
| matchedtxt.style["opacity"] = "1.0"; | |
| pct = 100 * count / maxwidth; | |
| if (pct == 100) | |
| pct = "100" | |
| else | |
| pct = pct.toFixed(1) | |
| matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%"; | |
| } | |
| function searchover(e) { | |
| searchbtn.style["opacity"] = "1.0"; | |
| } | |
| function searchout(e) { | |
| if (searching) { | |
| searchbtn.style["opacity"] = "1.0"; | |
| } else { | |
| searchbtn.style["opacity"] = "0.1"; | |
| } | |
| } | |
| ]]> | |
| </script> | |
| <rect x="0.0" y="0" width="1200.0" height="438.0" fill="url(#background)" /> | |
| <text text-anchor="middle" x="600.00" y="24" font-size="17" font-family="Verdana" fill="rgb(0,0,0)" >Flame Graph</text> | |
| <text text-anchor="" x="10.00" y="421" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="details" > </text> | |
| <text text-anchor="" x="10.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="unzoom" onclick="unzoom()" style="opacity:0.0;cursor:pointer" >Reset Zoom</text> | |
| <text text-anchor="" x="1090.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="search" onmouseover="searchover()" onmouseout="searchout()" onclick="search_prompt()" style="opacity:0.1;cursor:pointer" >Search</text> | |
| <text text-anchor="" x="1090.00" y="421" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="matched" > </text> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Storage.Dynamic.storageRnf (15 samples, 1.50%)</title><rect x="158.7" y="325" width="17.7" height="15.0" fill="rgb(252,111,6)" rx="2" ry="2" /> | |
| <text text-anchor="" x="161.68" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.run (15 samples, 1.50%)</title><rect x="158.7" y="309" width="17.7" height="15.0" fill="rgb(242,178,41)" rx="2" ry="2" /> | |
| <text text-anchor="" x="161.68" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.IO.readJSONReports (1 samples, 0.10%)</title><rect x="142.2" y="213" width="1.1" height="15.0" fill="rgb(234,95,25)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Archetype.insertAscList (65 samples, 6.50%)</title><rect x="1107.4" y="261" width="76.7" height="15.0" fill="rgb(228,74,38)" rx="2" ry="2" /> | |
| <text text-anchor="" x="1110.40" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.E..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Control.Concurrent.Async.Internal.catchAll (3 samples, 0.30%)</title><rect x="143.3" y="85" width="3.6" height="15.0" fill="rgb(206,109,33)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="95.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Query.map (416 samples, 41.60%)</title><rect x="176.4" y="309" width="490.9" height="15.0" fill="rgb(248,14,20)" rx="2" ry="2" /> | |
| <text text-anchor="" x="179.38" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.Query.map</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.CAF (3 samples, 0.30%)</title><rect x="10.0" y="357" width="3.5" height="15.0" fill="rgb(237,215,4)" rx="2" ry="2" /> | |
| <text text-anchor="" x="13.00" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.main (3 samples, 0.30%)</title><rect x="10.0" y="341" width="3.5" height="15.0" fill="rgb(242,153,34)" rx="2" ry="2" /> | |
| <text text-anchor="" x="13.00" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Main.defaultMain (4 samples, 0.40%)</title><rect x="142.2" y="341" width="4.7" height="15.0" fill="rgb(246,200,43)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Storage.Dynamic.storageRnf (14 samples, 1.40%)</title><rect x="679.1" y="325" width="16.5" height="15.0" fill="rgb(221,225,15)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Entities.spawn (109 samples, 10.90%)</title><rect x="13.5" y="325" width="128.7" height="15.0" fill="rgb(216,173,13)" rx="2" ry="2" /> | |
| <text text-anchor="" x="16.54" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.World..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Statistics.Matrix.Algorithms.qr (1 samples, 0.10%)</title><rect x="143.3" y="37" width="1.2" height="15.0" fill="rgb(234,22,51)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="47.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Internal.runAndAnalyse (4 samples, 0.40%)</title><rect x="142.2" y="229" width="4.7" height="15.0" fill="rgb(208,114,0)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Internal.runAndAnalyseOne (3 samples, 0.30%)</title><rect x="143.3" y="213" width="3.6" height="15.0" fill="rgb(236,10,6)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="223.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.query (414 samples, 41.40%)</title><rect x="695.6" y="277" width="488.5" height="15.0" fill="rgb(221,127,34)" rx="2" ry="2" /> | |
| <text text-anchor="" x="698.58" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Main.query</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>System.IO.CodePage.withCodePage (4 samples, 0.40%)</title><rect x="142.2" y="261" width="4.7" height="15.0" fill="rgb(242,43,7)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Statistics.Matrix.transpose (1 samples, 0.10%)</title><rect x="144.5" y="37" width="1.2" height="15.0" fill="rgb(208,136,54)" rx="2" ry="2" /> | |
| <text text-anchor="" x="147.52" y="47.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Storage.Dynamic.dynStorage (80 samples, 8.00%)</title><rect x="44.2" y="293" width="94.4" height="15.0" fill="rgb(232,223,3)" rx="2" ry="2" /> | |
| <text text-anchor="" x="47.22" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS...</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Entities.spawn (3 samples, 0.30%)</title><rect x="10.0" y="309" width="3.5" height="15.0" fill="rgb(227,156,30)" rx="2" ry="2" /> | |
| <text text-anchor="" x="13.00" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.spawn (109 samples, 10.90%)</title><rect x="13.5" y="341" width="128.7" height="15.0" fill="rgb(239,223,52)" rx="2" ry="2" /> | |
| <text text-anchor="" x="16.54" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.World..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Query.Dynamic.fromDynReader (91 samples, 9.10%)</title><rect x="1000.0" y="261" width="107.4" height="15.0" fill="rgb(232,228,43)" rx="2" ry="2" /> | |
| <text text-anchor="" x="1003.02" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.Qu..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Statistics.Regression.ols (2 samples, 0.20%)</title><rect x="143.3" y="53" width="2.4" height="15.0" fill="rgb(252,144,2)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="63.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Control.Concurrent.Async.Internal.concurrently (3 samples, 0.30%)</title><rect x="143.3" y="117" width="3.6" height="15.0" fill="rgb(225,8,15)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="127.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Archetype.insertAscList (15 samples, 1.50%)</title><rect x="158.7" y="261" width="17.7" height="15.0" fill="rgb(229,45,46)" rx="2" ry="2" /> | |
| <text text-anchor="" x="161.68" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Archetype.insertComponent (109 samples, 10.90%)</title><rect x="13.5" y="309" width="128.7" height="15.0" fill="rgb(236,34,1)" rx="2" ry="2" /> | |
| <text text-anchor="" x="16.54" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.World..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Control.Concurrent.Async.Internal.forConcurrently (3 samples, 0.30%)</title><rect x="143.3" y="149" width="3.6" height="15.0" fill="rgb(212,142,39)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="159.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>MAIN.MAIN (998 samples, 99.80%)</title><rect x="10.0" y="373" width="1177.6" height="15.0" fill="rgb(226,136,6)" rx="2" ry="2" /> | |
| <text text-anchor="" x="13.00" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >MAIN.MAIN</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Statistics.Regression.olsRegress (3 samples, 0.30%)</title><rect x="143.3" y="69" width="3.6" height="15.0" fill="rgb(241,215,16)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="79.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.run (416 samples, 41.60%)</title><rect x="176.4" y="325" width="490.9" height="15.0" fill="rgb(221,29,4)" rx="2" ry="2" /> | |
| <text text-anchor="" x="179.38" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Main.run</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Analysis.regress (3 samples, 0.30%)</title><rect x="143.3" y="181" width="3.6" height="15.0" fill="rgb(219,85,42)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="191.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.query (3 samples, 0.30%)</title><rect x="1184.1" y="309" width="3.5" height="15.0" fill="rgb(210,128,50)" rx="2" ry="2" /> | |
| <text text-anchor="" x="1187.10" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Control.Concurrent.Async.Internal.concurrently' (3 samples, 0.30%)</title><rect x="143.3" y="101" width="3.6" height="15.0" fill="rgb(234,121,27)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="111.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.rnf (3 samples, 0.30%)</title><rect x="138.6" y="293" width="3.6" height="15.0" fill="rgb(214,7,36)" rx="2" ry="2" /> | |
| <text text-anchor="" x="141.62" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Archetype.insertAscList (14 samples, 1.40%)</title><rect x="679.1" y="229" width="16.5" height="15.0" fill="rgb(208,98,5)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="239.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>System.IO.CodePage.withCP65001 (4 samples, 0.40%)</title><rect x="142.2" y="277" width="4.7" height="15.0" fill="rgb(223,216,42)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Measurement.Types.nfIO (24 samples, 2.40%)</title><rect x="667.3" y="341" width="28.3" height="15.0" fill="rgb(236,21,31)" rx="2" ry="2" /> | |
| <text text-anchor="" x="670.26" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >C..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Monad.withConfig (4 samples, 0.40%)</title><rect x="142.2" y="293" width="4.7" height="15.0" fill="rgb(227,12,3)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Access.runAccessT (414 samples, 41.40%)</title><rect x="695.6" y="309" width="488.5" height="15.0" fill="rgb(251,15,48)" rx="2" ry="2" /> | |
| <text text-anchor="" x="698.58" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.Access.runAccessT</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.runSystem (14 samples, 1.40%)</title><rect x="679.1" y="309" width="16.5" height="15.0" fill="rgb(251,82,43)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Access.runAccessT (14 samples, 1.40%)</title><rect x="679.1" y="277" width="16.5" height="15.0" fill="rgb(218,5,5)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.query (407 samples, 40.70%)</title><rect x="187.0" y="293" width="480.3" height="15.0" fill="rgb(239,66,53)" rx="2" ry="2" /> | |
| <text text-anchor="" x="190.00" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Main.query</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Query.Dynamic.fromDynReader (89 samples, 8.90%)</title><rect x="482.0" y="277" width="105.0" height="15.0" fill="rgb(226,38,9)" rx="2" ry="2" /> | |
| <text text-anchor="" x="485.00" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.Q..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>System.IO.CodePage.withCodePageOptions (4 samples, 0.40%)</title><rect x="142.2" y="245" width="4.7" height="15.0" fill="rgb(231,33,4)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.query (14 samples, 1.40%)</title><rect x="679.1" y="245" width="16.5" height="15.0" fill="rgb(236,79,16)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>all (1,000 samples, 100%)</title><rect x="10.0" y="389" width="1180.0" height="15.0" fill="rgb(252,55,49)" rx="2" ry="2" /> | |
| <text text-anchor="" x="13.00" y="399.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Measurement.Types.nf (441 samples, 44.10%)</title><rect x="146.9" y="341" width="520.4" height="15.0" fill="rgb(218,176,37)" rx="2" ry="2" /> | |
| <text text-anchor="" x="149.88" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Criterion.Measurement.Types.nf</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Components.insert (1 samples, 0.10%)</title><rect x="1186.5" y="293" width="1.1" height="15.0" fill="rgb(205,120,49)" rx="2" ry="2" /> | |
| <text text-anchor="" x="1189.46" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Archetype.insertComponent (1 samples, 0.10%)</title><rect x="11.2" y="293" width="1.2" height="15.0" fill="rgb(232,63,30)" rx="2" ry="2" /> | |
| <text text-anchor="" x="14.18" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Statistics.Regression.rSquare (1 samples, 0.10%)</title><rect x="145.7" y="53" width="1.2" height="15.0" fill="rgb(247,40,10)" rx="2" ry="2" /> | |
| <text text-anchor="" x="148.70" y="63.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Main.defaultMainWith (4 samples, 0.40%)</title><rect x="142.2" y="325" width="4.7" height="15.0" fill="rgb(254,114,16)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Components.insert (1 samples, 0.10%)</title><rect x="12.4" y="293" width="1.1" height="15.0" fill="rgb(210,175,31)" rx="2" ry="2" /> | |
| <text text-anchor="" x="15.36" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.spawn (3 samples, 0.30%)</title><rect x="10.0" y="325" width="3.5" height="15.0" fill="rgb(240,154,27)" rx="2" ry="2" /> | |
| <text text-anchor="" x="13.00" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.query (15 samples, 1.50%)</title><rect x="158.7" y="277" width="17.7" height="15.0" fill="rgb(219,147,4)" rx="2" ry="2" /> | |
| <text text-anchor="" x="161.68" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Schedule.runSchedule (417 samples, 41.70%)</title><rect x="695.6" y="325" width="492.0" height="15.0" fill="rgb(222,199,50)" rx="2" ry="2" /> | |
| <text text-anchor="" x="698.58" y="335.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.Schedule.runSchedule</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.View.allDyn (14 samples, 1.40%)</title><rect x="679.1" y="261" width="16.5" height="15.0" fill="rgb(240,213,27)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="271.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Statistics.Regression.bootstrapRegress (3 samples, 0.30%)</title><rect x="143.3" y="165" width="3.6" height="15.0" fill="rgb(253,170,24)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="175.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Main.runMode (4 samples, 0.40%)</title><rect x="142.2" y="309" width="4.7" height="15.0" fill="rgb(227,167,3)" rx="2" ry="2" /> | |
| <text text-anchor="" x="145.16" y="319.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.View.allDyn (414 samples, 41.40%)</title><rect x="695.6" y="293" width="488.5" height="15.0" fill="rgb(245,84,9)" rx="2" ry="2" /> | |
| <text text-anchor="" x="698.58" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.ECS.View.allDyn</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.World.Archetype.insertAscList (68 samples, 6.80%)</title><rect x="587.0" y="277" width="80.3" height="15.0" fill="rgb(218,26,52)" rx="2" ry="2" /> | |
| <text text-anchor="" x="590.02" y="287.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Aztecs.EC..</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Query.map (15 samples, 1.50%)</title><rect x="158.7" y="293" width="17.7" height="15.0" fill="rgb(239,96,50)" rx="2" ry="2" /> | |
| <text text-anchor="" x="161.68" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Control.Concurrent.Async.Internal.mapConcurrently (3 samples, 0.30%)</title><rect x="143.3" y="133" width="3.6" height="15.0" fill="rgb(248,44,37)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="143.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Criterion.Analysis.analyseSample (3 samples, 0.30%)</title><rect x="143.3" y="197" width="3.6" height="15.0" fill="rgb(230,206,45)" rx="2" ry="2" /> | |
| <text text-anchor="" x="146.34" y="207.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>UNKNOWN (2 samples, 0.20%)</title><rect x="1187.6" y="373" width="2.4" height="15.0" fill="rgb(247,227,37)" rx="2" ry="2" /> | |
| <text text-anchor="" x="1190.64" y="383.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.rnf (2 samples, 0.20%)</title><rect x="174.0" y="245" width="2.4" height="15.0" fill="rgb(229,52,46)" rx="2" ry="2" /> | |
| <text text-anchor="" x="177.02" y="255.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.main (995 samples, 99.50%)</title><rect x="13.5" y="357" width="1174.1" height="15.0" fill="rgb(232,113,19)" rx="2" ry="2" /> | |
| <text text-anchor="" x="16.54" y="367.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Main.main</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Main.runSystem (417 samples, 41.70%)</title><rect x="695.6" y="341" width="492.0" height="15.0" fill="rgb(244,227,40)" rx="2" ry="2" /> | |
| <text text-anchor="" x="698.58" y="351.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" >Main.runSystem</text> | |
| </g> | |
| <g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)"> | |
| <title>Aztecs.ECS.Schedule.runSchedule (14 samples, 1.40%)</title><rect x="679.1" y="293" width="16.5" height="15.0" fill="rgb(246,3,9)" rx="2" ry="2" /> | |
| <text text-anchor="" x="682.06" y="303.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" ></text> | |
| </g> | |
| </svg> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment