UNPKG

@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
"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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