Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

duda con clase y su ejecucion

Estas en el tema de duda con clase y su ejecucion en el foro de Frameworks y PHP orientado a objetos en Foros del Web. buena tengo un codigo que realizo otra persona en php orientado a objetos. tengo un scripts que llama un archivo class y ese llama a ...
  #1 (permalink)  
Antiguo 08/10/2009, 08:36
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
duda con clase y su ejecucion

buena tengo un codigo que realizo otra persona en php orientado a objetos.

tengo un scripts que llama un archivo class y ese llama a otro, el punto es que cuando llama a esas clases su ejecucion se demora mas de lo normal, asi que me hice una pregunta cuando cargo una clase cargo todo el archivo o solo a la funcion que invoca la clase, que si fuera la primera cargaria un archivo gigantesco.

tengo esa duda ya que yo personalmente he trabajado con el zendframework, pero nunca me habia topado con codigo de clases hecho a mano
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #2 (permalink)  
Antiguo 08/10/2009, 10:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con clase y su ejecucion

Cuando tu incluyes un archivo con una clase esta se incluye toda pero NO se ejecuta, solamente se parsea y compila, luego ya se ejecuta la función que hayas mandado llamar.

Saludos.
  #3 (permalink)  
Antiguo 08/10/2009, 12:14
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: duda con clase y su ejecucion

Cita:
Iniciado por FNX_NET Ver Mensaje
buena tengo un codigo que realizo otra persona en php orientado a objetos.

tengo un scripts que llama un archivo class y ese llama a otro, el punto es que cuando llama a esas clases su ejecucion se demora mas de lo normal, asi que me hice una pregunta cuando cargo una clase cargo todo el archivo o solo a la funcion que invoca la clase, que si fuera la primera cargaria un archivo gigantesco.

tengo esa duda ya que yo personalmente he trabajado con el zendframework, pero nunca me habia topado con codigo de clases hecho a mano
Que tal FNX_NET,

Es muy poco probable, por como funciona PHP, que una clase sean "tan grande", que demore su ejecución, la demora la debes buscar en la lógica, sleeps, acceso a base de datos, etc.

Saludos!
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #4 (permalink)  
Antiguo 08/10/2009, 12:35
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: duda con clase y su ejecucion

Es raro del todo ya que puse contadores de tiempo cada cierta parte del codigo hasta buscar las lineas donde se demora mas y una es un select super chica que se puede demorar como 3 segundos, pero en otros scripts hace selec hasta mas largos y se demora menos,

pero el tema es que el desarrollador lo que hice fue crear un archivo php que se llama Configuracion.php con la direccion de todas las clases por ejemplo asi


Código PHP:
// Aqui comienzan los includes de las clases y las funciones
include(DIR."class/Conexion.class.php");
include(
DIR."class/ConexionCR.class.php");
include(
DIR."class/ConexionSQL.class.php");
include(
DIR."class/ConexionSQL_SL.class.php");
include(
DIR."class/ConexionEuropa.class.php");
include(
DIR."class/ConexionReportes.class.php");
include(
DIR."class/Usuario.class.php");
include(
DIR."class/Noticia.class.php");
include(
DIR."class/DBNoticia.class.php");
include(
DIR."class/DBUsuario.class.php"); 
(obvio tieme mas lineas )
y el archivo scripts la invoca asi llama asi

include_once("../class/Configuracion.php");

luego esta esto

Código PHP:
$Aux2 = new DBUsuario();

$tiempo_fin microtime(true);
echo 
"Tiempo empleado: 3 " . ($tiempo_fin $tiempo_inicio); 
echo 
"<hr>";

$idusuario $Aux2->UsuarioId($elusuario,$centroar); //3 
 
 
echo memory_get_usage() ."   ";
$tiempo_fin microtime(true);
echo 
"Tiempo empleado: 4 1  " . ($tiempo_fin $tiempo_UsuarioId1); 
echo 
"<hr>"
le puse esso timer y aveces tengo diferencias de 3 a 7 segundos =/!!!
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 08/10/2009, 14:18
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con clase y su ejecucion

