Holaaa!!
Bueno, hace bastante que no posteo, y al fin me decidi a ponerme con C++ XD...
Lo que estoy haciendo es un programa que implemente un algoritmo de encripción, y para eso necesita cargar el archivo en la heap, para lo que escribi esto:
cout << "OK!\n* Getting file size...";
pbuf=unFile.rdbuf();
Fsize=pbuf->pubseekoff (0,ios::end,ios::in);
pbuf->pubseekpos (0,ios::in);
pszDump = new char[Fsize];
cout << "OK!\n* Loading file (May take a while)...";
if(pszDump)
{
unFile.read(pszDump, Fsize);
cout << "OK!\n";
}
"pbuf" es el puntero al buffer del stream (lo saque de una pagina, es una buena manera de conseguir el tamaño del archivo)
"Fsize" es obviamente un long que contiene el tamaño del archivo.
"pszDump" es un puntero al archivo cargado en memoria.
"unFile" es el stream del archivo abierto.
Esto carga el archivo en mi compu, a casi 3 Mb/s en la memoria, una velocidad bastaaante chota.
Para que tengan un punto de referencia, estas son mis specs:
- Amd sempron 2500+ @ 1400 Mhz.
- 1Gb de Ram DDR - 128 Mb de video shared.
- Disco 80Gb Sata.
Hay alguna manera de agilizar el proceso de cargado en la heap?
Hay un lenguaje, Linoleum, que te dejaba pasar ciertos valores por los registros de la CPU, que hacia que todo sea bastante mas rapido, pero creo q no sirve para esto.
En definitiva, hay algo que se pueda hacer para mejorar el cargado de archivos??
Un abrazo, mucha suerte...