que tienen una función dentro de un bucle dentro de una función. Adquiere la función interna y almacena una gran vector de datos en la memoria (como una variable global ... que estoy usando "R", que es como "S-Plus"). El bucle recorre una larga lista de datos que se adquirirán. La función externa inicia el proceso y pasa a la lista de conjuntos de datos que se adquirirán.Peor peor: ¿efectos secundarios o pasar objetos masivos?
for (dataset in list_of_datasets) {
for (datachunk in dataset) {
<process datachunk>
<store result? as vector? where?>
}
}
programé la función interna para almacenar cada conjunto de datos antes de pasar a la siguiente, por lo que todo el trabajo de la función externa se produce como efectos secundarios en las variables globales ... un gran no-no. ¿Es esto mejor o peor que recolectar y devolver un vector gigante de vectores que almacena recuerdos? ¿Hay un tercer acercamiento superior?
¿Cambiaría la respuesta si estuviera almacenando los vectores de datos en una base de datos en lugar de en la memoria? Idealmente, me gustaría poder finalizar la función (o hacer que falle debido a los tiempos de espera de la red) sin perder toda la información procesada antes de la finalización.
Recomiendo la edición de este post para incluir una breve pseudocódigo así que es más fácil ver lo que está tratando de hacer –
Sí, por favor añadir pseudocódigo , es imposible saber a qué te refieres. Cuando dices "procesar ... y almacenar el resultado", ¿te refieres a "almacenar exactamente la misma cadena", o vector (de ints, hacer referencia a palabras), o qué? ¿Lo está almacenando como un registro en una enorme matriz de datos/matriz/matriz? Danos una idea de la cantidad de filas, columnas, archivos, tamaños de fragmentos y vectores, y tu memoria de trabajo? – smci