~swaits/aoc2021

7e5ea237db1d2039a26ade1c4032e27ae1c671ec — Stephen Waits 2 years ago eb92ccc
flamegraph.svg snuck in there!
2 files changed, 1 insertions(+), 414 deletions(-)

M .gitignore
D flamegraph.svg
M .gitignore => .gitignore +1 -0
@@ 1,1 1,2 @@
/target
/flamegraph.svg

D flamegraph.svg => flamegraph.svg +0 -414
@@ 1,414 0,0 @@
<?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="294" onload="init(evt)" viewBox="0 0 1200 294" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:fg="http://github.com/jonhoo/inferno"><!--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">
text { font-family:"Verdana"; font-size:12px; fill:rgb(0,0,0); }
#title { text-anchor:middle; font-size:17px; }
#search { opacity:0.1; cursor:pointer; }
#search:hover, #search.show { opacity:1; }
#subtitle { text-anchor:middle; font-color:rgb(160,160,160); }
#unzoom { cursor:pointer; }
#frames > *:hover { stroke:black; stroke-width:0.5; cursor:pointer; }
.hide { display:none; }
.parent { opacity:0.5; }
</style><script type="text/ecmascript"><![CDATA[
        var nametype = 'Function:';
        var fontsize = 12;
        var fontwidth = 0.59;
        var xpad = 10;
        var inverted = false;
        var searchcolor = 'rgb(230,0,230)';
        var fluiddrawing = true;
        var truncate_text_right = false;
    ]]><![CDATA["use strict";
var details, searchbtn, unzoombtn, matchedtxt, svg, searching, frames;
function init(evt) {
    details = document.getElementById("details").firstChild;
    searchbtn = document.getElementById("search");
    unzoombtn = document.getElementById("unzoom");
    matchedtxt = document.getElementById("matched");
    svg = document.getElementsByTagName("svg")[0];
    frames = document.getElementById("frames");
    total_samples = parseInt(frames.attributes.total_samples.value);
    searching = 0;

    // Use GET parameters to restore a flamegraph's state.
    var restore_state = function() {
        var params = get_params();
        if (params.x && params.y)
            zoom(find_group(document.querySelector('[*|x="' + params.x + '"][y="' + params.y + '"]')));
        if (params.s)
            search(params.s);
    };

    if (fluiddrawing) {
        // Make width dynamic so the SVG fits its parent's width.
        svg.removeAttribute("width");
        // Edge requires us to have a viewBox that gets updated with size changes.
        var isEdge = /Edge\/\d./i.test(navigator.userAgent);
        if (!isEdge) {
          svg.removeAttribute("viewBox");
        }
        var update_for_width_change = function() {
            if (isEdge) {
                svg.attributes.viewBox.value = "0 0 " + svg.width.baseVal.value + " " + svg.height.baseVal.value;
            }

            // Keep consistent padding on left and right of frames container.
            frames.attributes.width.value = svg.width.baseVal.value - xpad * 2;

            // Text truncation needs to be adjusted for the current width.
            var el = frames.children;
            for(var i = 0; i < el.length; i++) {
                update_text(el[i]);
            }

            // Keep search elements at a fixed distance from right edge.
            var svgWidth = svg.width.baseVal.value;
            searchbtn.attributes.x.value = svgWidth - xpad - 100;
            matchedtxt.attributes.x.value = svgWidth - xpad - 100;
        };
        window.addEventListener('resize', function() {
            update_for_width_change();
        });
        // This needs to be done asynchronously for Safari to work.
        setTimeout(function() {
            unzoom();
            update_for_width_change();
            restore_state();
        }, 0);
    } else {
        restore_state();
    }
}
// event listeners
window.addEventListener("click", function(e) {
    var target = find_group(e.target);
    if (target) {
        if (target.nodeName == "a") {
            if (e.ctrlKey === false) return;
            e.preventDefault();
        }
        if (target.classList.contains("parent")) unzoom();
        zoom(target);

        // set parameters for zoom state
        var el = target.querySelector("rect");
        if (el && el.attributes && el.attributes.y && el.attributes["fg:x"]) {
            var params = get_params()
            params.x = el.attributes["fg:x"].value;
            params.y = el.attributes.y.value;
            history.replaceState(null, null, parse_params(params));
        }
    }
    else if (e.target.id == "unzoom") {
        unzoom();

        // remove zoom state
        var params = get_params();
        if (params.x) delete params.x;
        if (params.y) delete params.y;
        history.replaceState(null, null, parse_params(params));
    }
    else if (e.target.id == "search") search_prompt();
}, false)
// mouse-over for info
// show
window.addEventListener("mouseover", function(e) {
    var target = find_group(e.target);
    if (target) details.nodeValue = nametype + " " + g_to_text(target);
}, false)
// clear
window.addEventListener("mouseout", function(e) {
    var target = find_group(e.target);
    if (target) details.nodeValue = ' ';
}, false)
// ctrl-F for search
window.addEventListener("keydown",function (e) {
    if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
        e.preventDefault();
        search_prompt();
    }
}, false)
// functions
function get_params() {
    var params = {};
    var paramsarr = window.location.search.substr(1).split('&');
    for (var i = 0; i < paramsarr.length; ++i) {
        var tmp = paramsarr[i].split("=");
        if (!tmp[0] || !tmp[1]) continue;
        params[tmp[0]]  = decodeURIComponent(tmp[1]);
    }
    return params;
}
function parse_params(params) {
    var uri = "?";
    for (var key in params) {
        uri += key + '=' + encodeURIComponent(params[key]) + '&';
    }
    if (uri.slice(-1) == "&")
        uri = uri.substring(0, uri.length - 1);
    if (uri == '?')
        uri = window.location.href.split('?')[0];
    return uri;
}
function find_child(node, selector) {
    var children = node.querySelectorAll(selector);
    if (children.length) return children[0];
    return;
}
function find_group(node) {
    var parent = node.parentElement;
    if (!parent) return;
    if (parent.id == "frames") return node;
    return find_group(parent);
}
function orig_save(e, attr, val) {
    if (e.attributes["fg:orig_" + attr] != undefined) return;
    if (e.attributes[attr] == undefined) return;
    if (val == undefined) val = e.attributes[attr].value;
    e.setAttribute("fg:orig_" + attr, val);
}
function orig_load(e, attr) {
    if (e.attributes["fg:orig_"+attr] == undefined) return;
    e.attributes[attr].value = e.attributes["fg:orig_" + attr].value;
    e.removeAttribute("fg: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) * frames.attributes.width.value / 100 - 3;
    var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,"");
    t.attributes.x.value = format_percent((parseFloat(r.attributes.x.value) + (100 * 3 / frames.attributes.width.value)));
    // Smaller than this size won't fit anything
    if (w < 2 * fontsize * fontwidth) {
        t.textContent = "";
        return;
    }
    t.textContent = txt;
    // Fit in full text width
    if (/^ *\$/.test(txt) || t.getComputedTextLength() < w)
        return;
    if (truncate_text_right) {
        // Truncate the right side of the text.
        for (var x = txt.length - 2; x > 0; x--) {
            if (t.getSubStringLength(0, x + 2) <= w) {
                t.textContent = txt.substring(0, x) + "..";
                return;
            }
        }
    } else {
        // Truncate the left side of the text.
        for (var x = 2; x < txt.length; x++) {
            if (t.getSubStringLength(x - 2, txt.length) <= w) {
                t.textContent = ".." + txt.substring(x, txt.length);
                return;
            }
        }
    }
    t.textContent = "";
}
// zoom
function zoom_reset(e) {
    if (e.tagName == "rect") {
        e.attributes.x.value = format_percent(100 * parseInt(e.attributes["fg:x"].value) / total_samples);
        e.attributes.width.value = format_percent(100 * parseInt(e.attributes["fg:w"].value) / total_samples);
    }
    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, zoomed_width_samples) {
    if (e.tagName == "text") {
        var parent_x = parseFloat(find_child(e.parentNode, "rect[x]").attributes.x.value);
        e.attributes.x.value = format_percent(parent_x + (100 * 3 / frames.attributes.width.value));
    } else if (e.tagName == "rect") {
        e.attributes.x.value = format_percent(100 * (parseInt(e.attributes["fg:x"].value) - x) / zoomed_width_samples);
        e.attributes.width.value = format_percent(100 * parseInt(e.attributes["fg:w"].value) / zoomed_width_samples);
    }
    if (e.childNodes == undefined) return;
    for(var i = 0, c = e.childNodes; i < c.length; i++) {
        zoom_child(c[i], x, zoomed_width_samples);
    }
}
function zoom_parent(e) {
    if (e.attributes) {
        if (e.attributes.x != undefined) {
            e.attributes.x.value = "0.0%";
        }
        if (e.attributes.width != undefined) {
            e.attributes.width.value = "100.0%";
        }
    }
    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 = parseInt(attr["fg:w"].value);
    var xmin = parseInt(attr["fg:x"].value);
    var xmax = xmin + width;
    var ymin = parseFloat(attr.y.value);
    unzoombtn.classList.remove("hide");
    var el = frames.children;
    for (var i = 0; i < el.length; i++) {
        var e = el[i];
        var a = find_child(e, "rect").attributes;
        var ex = parseInt(a["fg:x"].value);
        var ew = parseInt(a["fg:w"].value);
        // Is it an ancestor
        if (!inverted) {
            var upstack = parseFloat(a.y.value) > ymin;
        } else {
            var upstack = parseFloat(a.y.value) < ymin;
        }
        if (upstack) {
            // Direct ancestor
            if (ex <= xmin && (ex+ew) >= xmax) {
                e.classList.add("parent");
                zoom_parent(e);
                update_text(e);
            }
            // not in current path
            else
                e.classList.add("hide");
        }
        // Children maybe
        else {
            // no common path
            if (ex < xmin || ex >= xmax) {
                e.classList.add("hide");
            }
            else {
                zoom_child(e, xmin, width);
                update_text(e);
            }
        }
    }
}
function unzoom() {
    unzoombtn.classList.add("hide");
    var el = frames.children;
    for(var i = 0; i < el.length; i++) {
        el[i].classList.remove("parent");
        el[i].classList.remove("hide");
        zoom_reset(el[i]);
        update_text(el[i]);
    }
}
// search
function reset_search() {
    var el = document.querySelectorAll("#frames rect");
    for (var i = 0; i < el.length; i++) {
        orig_load(el[i], "fill")
    }
    var params = get_params();
    delete params.s;
    history.replaceState(null, null, parse_params(params));
}
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.classList.remove("show");
        searchbtn.firstChild.nodeValue = "Search"
        matchedtxt.classList.add("hide");
        matchedtxt.firstChild.nodeValue = ""
    }
}
function search(term) {
    var re = new RegExp(term);
    var el = frames.children;
    var matches = new Object();
    var maxwidth = 0;
    for (var i = 0; i < el.length; i++) {
        var e = el[i];
        // Skip over frames which are either not visible, or below the zoomed-to frame
        if (e.classList.contains("hide") || e.classList.contains("parent")) {
            continue;
        }
        var func = g_to_func(e);
        var rect = find_child(e, "rect");
        if (func == null || rect == null)
            continue;
        // Save max width. Only works as we have a root frame
        var w = parseInt(rect.attributes["fg:w"].value);
        if (w > maxwidth)
            maxwidth = w;
        if (func.match(re)) {
            // highlight
            var x = parseInt(rect.attributes["fg:x"].value);
            orig_save(rect, "fill");
            rect.attributes.fill.value = searchcolor;
            // 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;
    var params = get_params();
    params.s = term;
    history.replaceState(null, null, parse_params(params));

    searchbtn.classList.add("show");
    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.
    for (var k in keys) {
        var x = parseInt(keys[k]);
        var w = matches[keys[k]];
        if (x >= lastx + lastw) {
            count += w;
            lastx = x;
            lastw = w;
        }
    }
    // display matched percent
    matchedtxt.classList.remove("hide");
    var pct = 100 * count / maxwidth;
    if (pct != 100) pct = pct.toFixed(1);
    matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%";
}
function format_percent(n) {
    return n.toFixed(4) + "%";
}
]]></script><rect x="0" y="0" width="100%" height="294" fill="url(#background)"/><text id="title" x="50.0000%" y="24.00">Flame Graph</text><text id="details" x="10" y="277.00"> </text><text id="unzoom" class="hide" x="10" y="24.00">Reset Zoom</text><text id="search" x="1090" y="24.00">Search</text><text id="matched" x="1090" y="277.00"> </text><svg id="frames" x="10" width="1180" total_samples="37403"><g><title>aoc2021`&lt;core::iter::adapters::flatten::Flatten&lt;I&gt; as core::iter::traits::iterator::Iterator&gt;::next (17 samples, 0.05%)</title><rect x="0.0107%" y="149" width="0.0455%" height="15" fill="rgb(227,0,7)" fg:x="4" fg:w="17"/><text x="0.2607%" y="159.50"></text></g><g><title>libsystem_malloc.dylib`malloc_zone_realloc (7 samples, 0.02%)</title><rect x="0.5080%" y="85" width="0.0187%" height="15" fill="rgb(217,0,24)" fg:x="190" fg:w="7"/><text x="0.7580%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`szone_realloc (5 samples, 0.01%)</title><rect x="0.5133%" y="69" width="0.0134%" height="15" fill="rgb(221,193,54)" fg:x="192" fg:w="5"/><text x="0.7633%" y="79.50"></text></g><g><title>aoc2021`alloc::raw_vec::RawVec&lt;T,A&gt;::reserve::do_reserve_and_handle (9 samples, 0.02%)</title><rect x="0.5053%" y="133" width="0.0241%" height="15" fill="rgb(248,212,6)" fg:x="189" fg:w="9"/><text x="0.7553%" y="143.50"></text></g><g><title>aoc2021`alloc::raw_vec::finish_grow (9 samples, 0.02%)</title><rect x="0.5053%" y="117" width="0.0241%" height="15" fill="rgb(208,68,35)" fg:x="189" fg:w="9"/><text x="0.7553%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`realloc (8 samples, 0.02%)</title><rect x="0.5080%" y="101" width="0.0214%" height="15" fill="rgb(232,128,0)" fg:x="190" fg:w="8"/><text x="0.7580%" y="111.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (205 samples, 0.55%)</title><rect x="0.5294%" y="133" width="0.5481%" height="15" fill="rgb(207,160,47)" fg:x="198" fg:w="205"/><text x="0.7794%" y="143.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (24 samples, 0.06%)</title><rect x="1.0133%" y="117" width="0.0642%" height="15" fill="rgb(228,23,34)" fg:x="379" fg:w="24"/><text x="1.2633%" y="127.50"></text></g><g><title>aoc2021`aoc2021::day01::run (391 samples, 1.05%)</title><rect x="0.0722%" y="149" width="1.0454%" height="15" fill="rgb(218,30,26)" fg:x="27" fg:w="391"/><text x="0.3222%" y="159.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (15 samples, 0.04%)</title><rect x="1.0775%" y="133" width="0.0401%" height="15" fill="rgb(220,122,19)" fg:x="403" fg:w="15"/><text x="1.3275%" y="143.50"></text></g><g><title>aoc2021`aoc2021::day02::parse_line (22 samples, 0.06%)</title><rect x="1.1176%" y="149" width="0.0588%" height="15" fill="rgb(250,228,42)" fg:x="418" fg:w="22"/><text x="1.3676%" y="159.50"></text></g><g><title>aoc2021`DYLD-STUB$$memcmp (7 samples, 0.02%)</title><rect x="1.2940%" y="133" width="0.0187%" height="15" fill="rgb(240,193,28)" fg:x="484" fg:w="7"/><text x="1.5440%" y="143.50"></text></g><g><title>aoc2021`aoc2021::day02::parse_line (173 samples, 0.46%)</title><rect x="1.3127%" y="133" width="0.4625%" height="15" fill="rgb(216,20,37)" fg:x="491" fg:w="173"/><text x="1.5627%" y="143.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (411 samples, 1.10%)</title><rect x="1.7753%" y="133" width="1.0988%" height="15" fill="rgb(206,188,39)" fg:x="664" fg:w="411"/><text x="2.0253%" y="143.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (20 samples, 0.05%)</title><rect x="2.8206%" y="117" width="0.0535%" height="15" fill="rgb(217,207,13)" fg:x="1055" fg:w="20"/><text x="3.0706%" y="127.50"></text></g><g><title>aoc2021`aoc2021::day02::run (649 samples, 1.74%)</title><rect x="1.1764%" y="149" width="1.7352%" height="15" fill="rgb(231,73,38)" fg:x="440" fg:w="649"/><text x="1.4264%" y="159.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (14 samples, 0.04%)</title><rect x="2.8741%" y="133" width="0.0374%" height="15" fill="rgb(225,20,46)" fg:x="1075" fg:w="14"/><text x="3.1241%" y="143.50"></text></g><g><title>aoc2021`DYLD-STUB$$memcmp (13 samples, 0.03%)</title><rect x="4.2136%" y="133" width="0.0348%" height="15" fill="rgb(210,31,41)" fg:x="1576" fg:w="13"/><text x="4.4636%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`tiny_try_realloc_in_place (6 samples, 0.02%)</title><rect x="5.4087%" y="37" width="0.0160%" height="15" fill="rgb(221,200,47)" fg:x="2023" fg:w="6"/><text x="5.6587%" y="47.50"></text></g><g><title>libsystem_malloc.dylib`malloc_zone_realloc (14 samples, 0.04%)</title><rect x="5.3899%" y="69" width="0.0374%" height="15" fill="rgb(226,26,5)" fg:x="2016" fg:w="14"/><text x="5.6399%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`szone_realloc (13 samples, 0.03%)</title><rect x="5.3926%" y="53" width="0.0348%" height="15" fill="rgb(249,33,26)" fg:x="2017" fg:w="13"/><text x="5.6426%" y="63.50"></text></g><g><title>aoc2021`alloc::raw_vec::RawVec&lt;T,A&gt;::reserve::do_reserve_and_handle (23 samples, 0.06%)</title><rect x="5.3766%" y="117" width="0.0615%" height="15" fill="rgb(235,183,28)" fg:x="2011" fg:w="23"/><text x="5.6266%" y="127.50"></text></g><g><title>aoc2021`alloc::raw_vec::finish_grow (22 samples, 0.06%)</title><rect x="5.3792%" y="101" width="0.0588%" height="15" fill="rgb(221,5,38)" fg:x="2012" fg:w="22"/><text x="5.6292%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`realloc (19 samples, 0.05%)</title><rect x="5.3873%" y="85" width="0.0508%" height="15" fill="rgb(247,18,42)" fg:x="2015" fg:w="19"/><text x="5.6373%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`szone_size (4 samples, 0.01%)</title><rect x="5.4274%" y="69" width="0.0107%" height="15" fill="rgb(241,131,45)" fg:x="2030" fg:w="4"/><text x="5.6774%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`tiny_size (4 samples, 0.01%)</title><rect x="5.4274%" y="53" width="0.0107%" height="15" fill="rgb(249,31,29)" fg:x="2030" fg:w="4"/><text x="5.6774%" y="63.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (288 samples, 0.77%)</title><rect x="5.4381%" y="117" width="0.7700%" height="15" fill="rgb(225,111,53)" fg:x="2034" fg:w="288"/><text x="5.6881%" y="127.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (22 samples, 0.06%)</title><rect x="6.1492%" y="101" width="0.0588%" height="15" fill="rgb(238,160,17)" fg:x="2300" fg:w="22"/><text x="6.3992%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_malloc_should_clear (11 samples, 0.03%)</title><rect x="6.2161%" y="85" width="0.0294%" height="15" fill="rgb(214,148,48)" fg:x="2325" fg:w="11"/><text x="6.4661%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`small_malloc_from_free_list (7 samples, 0.02%)</title><rect x="6.2268%" y="69" width="0.0187%" height="15" fill="rgb(232,36,49)" fg:x="2329" fg:w="7"/><text x="6.4768%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_malloc (30 samples, 0.08%)</title><rect x="6.2081%" y="117" width="0.0802%" height="15" fill="rgb(209,103,24)" fg:x="2322" fg:w="30"/><text x="6.4581%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (27 samples, 0.07%)</title><rect x="6.2161%" y="101" width="0.0722%" height="15" fill="rgb(229,88,8)" fg:x="2325" fg:w="27"/><text x="6.4661%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`tiny_malloc_should_clear (16 samples, 0.04%)</title><rect x="6.2455%" y="85" width="0.0428%" height="15" fill="rgb(213,181,19)" fg:x="2336" fg:w="16"/><text x="6.4955%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`tiny_malloc_from_free_list (8 samples, 0.02%)</title><rect x="6.2669%" y="69" width="0.0214%" height="15" fill="rgb(254,191,54)" fg:x="2344" fg:w="8"/><text x="6.5169%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`tiny_free_list_add_ptr (5 samples, 0.01%)</title><rect x="6.2749%" y="53" width="0.0134%" height="15" fill="rgb(241,83,37)" fg:x="2347" fg:w="5"/><text x="6.5249%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`free (7 samples, 0.02%)</title><rect x="6.2883%" y="117" width="0.0187%" height="15" fill="rgb(233,36,39)" fg:x="2352" fg:w="7"/><text x="6.5383%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`szone_size (6 samples, 0.02%)</title><rect x="6.2909%" y="101" width="0.0160%" height="15" fill="rgb(226,3,54)" fg:x="2353" fg:w="6"/><text x="6.5409%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`tiny_size (4 samples, 0.01%)</title><rect x="6.2963%" y="85" width="0.0107%" height="15" fill="rgb(245,192,40)" fg:x="2355" fg:w="4"/><text x="6.5463%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`free_tiny (14 samples, 0.04%)</title><rect x="6.3150%" y="117" width="0.0374%" height="15" fill="rgb(238,167,29)" fg:x="2362" fg:w="14"/><text x="6.5650%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`tiny_free_no_lock (10 samples, 0.03%)</title><rect x="6.3257%" y="101" width="0.0267%" height="15" fill="rgb(232,182,51)" fg:x="2366" fg:w="10"/><text x="6.5757%" y="111.50"></text></g><g><title>aoc2021`aoc2021::day03::find_oxygen_or_co2 (799 samples, 2.14%)</title><rect x="4.2510%" y="133" width="2.1362%" height="15" fill="rgb(231,60,39)" fg:x="1590" fg:w="799"/><text x="4.5010%" y="143.50">a..</text></g><g><title>libsystem_platform.dylib`_platform_memcmp (11 samples, 0.03%)</title><rect x="6.3578%" y="117" width="0.0294%" height="15" fill="rgb(208,69,12)" fg:x="2378" fg:w="11"/><text x="6.6078%" y="127.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (467 samples, 1.25%)</title><rect x="6.3872%" y="133" width="1.2486%" height="15" fill="rgb(235,93,37)" fg:x="2389" fg:w="467"/><text x="6.6372%" y="143.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (25 samples, 0.07%)</title><rect x="7.5689%" y="117" width="0.0668%" height="15" fill="rgb(213,116,39)" fg:x="2831" fg:w="25"/><text x="7.8189%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_calloc (4 samples, 0.01%)</title><rect x="7.6358%" y="133" width="0.0107%" height="15" fill="rgb(222,207,29)" fg:x="2856" fg:w="4"/><text x="7.8858%" y="143.50"></text></g><g><title>aoc2021`aoc2021::day03::run (1,798 samples, 4.81%)</title><rect x="2.9115%" y="149" width="4.8071%" height="15" fill="rgb(206,96,30)" fg:x="1089" fg:w="1798"/><text x="3.1615%" y="159.50">aoc202..</text></g><g><title>libsystem_platform.dylib`_platform_memcmp (16 samples, 0.04%)</title><rect x="7.6759%" y="133" width="0.0428%" height="15" fill="rgb(218,138,4)" fg:x="2871" fg:w="16"/><text x="7.9259%" y="143.50"></text></g><g><title>aoc2021`&lt;core::str::iter::SplitWhitespace as core::iter::traits::iterator::Iterator&gt;::next (378 samples, 1.01%)</title><rect x="42.2025%" y="117" width="1.0106%" height="15" fill="rgb(250,191,14)" fg:x="15785" fg:w="378"/><text x="42.4525%" y="127.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (263 samples, 0.70%)</title><rect x="43.2185%" y="117" width="0.7032%" height="15" fill="rgb(239,60,40)" fg:x="16165" fg:w="263"/><text x="43.4685%" y="127.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (16 samples, 0.04%)</title><rect x="43.8788%" y="101" width="0.0428%" height="15" fill="rgb(206,27,48)" fg:x="16412" fg:w="16"/><text x="44.1288%" y="111.50"></text></g><g><title>aoc2021`&lt;core::iter::adapters::flatten::Flatten&lt;I&gt; as core::iter::traits::iterator::Iterator&gt;::next (928 samples, 2.48%)</title><rect x="41.4592%" y="133" width="2.4811%" height="15" fill="rgb(225,35,8)" fg:x="15507" fg:w="928"/><text x="41.7092%" y="143.50">ao..</text></g><g><title>libsystem_platform.dylib`_platform_memcmp (7 samples, 0.02%)</title><rect x="43.9216%" y="117" width="0.0187%" height="15" fill="rgb(250,213,24)" fg:x="16428" fg:w="7"/><text x="44.1716%" y="127.50"></text></g><g><title>aoc2021`&lt;core::str::iter::SplitWhitespace as core::iter::traits::iterator::Iterator&gt;::next (20 samples, 0.05%)</title><rect x="43.9403%" y="133" width="0.0535%" height="15" fill="rgb(247,123,22)" fg:x="16435" fg:w="20"/><text x="44.1903%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`free_tiny (6 samples, 0.02%)</title><rect x="44.0179%" y="53" width="0.0160%" height="15" fill="rgb(231,138,38)" fg:x="16464" fg:w="6"/><text x="44.2679%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`set_tiny_meta_header_in_use (4 samples, 0.01%)</title><rect x="44.0339%" y="53" width="0.0107%" height="15" fill="rgb(231,145,46)" fg:x="16470" fg:w="4"/><text x="44.2839%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`small_try_realloc_in_place (9 samples, 0.02%)</title><rect x="44.0446%" y="53" width="0.0241%" height="15" fill="rgb(251,118,11)" fg:x="16474" fg:w="9"/><text x="44.2946%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (6 samples, 0.02%)</title><rect x="44.0687%" y="53" width="0.0160%" height="15" fill="rgb(217,147,25)" fg:x="16483" fg:w="6"/><text x="44.3187%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`small_malloc_should_clear (5 samples, 0.01%)</title><rect x="44.0713%" y="37" width="0.0134%" height="15" fill="rgb(247,81,37)" fg:x="16484" fg:w="5"/><text x="44.3213%" y="47.50"></text></g><g><title>libsystem_malloc.dylib`tiny_try_realloc_in_place (9 samples, 0.02%)</title><rect x="44.0874%" y="53" width="0.0241%" height="15" fill="rgb(209,12,38)" fg:x="16490" fg:w="9"/><text x="44.3374%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`szone_realloc (40 samples, 0.11%)</title><rect x="44.0098%" y="69" width="0.1069%" height="15" fill="rgb(227,1,9)" fg:x="16461" fg:w="40"/><text x="44.2598%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`malloc_zone_realloc (42 samples, 0.11%)</title><rect x="44.0072%" y="85" width="0.1123%" height="15" fill="rgb(248,47,43)" fg:x="16460" fg:w="42"/><text x="44.2572%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`realloc (53 samples, 0.14%)</title><rect x="44.0018%" y="101" width="0.1417%" height="15" fill="rgb(221,10,30)" fg:x="16458" fg:w="53"/><text x="44.2518%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`szone_size (8 samples, 0.02%)</title><rect x="44.1221%" y="85" width="0.0214%" height="15" fill="rgb(210,229,1)" fg:x="16503" fg:w="8"/><text x="44.3721%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`tiny_size (7 samples, 0.02%)</title><rect x="44.1248%" y="69" width="0.0187%" height="15" fill="rgb(222,148,37)" fg:x="16504" fg:w="7"/><text x="44.3748%" y="79.50"></text></g><g><title>aoc2021`alloc::raw_vec::RawVec&lt;T,A&gt;::reserve::do_reserve_and_handle (56 samples, 0.15%)</title><rect x="43.9965%" y="133" width="0.1497%" height="15" fill="rgb(234,67,33)" fg:x="16456" fg:w="56"/><text x="44.2465%" y="143.50"></text></g><g><title>aoc2021`alloc::raw_vec::finish_grow (56 samples, 0.15%)</title><rect x="43.9965%" y="117" width="0.1497%" height="15" fill="rgb(247,98,35)" fg:x="16456" fg:w="56"/><text x="44.2465%" y="127.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (32 samples, 0.09%)</title><rect x="44.1462%" y="133" width="0.0856%" height="15" fill="rgb(247,138,52)" fg:x="16512" fg:w="32"/><text x="44.3962%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`set_tiny_meta_header_in_use (21 samples, 0.06%)</title><rect x="44.4376%" y="85" width="0.0561%" height="15" fill="rgb(213,79,30)" fg:x="16621" fg:w="21"/><text x="44.6876%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_malloc (119 samples, 0.32%)</title><rect x="44.2371%" y="133" width="0.3182%" height="15" fill="rgb(246,177,23)" fg:x="16546" fg:w="119"/><text x="44.4871%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (109 samples, 0.29%)</title><rect x="44.2638%" y="117" width="0.2914%" height="15" fill="rgb(230,62,27)" fg:x="16556" fg:w="109"/><text x="44.5138%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`tiny_malloc_should_clear (99 samples, 0.26%)</title><rect x="44.2906%" y="101" width="0.2647%" height="15" fill="rgb(216,154,8)" fg:x="16566" fg:w="99"/><text x="44.5406%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`tiny_malloc_from_free_list (23 samples, 0.06%)</title><rect x="44.4938%" y="85" width="0.0615%" height="15" fill="rgb(244,35,45)" fg:x="16642" fg:w="23"/><text x="44.7438%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`szone_size (14 samples, 0.04%)</title><rect x="44.5900%" y="117" width="0.0374%" height="15" fill="rgb(251,115,12)" fg:x="16678" fg:w="14"/><text x="44.8400%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`tiny_size (11 samples, 0.03%)</title><rect x="44.5980%" y="101" width="0.0294%" height="15" fill="rgb(240,54,50)" fg:x="16681" fg:w="11"/><text x="44.8480%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`free (28 samples, 0.07%)</title><rect x="44.5606%" y="133" width="0.0749%" height="15" fill="rgb(233,84,52)" fg:x="16667" fg:w="28"/><text x="44.8106%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`tiny_free_list_remove_ptr (4 samples, 0.01%)</title><rect x="44.7076%" y="117" width="0.0107%" height="15" fill="rgb(207,117,47)" fg:x="16722" fg:w="4"/><text x="44.9576%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`tiny_free_list_add_ptr (30 samples, 0.08%)</title><rect x="44.7879%" y="101" width="0.0802%" height="15" fill="rgb(249,43,39)" fg:x="16752" fg:w="30"/><text x="45.0379%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`free_tiny (95 samples, 0.25%)</title><rect x="44.6435%" y="133" width="0.2540%" height="15" fill="rgb(209,38,44)" fg:x="16698" fg:w="95"/><text x="44.8935%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`tiny_free_no_lock (67 samples, 0.18%)</title><rect x="44.7183%" y="117" width="0.1791%" height="15" fill="rgb(236,212,23)" fg:x="16726" fg:w="67"/><text x="44.9683%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`tiny_free_list_remove_ptr (11 samples, 0.03%)</title><rect x="44.8681%" y="101" width="0.0294%" height="15" fill="rgb(242,79,21)" fg:x="16782" fg:w="11"/><text x="45.1181%" y="111.50"></text></g><g><title>aoc2021`aoc2021::day04::find_winning_score (13,921 samples, 37.22%)</title><rect x="7.7186%" y="149" width="37.2189%" height="15" fill="rgb(211,96,35)" fg:x="2887" fg:w="13921"/><text x="7.9686%" y="159.50">aoc2021`aoc2021::day04::find_winning_score</text></g><g><title>libsystem_platform.dylib`_platform_memmove$VARIANT$Haswell (13 samples, 0.03%)</title><rect x="44.9028%" y="133" width="0.0348%" height="15" fill="rgb(253,215,40)" fg:x="16795" fg:w="13"/><text x="45.1528%" y="143.50"></text></g><g><title>aoc2021`&lt;core::str::iter::SplitWhitespace as core::iter::traits::iterator::Iterator&gt;::next (155 samples, 0.41%)</title><rect x="45.3707%" y="117" width="0.4144%" height="15" fill="rgb(211,81,21)" fg:x="16970" fg:w="155"/><text x="45.6207%" y="127.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (269 samples, 0.72%)</title><rect x="45.7931%" y="117" width="0.7192%" height="15" fill="rgb(208,190,38)" fg:x="17128" fg:w="269"/><text x="46.0431%" y="127.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (10 samples, 0.03%)</title><rect x="46.4856%" y="101" width="0.0267%" height="15" fill="rgb(235,213,38)" fg:x="17387" fg:w="10"/><text x="46.7356%" y="111.50"></text></g><g><title>aoc2021`&lt;core::iter::adapters::map::Map&lt;I,F&gt; as core::iter::traits::iterator::Iterator&gt;::next (586 samples, 1.57%)</title><rect x="44.9616%" y="133" width="1.5667%" height="15" fill="rgb(237,122,38)" fg:x="16817" fg:w="586"/><text x="45.2116%" y="143.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (6 samples, 0.02%)</title><rect x="46.5123%" y="117" width="0.0160%" height="15" fill="rgb(244,218,35)" fg:x="17397" fg:w="6"/><text x="46.7623%" y="127.50"></text></g><g><title>aoc2021`&lt;core::str::iter::SplitWhitespace as core::iter::traits::iterator::Iterator&gt;::next (5 samples, 0.01%)</title><rect x="46.5284%" y="133" width="0.0134%" height="15" fill="rgb(240,68,47)" fg:x="17403" fg:w="5"/><text x="46.7784%" y="143.50"></text></g><g><title>aoc2021`DYLD-STUB$$free (5 samples, 0.01%)</title><rect x="46.5417%" y="133" width="0.0134%" height="15" fill="rgb(210,16,53)" fg:x="17408" fg:w="5"/><text x="46.7917%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`malloc_zone_realloc (12 samples, 0.03%)</title><rect x="46.5658%" y="85" width="0.0321%" height="15" fill="rgb(235,124,12)" fg:x="17417" fg:w="12"/><text x="46.8158%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`szone_realloc (12 samples, 0.03%)</title><rect x="46.5658%" y="69" width="0.0321%" height="15" fill="rgb(224,169,11)" fg:x="17417" fg:w="12"/><text x="46.8158%" y="79.50"></text></g><g><title>aoc2021`alloc::raw_vec::RawVec&lt;T,A&gt;::reserve::do_reserve_and_handle (14 samples, 0.04%)</title><rect x="46.5631%" y="133" width="0.0374%" height="15" fill="rgb(250,166,2)" fg:x="17416" fg:w="14"/><text x="46.8131%" y="143.50"></text></g><g><title>aoc2021`alloc::raw_vec::finish_grow (14 samples, 0.04%)</title><rect x="46.5631%" y="117" width="0.0374%" height="15" fill="rgb(242,216,29)" fg:x="17416" fg:w="14"/><text x="46.8131%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`realloc (14 samples, 0.04%)</title><rect x="46.5631%" y="101" width="0.0374%" height="15" fill="rgb(230,116,27)" fg:x="17416" fg:w="14"/><text x="46.8131%" y="111.50"></text></g><g><title>libsystem_platform.dylib`_platform_bzero$VARIANT$Haswell (8 samples, 0.02%)</title><rect x="73.5128%" y="69" width="0.0214%" height="15" fill="rgb(228,99,48)" fg:x="27496" fg:w="8"/><text x="73.7628%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_calloc (11 samples, 0.03%)</title><rect x="73.5075%" y="117" width="0.0294%" height="15" fill="rgb(253,11,6)" fg:x="27494" fg:w="11"/><text x="73.7575%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (11 samples, 0.03%)</title><rect x="73.5075%" y="101" width="0.0294%" height="15" fill="rgb(247,143,39)" fg:x="27494" fg:w="11"/><text x="73.7575%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_malloc_should_clear (11 samples, 0.03%)</title><rect x="73.5075%" y="85" width="0.0294%" height="15" fill="rgb(236,97,10)" fg:x="27494" fg:w="11"/><text x="73.7575%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`small_malloc_should_clear (6 samples, 0.02%)</title><rect x="74.0288%" y="101" width="0.0160%" height="15" fill="rgb(233,208,19)" fg:x="27689" fg:w="6"/><text x="74.2788%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_malloc_from_free_list (6 samples, 0.02%)</title><rect x="74.2080%" y="85" width="0.0160%" height="15" fill="rgb(216,164,2)" fg:x="27756" fg:w="6"/><text x="74.4580%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr (8 samples, 0.02%)</title><rect x="78.0953%" y="69" width="0.0214%" height="15" fill="rgb(220,129,5)" fg:x="29210" fg:w="8"/><text x="78.3453%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr_no_clear (5 samples, 0.01%)</title><rect x="78.1167%" y="69" width="0.0134%" height="15" fill="rgb(242,17,10)" fg:x="29218" fg:w="5"/><text x="78.3667%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_add_ptr (202 samples, 0.54%)</title><rect x="78.6033%" y="53" width="0.5401%" height="15" fill="rgb(242,107,0)" fg:x="29400" fg:w="202"/><text x="78.8533%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr (76 samples, 0.20%)</title><rect x="79.1434%" y="53" width="0.2032%" height="15" fill="rgb(251,28,31)" fg:x="29602" fg:w="76"/><text x="79.3934%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_malloc (2,300 samples, 6.15%)</title><rect x="73.5369%" y="117" width="6.1492%" height="15" fill="rgb(233,223,10)" fg:x="27505" fg:w="2300"/><text x="73.7869%" y="127.50">libsyste..</text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (2,110 samples, 5.64%)</title><rect x="74.0449%" y="101" width="5.6413%" height="15" fill="rgb(215,21,27)" fg:x="27695" fg:w="2110"/><text x="74.2949%" y="111.50">libsyst..</text></g><g><title>libsystem_malloc.dylib`small_malloc_should_clear (2,043 samples, 5.46%)</title><rect x="74.2240%" y="85" width="5.4621%" height="15" fill="rgb(232,23,21)" fg:x="27762" fg:w="2043"/><text x="74.4740%" y="95.50">libsyst..</text></g><g><title>libsystem_malloc.dylib`small_malloc_from_free_list (582 samples, 1.56%)</title><rect x="78.1301%" y="69" width="1.5560%" height="15" fill="rgb(244,5,23)" fg:x="29223" fg:w="582"/><text x="78.3801%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr_no_clear (127 samples, 0.34%)</title><rect x="79.3466%" y="53" width="0.3395%" height="15" fill="rgb(226,81,46)" fg:x="29678" fg:w="127"/><text x="79.5966%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`default_zone_malloc (265 samples, 0.71%)</title><rect x="79.6861%" y="117" width="0.7085%" height="15" fill="rgb(247,70,30)" fg:x="29805" fg:w="265"/><text x="79.9361%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`small_size (44 samples, 0.12%)</title><rect x="80.6219%" y="101" width="0.1176%" height="15" fill="rgb(212,68,19)" fg:x="30155" fg:w="44"/><text x="80.8719%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`szone_size (55 samples, 0.15%)</title><rect x="80.7395%" y="101" width="0.1470%" height="15" fill="rgb(240,187,13)" fg:x="30199" fg:w="55"/><text x="80.9895%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`tiny_size (30 samples, 0.08%)</title><rect x="80.8064%" y="85" width="0.0802%" height="15" fill="rgb(223,113,26)" fg:x="30224" fg:w="30"/><text x="81.0564%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`free (191 samples, 0.51%)</title><rect x="80.3946%" y="117" width="0.5107%" height="15" fill="rgb(206,192,2)" fg:x="30070" fg:w="191"/><text x="80.6446%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`tiny_size (7 samples, 0.02%)</title><rect x="80.8866%" y="101" width="0.0187%" height="15" fill="rgb(241,108,4)" fg:x="30254" fg:w="7"/><text x="81.1366%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_add_ptr (135 samples, 0.36%)</title><rect x="82.1057%" y="101" width="0.3609%" height="15" fill="rgb(247,173,49)" fg:x="30710" fg:w="135"/><text x="82.3557%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_find_by_ptr (20 samples, 0.05%)</title><rect x="82.4666%" y="101" width="0.0535%" height="15" fill="rgb(224,114,35)" fg:x="30845" fg:w="20"/><text x="82.7166%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr (37 samples, 0.10%)</title><rect x="82.5201%" y="101" width="0.0989%" height="15" fill="rgb(245,159,27)" fg:x="30865" fg:w="37"/><text x="82.7701%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`free_small (792 samples, 2.12%)</title><rect x="80.9053%" y="117" width="2.1175%" height="15" fill="rgb(245,172,44)" fg:x="30261" fg:w="792"/><text x="81.1553%" y="127.50">l..</text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr_no_clear (151 samples, 0.40%)</title><rect x="82.6190%" y="101" width="0.4037%" height="15" fill="rgb(236,23,11)" fg:x="30902" fg:w="151"/><text x="82.8690%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_add_ptr (11 samples, 0.03%)</title><rect x="83.0228%" y="117" width="0.0294%" height="15" fill="rgb(205,117,38)" fg:x="31053" fg:w="11"/><text x="83.2728%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_find_by_ptr (8 samples, 0.02%)</title><rect x="83.0522%" y="117" width="0.0214%" height="15" fill="rgb(237,72,25)" fg:x="31064" fg:w="8"/><text x="83.3022%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`small_free_list_remove_ptr (7 samples, 0.02%)</title><rect x="83.0736%" y="117" width="0.0187%" height="15" fill="rgb(244,70,9)" fg:x="31072" fg:w="7"/><text x="83.3236%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc (7 samples, 0.02%)</title><rect x="83.0923%" y="117" width="0.0187%" height="15" fill="rgb(217,125,39)" fg:x="31079" fg:w="7"/><text x="83.3423%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (6 samples, 0.02%)</title><rect x="83.1110%" y="117" width="0.0160%" height="15" fill="rgb(235,36,10)" fg:x="31086" fg:w="6"/><text x="83.3610%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`szone_size (6 samples, 0.02%)</title><rect x="83.1270%" y="117" width="0.0160%" height="15" fill="rgb(251,123,47)" fg:x="31092" fg:w="6"/><text x="83.3770%" y="127.50"></text></g><g><title>aoc2021`aoc2021::day05::count_overlapped_cells (17,916 samples, 47.90%)</title><rect x="46.6005%" y="133" width="47.8999%" height="15" fill="rgb(221,13,13)" fg:x="17430" fg:w="17916"/><text x="46.8505%" y="143.50">aoc2021`aoc2021::day05::count_overlapped_cells</text></g><g><title>libsystem_platform.dylib`_platform_memmove$VARIANT$Haswell (4,248 samples, 11.36%)</title><rect x="83.1431%" y="117" width="11.3574%" height="15" fill="rgb(238,131,9)" fg:x="31098" fg:w="4248"/><text x="83.3931%" y="127.50">libsystem_platfor..</text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (13 samples, 0.03%)</title><rect x="94.5004%" y="133" width="0.0348%" height="15" fill="rgb(211,50,8)" fg:x="35346" fg:w="13"/><text x="94.7504%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_malloc (18 samples, 0.05%)</title><rect x="94.5352%" y="133" width="0.0481%" height="15" fill="rgb(245,182,24)" fg:x="35359" fg:w="18"/><text x="94.7852%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`free (4 samples, 0.01%)</title><rect x="94.5887%" y="133" width="0.0107%" height="15" fill="rgb(242,14,37)" fg:x="35379" fg:w="4"/><text x="94.8387%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`malloc (20 samples, 0.05%)</title><rect x="94.6047%" y="133" width="0.0535%" height="15" fill="rgb(246,228,12)" fg:x="35385" fg:w="20"/><text x="94.8547%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`szone_free_definite_size (35 samples, 0.09%)</title><rect x="94.6582%" y="133" width="0.0936%" height="15" fill="rgb(213,55,15)" fg:x="35405" fg:w="35"/><text x="94.9082%" y="143.50"></text></g><g><title>aoc2021`aoc2021::day05::run (18,652 samples, 49.87%)</title><rect x="44.9376%" y="149" width="49.8677%" height="15" fill="rgb(209,9,3)" fg:x="16808" fg:w="18652"/><text x="45.1876%" y="159.50">aoc2021`aoc2021::day05::run</text></g><g><title>libsystem_platform.dylib`_platform_memmove$VARIANT$Haswell (20 samples, 0.05%)</title><rect x="94.7518%" y="133" width="0.0535%" height="15" fill="rgb(230,59,30)" fg:x="35440" fg:w="20"/><text x="95.0018%" y="143.50"></text></g><g><title>aoc2021`hashbrown::map::make_hash (84 samples, 0.22%)</title><rect x="94.8935%" y="133" width="0.2246%" height="15" fill="rgb(209,121,21)" fg:x="35493" fg:w="84"/><text x="95.1435%" y="143.50"></text></g><g><title>aoc2021`core::hash::impls::_&lt;impl core::hash::Hash for isize&gt;::hash (48 samples, 0.13%)</title><rect x="94.9897%" y="117" width="0.1283%" height="15" fill="rgb(220,109,13)" fg:x="35529" fg:w="48"/><text x="95.2397%" y="127.50"></text></g><g><title>libsystem_pthread.dylib`pthread_mutex_lock (42 samples, 0.11%)</title><rect x="95.1180%" y="133" width="0.1123%" height="15" fill="rgb(232,18,1)" fg:x="35577" fg:w="42"/><text x="95.3680%" y="143.50"></text></g><g><title>aoc2021`aoc2021::day06::count_babies (193 samples, 0.52%)</title><rect x="94.8052%" y="149" width="0.5160%" height="15" fill="rgb(215,41,42)" fg:x="35460" fg:w="193"/><text x="95.0552%" y="159.50"></text></g><g><title>libsystem_pthread.dylib`pthread_mutex_unlock (34 samples, 0.09%)</title><rect x="95.2303%" y="133" width="0.0909%" height="15" fill="rgb(224,123,36)" fg:x="35619" fg:w="34"/><text x="95.4803%" y="143.50"></text></g><g><title>aoc2021`core::slice::sort::recurse (371 samples, 0.99%)</title><rect x="97.8478%" y="117" width="0.9919%" height="15" fill="rgb(240,125,3)" fg:x="36598" fg:w="371"/><text x="98.0978%" y="127.50"></text></g><g><title>aoc2021`core::slice::sort::recurse (311 samples, 0.83%)</title><rect x="98.0082%" y="101" width="0.8315%" height="15" fill="rgb(205,98,50)" fg:x="36658" fg:w="311"/><text x="98.2582%" y="111.50"></text></g><g><title>aoc2021`core::slice::sort::recurse (199 samples, 0.53%)</title><rect x="98.3076%" y="85" width="0.5320%" height="15" fill="rgb(205,185,37)" fg:x="36770" fg:w="199"/><text x="98.5576%" y="95.50"></text></g><g><title>aoc2021`core::slice::sort::recurse (86 samples, 0.23%)</title><rect x="98.6097%" y="69" width="0.2299%" height="15" fill="rgb(238,207,15)" fg:x="36883" fg:w="86"/><text x="98.8597%" y="79.50"></text></g><g><title>aoc2021`core::slice::sort::recurse (25 samples, 0.07%)</title><rect x="98.7728%" y="53" width="0.0668%" height="15" fill="rgb(213,199,42)" fg:x="36944" fg:w="25"/><text x="99.0228%" y="63.50"></text></g><g><title>aoc2021`aoc2021::day07::find_cheapest_location (1,319 samples, 3.53%)</title><rect x="95.3266%" y="133" width="3.5265%" height="15" fill="rgb(235,201,11)" fg:x="35655" fg:w="1319"/><text x="95.5766%" y="143.50">aoc..</text></g><g><title>libsystem_platform.dylib`_platform_memmove$VARIANT$Haswell (4 samples, 0.01%)</title><rect x="98.8423%" y="117" width="0.0107%" height="15" fill="rgb(207,46,11)" fg:x="36970" fg:w="4"/><text x="99.0923%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`malloc_zone_realloc (14 samples, 0.04%)</title><rect x="99.1498%" y="69" width="0.0374%" height="15" fill="rgb(241,35,35)" fg:x="37085" fg:w="14"/><text x="99.3998%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`szone_realloc (11 samples, 0.03%)</title><rect x="99.1578%" y="53" width="0.0294%" height="15" fill="rgb(243,32,47)" fg:x="37088" fg:w="11"/><text x="99.4078%" y="63.50"></text></g><g><title>libsystem_malloc.dylib`tiny_try_realloc_in_place (5 samples, 0.01%)</title><rect x="99.1739%" y="37" width="0.0134%" height="15" fill="rgb(247,202,23)" fg:x="37094" fg:w="5"/><text x="99.4239%" y="47.50"></text></g><g><title>aoc2021`alloc::raw_vec::RawVec&lt;T,A&gt;::reserve::do_reserve_and_handle (19 samples, 0.05%)</title><rect x="99.1445%" y="117" width="0.0508%" height="15" fill="rgb(219,102,11)" fg:x="37083" fg:w="19"/><text x="99.3945%" y="127.50"></text></g><g><title>aoc2021`alloc::raw_vec::finish_grow (19 samples, 0.05%)</title><rect x="99.1445%" y="101" width="0.0508%" height="15" fill="rgb(243,110,44)" fg:x="37083" fg:w="19"/><text x="99.3945%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`realloc (17 samples, 0.05%)</title><rect x="99.1498%" y="85" width="0.0455%" height="15" fill="rgb(222,74,54)" fg:x="37085" fg:w="17"/><text x="99.3998%" y="95.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (158 samples, 0.42%)</title><rect x="99.1953%" y="117" width="0.4224%" height="15" fill="rgb(216,99,12)" fg:x="37102" fg:w="158"/><text x="99.4453%" y="127.50"></text></g><g><title>libsystem_platform.dylib`_platform_memcmp (16 samples, 0.04%)</title><rect x="99.5749%" y="101" width="0.0428%" height="15" fill="rgb(226,22,26)" fg:x="37244" fg:w="16"/><text x="99.8249%" y="111.50"></text></g><g><title>aoc2021`aoc2021::utils::parse_by_char (289 samples, 0.77%)</title><rect x="98.8530%" y="133" width="0.7727%" height="15" fill="rgb(217,163,10)" fg:x="36974" fg:w="289"/><text x="99.1030%" y="143.50"></text></g><g><title>aoc2021`aoc2021::day07::run (1,614 samples, 4.32%)</title><rect x="95.3212%" y="149" width="4.3152%" height="15" fill="rgb(213,25,53)" fg:x="35653" fg:w="1614"/><text x="95.5712%" y="159.50">aoc20..</text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (4 samples, 0.01%)</title><rect x="99.6257%" y="133" width="0.0107%" height="15" fill="rgb(252,105,26)" fg:x="37263" fg:w="4"/><text x="99.8757%" y="143.50"></text></g><g><title>libsystem_malloc.dylib`szone_malloc_should_clear (4 samples, 0.01%)</title><rect x="99.6845%" y="85" width="0.0107%" height="15" fill="rgb(220,39,43)" fg:x="37285" fg:w="4"/><text x="99.9345%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`tiny_malloc_should_clear (4 samples, 0.01%)</title><rect x="99.6845%" y="69" width="0.0107%" height="15" fill="rgb(229,68,48)" fg:x="37285" fg:w="4"/><text x="99.9345%" y="79.50"></text></g><g><title>libsystem_malloc.dylib`_malloc_zone_malloc (5 samples, 0.01%)</title><rect x="99.6845%" y="101" width="0.0134%" height="15" fill="rgb(252,8,32)" fg:x="37285" fg:w="5"/><text x="99.9345%" y="111.50"></text></g><g><title>libsystem_malloc.dylib`malloc_zone_realloc (8 samples, 0.02%)</title><rect x="99.6979%" y="85" width="0.0214%" height="15" fill="rgb(223,20,43)" fg:x="37290" fg:w="8"/><text x="99.9479%" y="95.50"></text></g><g><title>libsystem_malloc.dylib`szone_realloc (8 samples, 0.02%)</title><rect x="99.6979%" y="69" width="0.0214%" height="15" fill="rgb(229,81,49)" fg:x="37290" fg:w="8"/><text x="99.9479%" y="79.50"></text></g><g><title>aoc2021`alloc::raw_vec::RawVec&lt;T,A&gt;::reserve::do_reserve_and_handle (14 samples, 0.04%)</title><rect x="99.6845%" y="133" width="0.0374%" height="15" fill="rgb(236,28,36)" fg:x="37285" fg:w="14"/><text x="99.9345%" y="143.50"></text></g><g><title>aoc2021`alloc::raw_vec::finish_grow (14 samples, 0.04%)</title><rect x="99.6845%" y="117" width="0.0374%" height="15" fill="rgb(249,185,26)" fg:x="37285" fg:w="14"/><text x="99.9345%" y="127.50"></text></g><g><title>libsystem_malloc.dylib`realloc (9 samples, 0.02%)</title><rect x="99.6979%" y="101" width="0.0241%" height="15" fill="rgb(249,174,33)" fg:x="37290" fg:w="9"/><text x="99.9479%" y="111.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (24 samples, 0.06%)</title><rect x="99.7219%" y="133" width="0.0642%" height="15" fill="rgb(233,201,37)" fg:x="37299" fg:w="24"/><text x="99.9719%" y="143.50"></text></g><g><title>aoc2021`aoc2021::utils::parse_by_char (58 samples, 0.16%)</title><rect x="99.6364%" y="149" width="0.1551%" height="15" fill="rgb(221,78,26)" fg:x="37267" fg:w="58"/><text x="99.8864%" y="159.50"></text></g><g><title>aoc2021`core::str::iter::SplitInternal&lt;P&gt;::next (50 samples, 0.13%)</title><rect x="99.7915%" y="149" width="0.1337%" height="15" fill="rgb(250,127,30)" fg:x="37325" fg:w="50"/><text x="100.0415%" y="159.50"></text></g><g><title>libsystem_pthread.dylib`pthread_mutex_lock (5 samples, 0.01%)</title><rect x="99.9572%" y="149" width="0.0134%" height="15" fill="rgb(230,49,44)" fg:x="37387" fg:w="5"/><text x="100.2072%" y="159.50"></text></g><g><title>aoc2021`main (37,395 samples, 99.98%)</title><rect x="0.0000%" y="197" width="99.9786%" height="15" fill="rgb(229,67,23)" fg:x="0" fg:w="37395"/><text x="0.2500%" y="207.50">aoc2021`main</text></g><g><title>aoc2021`std::sys_common::backtrace::__rust_begin_short_backtrace (37,395 samples, 99.98%)</title><rect x="0.0000%" y="181" width="99.9786%" height="15" fill="rgb(249,83,47)" fg:x="0" fg:w="37395"/><text x="0.2500%" y="191.50">aoc2021`std::sys_common::backtrace::__rust_begin_short_backtrace</text></g><g><title>aoc2021`aoc2021::main (37,393 samples, 99.97%)</title><rect x="0.0053%" y="165" width="99.9733%" height="15" fill="rgb(215,43,3)" fg:x="2" fg:w="37393"/><text x="0.2553%" y="175.50">aoc2021`aoc2021::main</text></g><g><title>all (37,403 samples, 100%)</title><rect x="0.0000%" y="245" width="100.0000%" height="15" fill="rgb(238,154,13)" fg:x="0" fg:w="37403"/><text x="0.2500%" y="255.50"></text></g><g><title>0x1 (37,403 samples, 100.00%)</title><rect x="0.0000%" y="229" width="100.0000%" height="15" fill="rgb(219,56,2)" fg:x="0" fg:w="37403"/><text x="0.2500%" y="239.50">0x1</text></g><g><title>libdyld.dylib`start (37,403 samples, 100.00%)</title><rect x="0.0000%" y="213" width="100.0000%" height="15" fill="rgb(233,0,4)" fg:x="0" fg:w="37403"/><text x="0.2500%" y="223.50">libdyld.dylib`start</text></g><g><title>libsystem_kernel.dylib`__exit (8 samples, 0.02%)</title><rect x="99.9786%" y="197" width="0.0214%" height="15" fill="rgb(235,30,7)" fg:x="37395" fg:w="8"/><text x="100.2286%" y="207.50"></text></g></svg></svg>
\ No newline at end of file