Ver Mensaje Individual
  #9 (permalink)  
Antiguo 18/08/2003, 15:31
leonardop
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 20 años, 9 meses
Puntos: 1
(continuación)

Código:
# Se descarga la version 2.5 del modulo `smarty' desde el repositorio
# CVS de PHP

$ cvs -d :pserver:[email protected]:/repository co -r Smarty_2_5_0 smarty


# Nos aseguramos de que no exista inicialmente el archivo
# `ejemplo_grande.php'

$ test -f ejemplo_grande.php && rm ejemplo_grande.php


# tomando como base el conjunto de archivos con extension .php del
# directorio `smarty/libs/plugins', se copia su contenido en el
# archivo `ejemplo_grande.php', concentrandonos en aquellos archivos
# que contengan la palabra `function', e ignorando las lineas que
# contengan `require_once'

$ for archivo in `find smarty/libs/plugins -name "*.php"`; do \
`grep -q function $archivo` && \
grep -v require_once $archivo >>ejemplo_grande.php; done


# contemos el numero de lineas que tiene ahora el archivo
# `ejemplo_grande.php'

$ wc -l ejemplo_grande.php
   2415 ejemplo_grande.php


# contemos el numero de ocurrencias de la palabra `function' en
# `ejemplo.php'

$ grep function ejemplo_grande.php | wc -l
    111


# Agreguemos una pequenya funcion al final del archivo, que sera la
# unica que va a ser llamada cuando se ejecute el script.

$ echo "<?php
function funcion_cualquiera ()
{ echo \"Esta funcion no hace mucho...\n\"; }
echo \"Llamando una funcion cualquiera..\n\";
funcion_cualquiera ();
?>" >>ejemplo_grande.php


# Probemos que el script se ejecuta exitosamente

$ php ejemplo_grande.php
Llamando una funcion cualquiera..
Esta funcion no hace mucho...


# Ahora consultemos la cantidad maxima de memoria residente que
# requiere el script cuando es ejecutado, asi como el tiempo de
# ejecucion.

$ /usr/bin/time -f \
"Tiempo total real: %e\nMemoria maxima residente : %M" \
php ejemplo_grande.php

Llamando una funcion cualquiera..
Esta funcion no hace mucho...
#############################
Tiempo total real: 0.26
Memoria maxima residente : 0
#############################


# 0.26 segundos. Que tal si ejecutaramos un script que solo incluyera
# nuestra funcion final? Aqui esta la prueba:


# Crear el archivo `ejemplo.php', y agregarle nuestra pequenya funcion

$ test -f ejemplo.php && rm ejemplo.php

$ echo "<?php
function funcion_cualquiera ()
{ echo \"Esta funcion no hace mucho...\n\"; }
echo \"Llamando una funcion cualquiera..\n\";
funcion_cualquiera ();
?>" >ejemplo.php


# Confirmemos la cantidad de lineas que tiene el archivo, y la
# cantidad de ocurrencias de la palabra `function'

$ wc -l ejemplo.php
      6 ejemplo.php

$ grep function ejemplo.php | wc -l
      1


# Bien, consultemos ahora el tiempo de ejecucion de este script

$ /usr/bin/time -f \
"Tiempo total real: %e\nMemoria maxima residente : %M" \
php ejemplo.php

Llamando una funcion cualquiera..
Esta funcion no hace mucho...
#############################
Tiempo total real: 0.24
Memoria maxima residente : 0
#############################

# 0.24 segundos. Ciertamente no hay mucha diferencia...

Ahora bien, el consejo de separar el contenido de tus archivos de acuerdo a las funciones que incluyen es una práctica muy recomendable. Por supuesto, está sujeto a los gustos particulares del programador, pero siempre es bueno contar con cierto grado de organización en el manejo de código.

Éste tipo de prácticas fomentan la reusabilidad y modularización de las aplicaciones, así que si lo deseas olvida lo que he dicho del rendimiento y separa todo en diferentes archivos. :) Solo ten presente que si algún día te enfrentas a una cantidad enorme de código que bien podrías incluir dentro de un solo archivo, no rechaces esta idea meramente por razones de rendimiento, ya que no tal postura no tiene mucho sentido. :)


Un cordial saludo