rendimiento al editar archivos binarios

[email protected] (Manolet Gmail)
Newsgroups php.general.es
Message-ID <[email protected]>
Saludos, actualmente tengo una aplicacion que edita un archivo binario
cambiando 16 bytes que estan en la misma posicion siempre (640 bytes despues
del inicio del archivo), sin embargo lo que estoy haciendo es leer TODO el
archivo para luego escribirlo usando la funcion pack, lo que siento que es
bastante torpe y desconsiderado con la memoria ram (considerando que
necesito hacer esto cientos de veces al instante). Este es el código que
estoy utilizando.

        if ( !file_exists($cache) || @$this->params['named']['cache'] ===
0){
            $handle     = fopen($filename, "r+b");
            $init         = fread($handle, 640);
                      fread($handle, 16); //esto debe ser exactamente igual
a lo que se reemplaza.
            $full        = fread($handle, filesize($filename)); // leemos el
resto para escribirlo despues
            fclose($handle);

            //las concateno para que sea human readable
            $contents = pack('a640'.'A16'.'a*', $init, $this->params['id'],
$full);

            $handle = fopen($cache, "w+b");
            fwrite($handle, $contents);
            fclose($handle);
            FireCake::fb(" GENERADO (".@$this->params['named']['cache'].")
$referer ($cache)");
        }

Alguna idea de como hacerlo "mas eficiente"?

Arnold
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.