Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-05-2007
soypincharata soypincharata is offline
Registrado
 
Registrado: may 2007
Posts: 2
Poder: 0
soypincharata Va por buen camino
Angry funcion CopyFrom SUPER LENTA!

Hola gente!
Estoy haciendo un codigo para resumir transferencia de archivos via TCPIP y me encuentro con un problema trabajando con los archivos, mas precisamente con los stream.
No se porque la funcion CopyFrom resulta TREMENDAMENTE LENTA!!! Ej. con un archivo de 60mb tarda como 30 segundos en pasar esa linea. No creo que sea mi PC es bastante rapida.

Aqui esta el codigo:

fileStream := TFileStream.Create(archivo, fmOpenRead); //abro el archivo
fileStream.Seek(Offset, soFromBeginning); //muevo el puntero

memStream := TMemoryStream.Create; //creo el memorySream para pasar por TCP
memStream.CopyFrom(fileStream, fileStream.Size - Offset); //super lento!

El programa anda bien! cumple su funcion, pero anda muy lento por esa linea.
¿Que puede estar pasando?


Gracias por adelantado!

Última edición por soypincharata fecha: 18-05-2007 a las 05:41:05.
Responder Con Cita
  #2  
Antiguo 18-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
No soy un gurú de estos temas... pero .... 60 mb / 30 seg = 2 megabytes por segundo.

Quitando la desfragmentación que pueda tener el archivo en el disco duro, yo lo veo rapidito, además poco tiene que ver el ordenador, quizás el cuello de botella está en la red ¿LAN, INTERNET?, tráfico, máxima velocidad de la red, etc.

¿has probado con otras formas de envío? para determinar que es lento?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 18-05-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Poder: 22
Mick Va por buen camino
Da la impresion (aunque falta parte del codigo) que asignas los 60Mega enteros a un memory stream, eso son 60 megas leidos de golpe del disco a la memoria, son una burrada de megas para cargar en memoria muchos equipos directamente se colapsaran.
Deberias leer la informacion del archivo en bloques pequeños de unos pocos kilobytes.

Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
variable super general mjjj Varios 5 11-05-2007 07:02:28
Buscador super inteligente.... ArdiIIa La Taberna 9 03-04-2007 16:12:31
Consulta Super Lenta AGAG4 SQL 4 03-04-2006 19:36:50
Impresion lenta, muy lenta... Perio Impresión 2 20-05-2005 13:10:00
Variables Super Globales JANDREGUE Varios 1 18-03-2005 18:03:16


La franja horaria es GMT +2. Ahora son las 12:59:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi