Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!