![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
Lo que hize fue fragmentar el contenido de un ListBox donde a partir de un directorio recojo la ruta de todas las imágenes que componen un estudio y le asigné a cada fragmento un thread, puse a correr los threads simultáneamente y sincronizados esperando que cargara el directorio completo, pero la CnsDMTable sólo acepta la carga desde uno de los threads, por lo que sólo había cargado un octavo de las imágenes y por eso generó las violaciones de acceso a memoria. Otra prueba fallida. Aparentemente la CnsDMTable tiene su propio sistema de organizar la información que recibe y lo hace en un sólo paso, ya que si le aplicas un ProgressBar y le asignas la propiedad StepIt ejecuta un sólo step. No sé si la idea te sirva y con tu nivel de conocimiento puedas mejorarla, ya que yo utilicé componentes para crear los threads (BMThreads de Mitov Software), porque no sé implementarlos por código. Quizás otra opción es cargar las diferentes series en distintas CnsDMTables, lo que aceleraría la carga de exámenes con múltiples series, pero igual demoraría en cargar las series con muchas imágenes. Te envié un mail desde el foro, pero no me permite incluir archivos adjuntos. Debes responderlo para poder enviarte el exe. Saludos |
|
#2
|
||||
|
||||
|
Solucionado
Después de muchos intentos y pruebas fallidas descubrí que la CnsDMTable carga las imágenes usando threads sobre un MemoryStream, mediante los parámetros AKeepStream y ALoadFrameinThread, es decir el componente, según entiendo viene desarrollado para cargar las imágenes a la máxima velocidad que permita el PC.
Utilizando el siguiente código logré acelerar la carga de las imágenes a escasos segundos en series grandes de más de 1000 imágenes:
y para llamarlo:
y de este modo ya no tengo violaciones de acceso a memoria y el programa corre sin problemas. FindFile es un componente que permite obtener la ruta de todos los archivos existentes en un directorio, incluidos los subdirectorios y cargarlos como strings en un ListBox. Para 1000 archivos tarda 180 msegs. Espero que a alguien más le pueda servir. Saludos y gracias por sus aportes |
|
#3
|
||||
|
||||
|
Cronometré los tiempos y se demora aproximadamente 3.8 msegs. en cargar cada imagen, permitiendo que un estudio de 1000 imágenes se encuentre disponible para visualización y proceso en 3.8 segundos. Un examen de cerebro habitualmente posee 350 a 400 imágenes y lo carga en 1 - 1.3 segundos.
Esto con un procesador Intel Xeon de 3.2 Ghz. utilizando sólo 1 de los núcleos, con un consumo de memoria menor de 300 Mb. Estos resultados me parecen excelentes y satisfacen plenamente mi necesidad. salu2 |
|
#4
|
|||
|
|||
|
En hora buena Radenf, esos valores son excelentes. Creo que tienes un pequeño error en el código, ya que la llamada de las CnsDMTable1 deberia ser:
Un abrazo. |
|
#5
|
||||
|
||||
|
Cita:
Al parecer esos valores los toma por defecto, porque sin ellos no daba problemas de compilación y al agregarlos no cambió ni la velocidad de carga ni el porcentaje de uso del procesador. En todo caso me parece mejor incluirlos. Saludos |
|
#6
|
|||
|
|||
|
Hola Radenf de nuevo,
acabo de probar el codigo y no hay diferencia entre usarlos o no... En principio el procedimiento tienes esos parámetros como opcionales con valor a False (lo puedes ver cuando te sale el hint del metodo en el IDE). De verdad, estos componentes estan llenos de "sorpresas" y lo de jiawen no tiene nombre. Voy a hacer una prueba a ponerlos a false a ver si hay difrencia. Un abrazo. |
|
#7
|
||||
|
||||
|
Cita:
![]() .................
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| WebBrowser bloqueo de carga de imagenes | titomigue | Internet | 1 | 17-08-2010 09:53:34 |
| Acelerar apertura de consulta desde Delphi contra Access | Sergiov | SQL | 4 | 13-04-2007 10:42:59 |
| Acelerar carga de Delphi | mamcx | Noticias | 4 | 13-09-2006 00:51:52 |
| Transparencias y carga de imágenes | david.rguez | Gráficos | 1 | 04-09-2006 18:01:40 |
| carga de imagenes en timage | jvalles | Gráficos | 2 | 15-12-2005 19:06:57 |
|