Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

213
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda