Problema con fgetc
Hola, soy yo de nuevo. Probé la función fread y fgets pero al final me funcionó con fgetc.
El problema es el tiempo que tarda. Es enorme y no lo entiendo porque el bucle no es nada del otro mundo:
for($i=0;$i<5300;$i++){
$codigo[] = fgetc($enlace);
}
He probado ha hacer un bucle mucho más grande en C:
for(i=0;i<5000;i++)
for (j=0;j<5000;j++)
a++;
Este bucle realiza 25millones de iteraciones y tarda 0.062 segundos en realizarse.
Es un bucle 5000 veces más grande! ¿Cómo puede tardar tan poco y en cambio el otro, en php, tardar tanto?
Para intentar reducir el tiempo me gustaría saber cómo avanzar el puntero manualmente. El bucle for que utilizo es para llevar el puntero hasta la posición 5261, que es a partir de ahí donde está el enlace que quiero guardar. Si pudiera iniciar el puntero en esa posición, el bucle para almacenar el enlace tendría como mucho 30 iteraciones y no 5000, lo que reduciría bastante el tiempo.
¿Se puede iniciar el puntero en la posición 5261?
El problema es el tiempo que tarda. Es enorme y no lo entiendo porque el bucle no es nada del otro mundo:
for($i=0;$i<5300;$i++){
$codigo[] = fgetc($enlace);
}
He probado ha hacer un bucle mucho más grande en C:
for(i=0;i<5000;i++)
for (j=0;j<5000;j++)
a++;
Este bucle realiza 25millones de iteraciones y tarda 0.062 segundos en realizarse.
Es un bucle 5000 veces más grande! ¿Cómo puede tardar tan poco y en cambio el otro, en php, tardar tanto?
Para intentar reducir el tiempo me gustaría saber cómo avanzar el puntero manualmente. El bucle for que utilizo es para llevar el puntero hasta la posición 5261, que es a partir de ahí donde está el enlace que quiero guardar. Si pudiera iniciar el puntero en esa posición, el bucle para almacenar el enlace tendría como mucho 30 iteraciones y no 5000, lo que reduciría bastante el tiempo.
¿Se puede iniciar el puntero en la posición 5261?
1 Respuesta
Respuesta de davidcortesb
1