En ese caso como dices es el query, ejecutalo directo en tu gestor de bases de datos, es probable que la tabla le falte mantenimiento o no tenga los indices necesarios.

Saludos.
  #6 (permalink)  
Antiguo 08/10/2009, 14:30
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: duda con clase y su ejecucion

usando el navicat se demora 0.02.

para mi que es tema con el acceso a esa tabla.
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #7 (permalink)  
Antiguo 08/10/2009, 14:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con clase y su ejecucion

Pues verifica como es que se esta lanzando la consulta, que es lo que hace para que identifiques donde esta el problema. Con lo que pones es muy imposible ver porque puede llegar a fallar.

Saludos.
  #8 (permalink)  
Antiguo 08/10/2009, 14:52
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: duda con clase y su ejecucion

Código PHP:
    function UsuarioId($login,$centro="")
    {

        
$this->conecta();
        
$id = -1;
         
$sql "SELECT ID FROM USUARIOS WHERE USUARIO like '$login' ";
        if (
$centro$sql.=" AND CENTRO_AR=$centro";
        
$sql.= " AND ACTIVO=1";
);
        echo 
$sql;
        
$res mysql_query($sql);
        if(
$res)
        {
            if(
$row mysql_fetch_array($res))
                
$id $row["ID"];
            
        }
        return 
$id;
    
    } 
Asi la lanza
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #9 (permalink)  
Antiguo 08/10/2009, 22:04
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Respuesta: duda con clase y su ejecucion

Creo que el problema ya quedó claro que no es de PHP

Revisa las consultas, ejecutarlas solo con el cliente de base de datos no tiene por qué darte los mismos tiempos siempre, no te olvides que los motores hacen "caché" de las consultas.

Y no es solo ejecutar la consulta, depende la cantidad de información que traigas y luego la cantidad de información que debes transferir desde el servidor hasta el navegador.

PD: si por cada consulta haces un like de usuarios, habría que preguntar la cantidad de usuarios que tienes y si estás usando índices o no.

Prueba hacer explain de las consultas, como así también revisar el log de consultas lentas de MySQL para que veas lo que te reporta el sistema.

Pero en resumen, no es problema de PHP y menos de POO
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #10 (permalink)  
Antiguo 09/10/2009, 08:34
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: duda con clase y su ejecucion

Cita:
Iniciado por enriqueplace Ver Mensaje
Creo que el problema ya quedó claro que no es de PHP

Revisa las consultas, ejecutarlas solo con el cliente de base de datos no tiene por qué darte los mismos tiempos siempre, no te olvides que los motores hacen "caché" de las consultas.

Y no es solo ejecutar la consulta, depende la cantidad de información que traigas y luego la cantidad de información que debes transferir desde el servidor hasta el navegador.

PD: si por cada consulta haces un like de usuarios, habría que preguntar la cantidad de usuarios que tienes y si estás usando índices o no.

Prueba hacer explain de las consultas, como así también revisar el log de consultas lentas de MySQL para que veas lo que te reporta el sistema.

Pero en resumen, no es problema de PHP y menos de POO
Cambie el like por un where....
segun lei se deberia menor en buscar y claro la tabla tiene indices
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #11 (permalink)  
Antiguo 09/10/2009, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: duda con clase y su ejecucion

el like por un where?... como? el Where es parte esencial para filtrar datos...
  #12 (permalink)  
Antiguo 09/10/2009, 09:37
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: duda con clase y su ejecucion

Cita:
Iniciado por GatorV Ver Mensaje
el like por un where?... como? el Where es parte esencial para filtrar datos...
que decia where like "$usuario"
y yo lo deje asi
where usuario = "$usuario"
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:27.