Título: Problema de memoria y CPU al transferir archivos Publicado por: Isótopo en 9 Noviembre 2009, 21:54 pm Hola. Estoy codeando una aplicacion cliente-servidor y a la hora de subir archivos la memoria que usa el cliente (el que lo manda) llega a 200 megas y CPU 100%. El archivo se manda pero se colapsa y no me muestra ni las barras de progreso hasta que termina. Aquí tengo el code:
Código: 'Declaraciones No se cual es el problema que hace que el código funcione pero que haga que se colapse. Aver si encontramos la solucion. Muchas gracias. Título: Re: Problema de memoria y CPU al transferir archivos Publicado por: BlackZeroX en 10 Noviembre 2009, 02:01 am Por favor usa Geshi y da tabulaciones/indecta tu codigo que no se entiende a simple vista nada ademas de verse Mal hecho sin estarlo o tal vez si....
es obvio lo que haces es cargar a lo bruto un archivo en la memoria Size = LOF(1) ReDim arrData(Size - 1) esa variable toma en un peso identico al que ocupa el archivo dado en el hd, lo que puedes hacer es cortar y mandar por tramos dicho archivo ( es decir simular un corte de un archivo dependiendo los bytes deseados en memoria ) y posteriormente mandar ese tramo, al termino cargar otro tramo/pedazo y mandarlo, ( yo habitualmente solo cargo de una rchivo de 1 giga por decir algo solo 255 kbytes a 1 mega en una vaiable y asi los mando de esta forma la memoria no se ve tan incrementada mas de lo que he dicho ) Edito usa una regla de 3 para calcular el proceso en el Progressbar o de lo contrario le crearas un overflow P.d.: Apoco no te da errores el no cerrar los procesos: private sub upload_Click() y csocketplus_DataArrival Dulces Lunas!¡. Título: Re: Problema de memoria y CPU al transferir archivos Publicado por: danicasasm en 10 Noviembre 2009, 05:06 am prog_sub.Min yprog_sub.Max sólo deberian modificarse al principio y al final, no cada vez que madifiques el valor.
Para ver la barra de progreso deberias poner DoEvents cada vez que actualizas su valor, si el ordenador va muy saturado no actualiza la barra con suficiente frecuencia. Doevens permite al windows atender otras tareas a parte del programa, por lo que es muy útil en tareas largas o dentro de bucles. Título: Re: Problema de memoria y CPU al transferir archivos Publicado por: BlackZeroX en 10 Noviembre 2009, 06:23 am esto es algo curioso y a la vez tonto, pero yo antes igual lo hacia asi que bueno:
prog_sub.value = prog_sub.value + bytesSent prog_sub.Value = bytes no tiene caso... dulces lunas!¡. Título: Re: Problema de memoria y CPU al transferir archivos Publicado por: Isótopo en 10 Noviembre 2009, 22:43 pm Si...estoy empezando y tengo muchos fallos de subnormal pero esque ademas el codigo no lo copie tal cual lo tengo sino que le puse algunas cosas que no venian a cuento para intentar que se entendiera. De todas formas creo que ya he encontrado la solucion en el source del file manager de EON... mil gracias a él y a vosotros por responderme, me habeis sido de gran ayuda si tengo alguna duda que no pueda resolver pregunto. Gracias.
|