polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
82 lines (75 loc) • 2.35 kB
text/typescript
import {BaseNodeType} from '../../engine/nodes/_Base';
export interface PerformancePrintObject {
fullPath: string;
cooks_count: number;
total_time: number;
total_cook_time: number;
cook_time_per_iteration: number;
// cook_time_total_with_inputs: number;
// cook_time_total_with_inputs_per_iteration: number;
inputs_time_per_iteration: number;
params_time_per_iteration: number;
}
import {NodePerformanceData} from '../../engine/nodes/utils/cook/PerformanceController';
export class PerformanceNode {
_cooks_count: number = 0;
_total_cook_time: number = 0;
_total_inputs_time: number = 0;
_total_params_time: number = 0;
constructor(private _node: BaseNodeType) {}
update_cook_data(performance_data: NodePerformanceData): void {
this._cooks_count += 1;
this._total_cook_time += performance_data.cook_time;
this._total_inputs_time += performance_data.inputs_time;
this._total_params_time += performance_data.params_time;
}
total_time(): number {
return this._total_cook_time + this._total_inputs_time + this._total_params_time;
}
total_cook_time(): number {
return this._total_cook_time;
}
cook_time_per_iteration(): number {
if (this._cooks_count > 0) {
return this._total_cook_time / this._cooks_count;
} else {
return 0;
}
}
total_inputs_time(): number {
return this._total_inputs_time;
}
inputs_time_per_iteration(): number {
if (this._cooks_count > 0) {
return this._total_inputs_time / this._cooks_count;
} else {
return 0;
}
}
total_params_time2(): number {
return this._total_params_time;
}
params_time_per_iteration2(): number {
if (this._cooks_count > 0) {
return this._total_params_time / this._cooks_count;
} else {
return 0;
}
}
cooks_count(): number {
return this._cooks_count;
}
print_object(): PerformancePrintObject {
return {
fullPath: this._node.fullPath(),
cooks_count: this.cooks_count(),
total_time: this.total_time(),
total_cook_time: this.total_cook_time(),
cook_time_per_iteration: this.cook_time_per_iteration(),
// cook_time_total_with_inputs: this.cook_time_total_with_inputs,
// cook_time_total_with_inputs_per_iteration: this.cook_time_total_with_inputs_per_iteration,
inputs_time_per_iteration: this.inputs_time_per_iteration(),
params_time_per_iteration: this.params_time_per_iteration2(),
};
}
}