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

131
Visualizações
Sobrecarga de memoria de carga de datos de Firestore

La aplicación My React Native carga algunos documentos de Firestore y los almacena localmente en AsyncStorage. Dependiendo del uso de la aplicación por parte del usuario, esta colección de documentos puede llegar a ser bastante grande. Puede suceder que los documentos de un usuario específico crezcan a decenas de megabytes, juntos (por ejemplo, 500 documentos de aproximadamente 100kB cada uno).

(Puede ser un antipatrón usar Firestore para documentos que son tan grandes. Sin embargo, la mayoría de los casos de uso se ocupan de una pequeña cantidad de documentos pequeños. Aún así, debemos preparar la aplicación para usuarios avanzados)

La aplicación utiliza AsyncStorage como caché local de los datos de los documentos. Si los datos ya están allí, no se carga nada desde Firestore (al menos inicialmente). De lo contrario, los datos se cargan desde Firestore y se almacenan en AsyncStorage (no podemos usar el caché de Firestore porque transformamos los datos al cargarlos y necesitamos un caché determinista).

Lo que notamos es que, al cargar los datos de Firestore, terminamos con un gran consumo de memoria, incluso después de que hubo suficiente tiempo para que Garbage Collection recopilara todo. Al cargar los datos desde AsyncStorage, el consumo de memoria es mucho menor, aunque tengamos los mismos datos en memoria.

Para asegurarme de que esta memoria aún se conserve (es decir, que mi observación no dependa del tiempo de recolección de basura), cargué alrededor de un Gigabyte de datos de Firestore en un dispositivo. Hubo varias advertencias de memoria y, a juzgar por el consumo de memoria observado, GC estaba trabajando arduamente para recopilar la mayor cantidad posible, pero el consumo de memoria seguía siendo varios Gigabytes más alto que cuando los datos se cargaron desde AsyncStorage.

Parece que el cliente de Firestore tiene

  • una gran sobrecarga de memoria al cargar documentos desde Firestore, y esta sobrecarga de memoria se filtra y GC no la recopila
  • o algún mecanismo de almacenamiento en caché que deja los resultados de la consulta en la memoria

¿He pasado algo por alto? ¿Hay algún caché en memoria habilitado de forma predeterminada? ¿Firestore guarda una copia de los datos en la memoria para detectar cambios en los documentos?

about 4 years ago · Santiago Gelvez
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