summaryrefslogtreecommitdiff
path: root/python/gras/query/chart_allocator_counts.js
blob: cc06d24eb9380855e563bba0cb8e1a9cef252744 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
function GrasChartAllocatorCounts(args, panel)
{
    //input checking
    if (args.block_ids.length != 0) throw gras_error_dialog(
        "GrasChartAllocatorCounts",
        "Error making allocator counts chart.\n"+
        "Do not specify any blocks for this chart."
    );

    //settings
    this.div = $('<div />').attr({class:'chart_total_io_counts'});
    $(panel).append(this.div);
    this.title = "Theron allocator counts"
}

GrasChartAllocatorCounts.prototype.update = function(point)
{
    var ul = $('<ul />');
    $('ul', this.div).remove(); //clear old lists
    this.div.append(ul);

    function make_entry(strong, span)
    {
        var li = $('<li />');
        var strong = $('<strong />').text(strong + ": ");
        var span = $('<span />').text(span);
        li.append(strong);
        li.append(span);
        ul.append(li);
    }

    var stuff = [
        ['Allocated', 'bytes', 'bytes_allocated'],
        ['Peak size', 'bytes', 'peak_bytes_allocated'],
        ['Malloc\'d', 'times', 'allocation_count'],
    ];

    $.each(stuff, function(contents_i, contents)
    {
        var dir = contents[0];
        var units = contents[1];
        var key = contents[2];
        var count = (key in point)? point[key] : 0;
        if (count > 0) make_entry(dir, count.toString() + ' ' + units);
    });
}