UNPKG

lakutata

Version:

An IoC-based universal application framework.

240 lines (161 loc) 6.1 kB
import * as e from "node:os"; import { m as s, a as i, q as t, b as a } from "../../../vendor/Package.16.mjs"; import { Component as o } from "../../lib/core/Component.mjs"; import "../../../vendor/Package.1.mjs"; import "../../../vendor/Package.3.mjs"; import "../../lib/base/async-constructor/AsyncConstructor.mjs"; import "../../lib/base/async-constructor/Append.mjs"; import "../../lib/helpers/IsPromiseLike.mjs"; import "../../lib/helpers/IsPromise.mjs"; import "util/types"; import "../../decorators/di/Lifetime.mjs"; import "../../lib/base/internal/ObjectLifetime.mjs"; import "../../constants/DIMetadataKey.mjs"; import "../../../vendor/Package.4.mjs"; import "../../../vendor/Package.5.mjs"; import "../../exceptions/di/LifetimeLockedException.mjs"; import "../../lib/base/abstracts/Exception.mjs"; import "../../lib/base/internal/BasicInfo.mjs"; import "../../lib/helpers/As.mjs"; import "../../../vendor/Package.6.mjs"; import "../../../vendor/Package.7.mjs"; import "../../lib/base/internal/ThrowWarning.mjs"; import "../../lib/helpers/Templating.mjs"; import "../../lib/base/internal/CamelCase.mjs"; import "../../lib/helpers/NoCase.mjs"; import "../../exceptions/MethodNotFoundException.mjs"; import "../../lib/ioc/DependencyInjectionContainer.mjs"; import "util"; import "../../lib/ioc/Errors.mjs"; import "../../exceptions/di/DependencyInjectionException.mjs"; import "../../lib/base/internal/ConstructorSymbol.mjs"; import "node:crypto"; import "../../../vendor/Package.2.mjs"; import "../../lib/base/internal/DataValidator.mjs"; import "node:util/types"; import "../../lib/validation/VLD.mjs"; import "../../../vendor/Package.11.mjs"; import "url"; import "../../../vendor/Package.10.mjs"; import "../../exceptions/dto/InvalidValueException.mjs"; import "../../../vendor/Package.9.mjs"; import "../../lib/helpers/IsHtml.mjs"; import "../../lib/helpers/IsXML.mjs"; import "../../constants/DTOMetadataKey.mjs"; import "../../lib/helpers/ObjectConstructor.mjs"; import "../../lib/helpers/ObjectParentConstructors.mjs"; import "../../lib/helpers/ObjectParentConstructor.mjs"; import "../../lib/helpers/ObjectPrototype.mjs"; import "../../lib/ioc/InjectionMode.mjs"; import "../../lib/ioc/Lifetime.mjs"; import "../../lib/ioc/ListModules.mjs"; import "../../../vendor/Package.8.mjs"; import "os"; import "path"; import "stream"; import "events"; import "fs"; import "../../lib/ioc/Utils.mjs"; import "../../lib/ioc/FunctionTokenizer.mjs"; import "../../lib/ioc/LoadModules.mjs"; import "../../lib/ioc/Resolvers.mjs"; import "../../lib/ioc/ParamParser.mjs"; import "../../lib/base/internal/ObjectWeakRefs.mjs"; import "../../lib/base/internal/ConfigurableRecordsInjection.mjs"; import "../../lib/base/internal/ObjectConfiguration.mjs"; import "../../lib/base/internal/ObjectInjection.mjs"; import "../../lib/base/internal/ObjectContainer.mjs"; import "../../lib/helpers/DevNull.mjs"; import "../../decorators/dto/Expect.mjs"; import "../../decorators/dto/IndexSignature.mjs"; import "../../decorators/dto/Accept.mjs"; import "../../lib/base/internal/MethodValidation.mjs"; import "../../exceptions/dto/InvalidMethodAcceptException.mjs"; import "../../exceptions/dto/InvalidMethodReturnException.mjs"; import "../../lib/helpers/IsEmptyObject.mjs"; import "../../lib/base/EventEmitter.mjs"; import "../../lib/core/Provider.mjs"; class MemoryMonitor extends o { #e=2; #s=1e3; #i=65535; #t=e.totalmem(); #a; #o=[]; #r=0; #p=0; #m=0; #n=0; #l=0; #h=0; get statistics() { const e = this.#o[this.#o.length - 1]; const o = this.#o.map((e => e.rss)); const r = s(o); const p = i(o); if (!this.#r) this.#r = r; this.#r = this.#r > r ? r : this.#r; if (!this.#p) this.#p = p; this.#p = this.#p < p ? p : this.#p; const m = this.#o.map((e => e.heapUsed)); const n = s(m); const l = i(m); if (!this.#m) this.#m = n; this.#m = this.#m > n ? n : this.#m; if (!this.#n) this.#n = l; this.#n = this.#n < l ? l : this.#n; const h = this.#o.map((e => e.external)); const c = s(h); const d = i(h); if (!this.#l) this.#l = c; this.#l = this.#l > c ? c : this.#l; if (!this.#h) this.#h = d; this.#h = this.#h < d ? d : this.#h; return { physicalTotal: this.#t, physicalUsed: e.rss, physicalUsage: parseFloat((e.rss / this.#t * 100).toFixed(this.#e)), physicalUsedMin: this.#r, physicalUsedMax: this.#p, physicalUsedAvg: parseFloat(a(o).toFixed(this.#e)), physicalUsedP50: t(o, .5), physicalUsedP90: t(o, .9), physicalUsedP95: t(o, .95), physicalUsedP99: t(o, .99), heapTotal: e.heapTotal, heapUsed: e.heapUsed, heapUsage: parseFloat((e.heapUsed / e.heapTotal * 100).toFixed(this.#e)), heapUsedMin: this.#m, heapUsedMax: this.#n, heapUsedAvg: parseFloat(a(m).toFixed(this.#e)), heapUsedP50: t(m, .5), heapUsedP90: t(m, .9), heapUsedP95: t(m, .95), heapUsedP99: t(m, .99), externalUsed: e.external, externalUsedMin: this.#l, externalUsedMax: this.#h, externalUsedAvg: parseFloat(a(h).toFixed(this.#e)), externalUsedP50: t(h, .5), externalUsedP90: t(h, .9), externalUsedP95: t(h, .95), externalUsedP99: t(h, .99) }; } sampleMemoryUsage() { this.#o.push(process.memoryUsage()); if (this.#o.length > this.#i) this.#o.shift(); } async init() { this.sampleMemoryUsage(); this.#a = setInterval((() => this.sampleMemoryUsage()), this.#s); } async destroy() { clearInterval(this.#a); } reset() { this.#o = []; this.sampleMemoryUsage(); } } export { MemoryMonitor };