Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Crear un Disco Duro en Ram con delphi (https://www.clubdelphi.com/foros/showthread.php?t=72463)

kurono 20-02-2011 22:34:44

Crear un Disco Duro en Ram con delphi
 
hola amigos les cuento mi problema e creado una aplicacion igual que el programa hacha todo funciona perfectamente pero e notado que cuando la aplicacion termina la PC se pone lenta y me imagino yo que sera porque la aplicacion a dividir los archivo usa constantemente el disco duro y ahi mi pregunta Como crear un disco duro en memoria para que el programa haga sus operaciones en la memoria en ves del disco duro fisico.

se que una solucion es usar el programa Ram Disk y copiar los archivo que se van a dividir en la unidad creada por este pero el programa espero distribuirlo entre mis amigo y no quisiera que ellos tuviese la molestia de tener que instalar ram disk para usar mi programa por eso quiero que la aplicacion que e hecho lo haga esto fuera de la vista del usuario

Casimiro Noteví 20-02-2011 23:51:32

¿Has buscado en sourceforge y sitios de ese tipo?, puede que encuentres alguno.
De todas formas es un proceso muy complejo hacer lo que quieres.

kurono 21-02-2011 01:48:26

tengo el programa ram disk pero como explique anteriolmente pienso distribuir la aplicacion entre mis amigos y es algo tedioso tener que instalar un programa para que funcione otro .

no existira una forma de copiar archivo del disco duro a la memoria Ram

Neftali [Germán.Estévez] 21-02-2011 10:48:15

Lo primero decir que lo que pretendes, supongo que se puede crear utilizando Delphi, pero la tarea no es ni mucho menos sencilla. Tampoco acabo de ver claro el razonamiento que sigues para acabar queriendo desarrollar una aplicación para crear discos RAM.

Me explico:

(1) "...pero e notado que cuando la aplicacion termina la PC se pone lenta"
Si realmente la aplicación termina y termina correctamente, no le veo mucho sentido a que a partir de ese momento la máquina vaya más lenta. :confused:
Una vez la aplicación termina, la memoria se libera.
Una vez acaba la aplicación la actividad en disco debería terminar, por lo tanto lo veo la relación.
Otra cosa será que la aplicación no termine correctamente, con lo que la solución en ese caso no sería crear una nueva aplixcación, sino corregir la existente.
Creo que antes de buscar nuevas soluciones, habría qyue detectar cual es el problema.

(2) "Como crear un disco duro en memoria para que el programa haga sus operaciones en la memoria en ves del disco duro fisico"
Esta tampoco acabo de entenderla.
Si quieres que tu programa realice operaciones en memoria, no será más fácil arreglar tu programa para hacer las operaciones en RAM en lugar de en disco, que no crear un Driver para generar un disco virtual en memoria RAM y después instalarlo para que tu programa lo utilice.

kurono 21-02-2011 22:52:39

mi aplicacion termina correctamente sin ningun error pero de verdad el disco se pone lento no se si es porque el disco es viejo ya que gira a unos 4500rpm
y en cuanto a arreglar mi aplicacion para que realize las operaciones en memoria es mi idea principal de ahi es la pregunta de crear un disco ram ,pues bien quisiera ver un ejmplo de como un programa realiza una tarea en memoria ya que no tengo la menor idea de como hacerlo

ContraVeneno 22-02-2011 01:40:38

Opino igual que Neftalí... lo primero que debes hacer es identificar "porque" se hace lenta la máquina...

me parece mucho más sencillo atacar un problema concreto directamente, que complicartela demasiado al querer hacer todo "en memoria"...

Neftali [Germán.Estévez] 22-02-2011 10:53:30

Cita:

Empezado por kurono (Mensaje 391568)
mi aplicacion termina correctamente sin ningun error pero de verdad el disco se pone lento no se si es porque el disco es viejo ya que gira a unos 4500rpm

Tiene que haber una causa para esa ralentización; Tal vez relacionada con la memoria RAM y eso provoca que a posteriori se realice más acceso a disco (swap) y te de la sensación de que va más despacio.

Cita:

Empezado por kurono (Mensaje 391568)
y en cuanto a arreglar mi aplicacion para que realize las operaciones en memoria es mi idea principal de ahi es la pregunta de crear un disco ram ,pues bien quisiera ver un ejmplo de como un programa realiza una tarea en memoria ya que no tengo la menor idea de como hacerlo

El problema que yo le veo es que aunque hablamos de "trabajar en RAM", a priori no están muy relacionados el que tu programa haga segun qué cosas en memoria, con que crees un Driver para trabajar como un disco virtual.

kurono 22-02-2011 19:38:39

probare mi programa en otra pc ya que solo lo e ejecutado en la mia vere si me da el mismo problema

Neftali [Germán.Estévez] 23-02-2011 09:16:37

Habría que saber cómo está realizando tu programa las operaciones para poder ver si esas mismas se pueden realizar sobre RAM, en lugar de sobre disco (que me imaguino que es como las haces ahora).

kurono 24-02-2011 03:27:06

creo que si se podra hacer en la Ram el unico limitante seria el tamano de la misma ram ya que si por ejemplo quiero dividir un archivo de 700mb por lo menos la pc deberia tener un 1gb de memoria

Casimiro Noteví 24-02-2011 12:12:30

Creo que no es el camino, amigo, teniendo en cuenta que no conocemos en detalle el problema que tienes, el programa que usas, qué hace, etc. pero te pongo un ejemplo "tonto":
> Señor mecánico, mi coche no corre, cada vez va más lento.
>> No se preocupe, le ponemos las ruedas de un fórmula 1, esos sí que corren.

Hay que saber por qué va lento, lo mismo es una carrito de helados y tiene que ir lento.
Y hay que buscar una solución para solucionar el problema.
Pero no podemos ponerle un turboreactor al carrito de helados... ni a un utilitario cualquiera.

rgstuamigo 24-02-2011 16:46:55

Bueno... aquí puedes ver un ejemplo de como implementar un "troceador de archivos" idéntico al programa "Hacha" quizás te pueda ayudar a mejorar tu código..;)
Saludos...:)

kurono 24-02-2011 19:27:43

amigo rgstuamigo eso son exactamente los procedimiento que tengo en mi aplicacion para realizar la operaciones de partir y unir ,analizare bien el codigo y vere si encuentro el problema luego les cuento

rgstuamigo 26-02-2011 17:39:02

Bueno...:rolleyes: me parece algo contradictorio lo que dices, pues en tu primer post mencionaste que tu aplicacion usaba constantemente el disco duro,:rolleyes: pero si tu código es el mismo que el "link" que te he puesto anteriormente...pues no le veo que usase demasiado el disco duro mas de lo normal...;) En todo caso cuando se ésta usando un Buffer de memoria con un tamaño éspecífico, al llenarse ese buffer, según :rolleyes: tengo entendido que, automáticamente windows guarda los datos a Disco para seguir usando dicho Buffer.;)
POSTDATA: Cuidado con decirles a tus amigos que el código fuente del programa es de autoría tuya ¿no?:D:D
Saludos...:)


La franja horaria es GMT +2. Ahora son las 03:56:30.

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