Básicamente, tengo una aplicación web React que estoy creando para cargar un gran conjunto de datos en una base de datos. A partir de ahora, estoy usando un archivo de prueba que solo tiene alrededor de 3000 líneas y el tiempo total para cargar todos los datos del archivo es de alrededor de 4 minutos. Necesito acelerar esto significativamente, pero no estoy totalmente seguro de cómo. Como referencia, el tamaño real de los archivos que planeo cargar será de alrededor de 100 000 líneas. También otro problema que estoy bastante seguro de que puedo solucionar con un poco de retoques es que empiezo a quedarme sin recursos netos alrededor de 80k de solicitud, por lo que si hay alguna sugerencia para modificar mi función delayQue para evitar eso, también sería apreciada.
Tamaño del archivo de prueba: 76kb
Tamaño real del archivo: 5mb
punto final
const stepData = async() =>{ const body = {a,b,c,d,e,f} assignToBody(body) try{ const response = await fetch('http://localhost:5000/stepdata',{ method:"POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify(body) })}catch(err){ console.log(err.message) } }Acelerador (nota: asignarVals solo asigna los valores al cuerpo en mi punto final)
const delayQue = () =>{ assignVals(row) row++ if(row % 500 == 0){ setTimeout(delayQue,2000) }else{ setTimeout(delayQue,100) } }también otra cosa en caso de que sea importante que cada línea contenga entre 6 y 20 puntos de datos. Reduje mi número de llamadas asignando los valores a un objeto y pasando el objeto. Cualquier ayuda para acelerar esto será muy apreciada.
Editar: Para aclarar el problema, simplemente tengo que hacer una solicitud de 100k o más y estoy tratando de encontrar una manera de acelerar mi solicitud o al menos administrarla mejor en lugar de usar el tiempo de espera y las pruebas y capturas integradas.
Actualización: estoy bastante seguro de que el problema es una fuga de recursos en mi terminal
En cuanto a la cantidad de datos transferidos a través de la red:
El tamaño del archivo se puede reducir de manera muy eficiente utilizando un algoritmo de compresión como gzip o brotli. Dependiendo del servidor web que esté utilizando, primero deberá activar la compresión para que se pueda utilizar.
Aquí un ejemplo de cómo usar con express: https://expressjs.com/en/resources/middleware/compression.html
Dependiendo de los datos que desee transferir, puede reducir significativamente el tamaño del archivo. Los archivos de texto repetitivos se comprimen mejor. Los archivos ya comprimidos, como las imágenes jpeg, no se comprimen en absoluto.