Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

208
Vistas
El tamaño total del almacenamiento dinámico JS aumenta aproximadamente 120 MB al realizar una consulta mongodb

No entiendo por qué el tamaño del montón sigue aumentando cuando coloco una consulta de base de datos mongodb dentro de una función en mi controlador.

aquí está mi enrutador

 import { Router } from "express"; import profileController from '../controllers/profileController'; class userRouter { public router: Router; constructor() { this.getRoutes(); } getRoutes() { this.router.get("/profile-list", profileController.getProfileList); } } export default new userRouter().router;

aquí está mi controlador

 import Profile from "../models/profile"; export class profileController { static async getProfileList(req: any, res: any, next: any) { try { const getList = await Profile.find(); res.status(200).json({ status: 200, message: "Success", data: getList, }); } catch (error) { console.log(error); } } }

aquí está mi modelo

 import * as mongoose from "mongoose"; import { model } from "mongoose"; const profileSchema = new mongoose.Schema({ userId: { type: String, required: true }, name: { type: String, default: ""}, }, { timestamps: true } ); export default model("profile", profileSchema);

Tamaño total del almacenamiento dinámico sin la función getProfileList => 135 MB

Tamaño total del almacenamiento dinámico después de colocar la función getProfileList => 255 MB (específicamente después de colocar const getList = await Profile.find(); )

Aquí inspeccioné la memoria y encontré esto en comparación:

TypeObject aumentó de 3 MB a 99 MB (matriz) aumentó de 26 MB a 88 MB

Cualquiera, por favor, ayúdame a entender por qué sucede. o es habitual en tal caso.

Captura de pantalla de la comparativa antes y después

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema es que no está usando ningún límite, por lo que usar await Profile.find(); devolverá todos los documentos en la base de datos, por lo que cuando realice una llamada a su controlador, devolverá todos los datos de la base de datos que pueden aumentar mucho el tamaño del montón.

Puede usar limit y skip para implementar la paginación para su punto final.

También debe considerar el hecho de que la biblioteca Mongoose debe cargarse en su memoria, las conexiones a la base de datos, etc., que también requieren RAM.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda