@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
88 lines • 6.73 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CPUNode = exports.CPUNodeType = void 0;
// Types
const types_1 = require("../../types");
var CPUNodeType;
(function (CPUNodeType) {
CPUNodeType["extern"] = "extern";
CPUNodeType["intern"] = "intern";
CPUNodeType["langInternal"] = "lang_internal";
})(CPUNodeType || (exports.CPUNodeType = CPUNodeType = {}));
class CPUNode {
constructor(index, cpuModel, node) {
this._index = index;
this.cpuModel = cpuModel;
this.cpuNode = node;
}
get sourceLocation() {
return this.cpuModel.CPUProfileSourceLocations[this.cpuNode.locationId];
}
get profilerHits() {
return this.cpuModel.profilerHitsPerNode[this.index];
}
get selfCPUEnergyConsumption() {
return this.cpuModel.energyValuesPerNode
? this.cpuModel.energyValuesPerNode[this.index][types_1.EnergyValuesType.CPU]
: 0;
}
get selfRAMEnergyConsumption() {
return this.cpuModel.energyValuesPerNode
? this.cpuModel.energyValuesPerNode[this.index][types_1.EnergyValuesType.RAM]
: 0;
}
get aggregatedEnergyConsumption() {
if (this._aggregatedEnergyConsumption !== undefined) {
return this._aggregatedEnergyConsumption;
}
let totalCPU = this.selfCPUEnergyConsumption;
let totalRAM = this.selfRAMEnergyConsumption;
for (const child of this.children()) {
totalCPU = (totalCPU +
child.aggregatedEnergyConsumption[types_1.EnergyValuesType.CPU]);
totalRAM = (totalRAM +
child.aggregatedEnergyConsumption[types_1.EnergyValuesType.RAM]);
}
return (this._aggregatedEnergyConsumption = [totalCPU, totalRAM]);
}
get cpuTime() {
return {
selfCPUTime: this.cpuNode.selfTime,
aggregatedCPUTime: this.cpuNode.aggregateTime
};
}
get cpuEnergyConsumption() {
return {
selfCPUEnergyConsumption: this.selfCPUEnergyConsumption,
aggregatedCPUEnergyConsumption: this.aggregatedEnergyConsumption[types_1.EnergyValuesType.CPU]
};
}
get ramEnergyConsumption() {
return {
selfRAMEnergyConsumption: this.selfRAMEnergyConsumption,
aggregatedRAMEnergyConsumption: this.aggregatedEnergyConsumption[types_1.EnergyValuesType.RAM]
};
}
// IMPORTANT to change when new measurement type gets added
get sensorValues() {
return Object.assign(Object.assign(Object.assign({}, this.cpuTime), this.cpuEnergyConsumption), this.ramEnergyConsumption);
}
get index() {
return this._index;
}
get childrenCount() {
return this.cpuNode.children.length;
}
*children() {
for (const childId of this.cpuNode.children) {
yield this.cpuModel.getNode(childId);
}
}
*reversedChildren() {
for (let i = this.cpuNode.children.length - 1; i >= 0; i--) {
yield this.cpuModel.getNode(this.cpuNode.children[i]);
}
}
}
exports.CPUNode = CPUNode;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1BVTm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9oZWxwZXIvQ1BVUHJvZmlsZS9DUFVOb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFFBQVE7QUFDUix1Q0FRb0I7QUFFcEIsSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3RCLGdDQUFpQixDQUFBO0lBQ2pCLGdDQUFpQixDQUFBO0lBQ2pCLDZDQUE4QixDQUFBO0FBQy9CLENBQUMsRUFKVyxXQUFXLDJCQUFYLFdBQVcsUUFJdEI7QUFFRCxNQUFhLE9BQU87SUFVbkIsWUFBWSxLQUFhLEVBQUUsUUFBa0IsRUFBRSxJQUFtQjtRQUNqRSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQTtRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ3hFLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JELENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CO1lBQ3ZDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyx3QkFBZ0IsQ0FBQyxHQUFHLENBQUM7WUFDckUsQ0FBQyxDQUFFLENBQXVCLENBQUE7SUFDNUIsQ0FBQztJQUVELElBQUksd0JBQXdCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7WUFDdkMsQ0FB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