Search in sources :

Example 1 with LongArrayList

use of com.google.devtools.build.lib.util.LongArrayList in project bazel by bazelbuild.

the class SkylarkStatistics method addDurations.

/**
   * Add all new durations to previously collected durations for all functions mapped to tasks.
   * @return The sum of the execution times of all {@link Task} values in the map.
   */
private static long addDurations(Multimap<String, Task> functionTasks, Map<String, LongArrayList> durationsMap, Map<String, LongArrayList> selfDurationsMap) {
    long totalTime = 0;
    for (Entry<String, Collection<Task>> entry : functionTasks.asMap().entrySet()) {
        String function = entry.getKey();
        Collection<Task> tasks = entry.getValue();
        LongArrayList durations;
        LongArrayList selfDurations;
        if (durationsMap.containsKey(function)) {
            durations = durationsMap.get(function);
            selfDurations = selfDurationsMap.get(function);
        } else {
            durations = new LongArrayList(tasks.size());
            selfDurations = new LongArrayList(tasks.size());
            durationsMap.put(function, durations);
            selfDurationsMap.put(function, selfDurations);
        }
        totalTime += addDurations(tasks, durations, selfDurations);
    }
    return totalTime;
}
Also used : Task(com.google.devtools.build.lib.profiler.ProfileInfo.Task) LongArrayList(com.google.devtools.build.lib.util.LongArrayList) Collection(java.util.Collection)

Example 2 with LongArrayList

use of com.google.devtools.build.lib.util.LongArrayList in project bazel by bazelbuild.

the class SkylarkHtml method printHistogramData.

private void printHistogramData(Map<String, LongArrayList> functionDurations, String category) {
    lnPrintf("'%s': {", category);
    down();
    for (Entry<String, LongArrayList> entry : functionDurations.entrySet()) {
        String function = entry.getKey();
        LongArrayList durations = entry.getValue();
        lnPrintf("'%s': google.visualization.arrayToDataTable(", function);
        lnPrint("[['duration']");
        for (int index = 0; index < durations.size(); index++) {
            printf(",[%f]", durations.get(index) / 1000000.);
        }
        lnPrint("], false),");
    }
    up();
    lnPrint("},");
}
Also used : LongArrayList(com.google.devtools.build.lib.util.LongArrayList)

Aggregations

LongArrayList (com.google.devtools.build.lib.util.LongArrayList)2 Task (com.google.devtools.build.lib.profiler.ProfileInfo.Task)1 Collection (java.util.Collection)1