Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Symfony2 + Composer y tamaño del directorio tmp

5 de junio de 2015

Buenos días:

Quería hacer una consulta, puesto que no tengo claro si es normal o tengo algo mal configurado.

Antes de nada, la configuración del entorno:

  • Se trata de Windows 7, sobre una máquina virtual VM Ware.
  • Como servidor, XAMPP con Apache 2.4.9 y PHP 5.5.11.

La duda en cuestión es referente al comportamiento de Composer al realizar un update, ya que me genera unos ficheros enormes (alrededor de 5GB) en la carpeta tmp/ de XAMPP. Sobre todo en la configuración inicial, que se realizan varios updates, se me queda el disco de la máquina sin espacio en muy poco tiempo. ¿Es normal ésto?

Muchas gracias.

Saludos.


Respuestas

#1

Hay dos cosas que me extrañan mucho en tu pregunta. Primero, es "imposible" que Composer requiera 5 GB para hacer su trabajo (a menos que tengas miles de proyectos complejísimos). Segundo, la caché de Composer no usa por defecto ni el directorio temporal del sistema ni el direcotrio tmp/ de XAMPP.

En este método puedes ver cómo Composer determina el directorio que usar para su caché. En mi caso ese directorio está en ~/.composer/cache/ y "sólo" me ocupa unos 300 MB.

¿Puedes darnos alguna información más sobre los archivos generados en ese directorio tmp/? ¿Son muchos archivos pequeños o pocos grandes? ¿Cómo se llaman? ¿Puedes ver el contenido de alguno de esos archivos?

@javiereguiluz

5 junio 2015, 10:44
#2

Buenas tardes:

Acabo de lanzar un update aunque no completo y me ha generado el siguiente fichero sin extensión: cachegrind.out.1433515890-C__ProgramData_ComposerSetup_bin_composer_phar

El tamaño final ha sido de 4,68 GB

Cuando lanzo un update, genera un fichero enorme y aparentemente uno más pequeño por cada bundle que actualiza.

Otros ficheros tienen nombres (sin extensión) del tipo: cachegrind.out.1433516605-E__PHP_WF_Proyecto_vendor_sensio_distribution-bundle_Sensio_Bundle_DistributionBundle_Resources_bin_build_bootstrap_php

Los de 5GB soy incapaz de abrirlos, por tamaño, pero otros más pequeños tienen trazas de composer:

version: 1
creator: xdebug 2.2.3
cmd: E:\PHP\WF\Proyecto\web\app_dev.php
part: 1
positions: line
 
events: Time
 
fl=php:internal
fn=php::in_array
14 0
 
fl=php:internal
fn=php::error_reporting
4 0
 
fl=php:internal
fn=php::error_reporting
4 0
 
fl=E:\PHP\WF\Proyecto\vendor\composer\autoload_real.php
fn=require_once::E:\PHP\WF\Proyecto\vendor\composer\autoload_real.php
1 0
 
fl=php:internal
fn=php::spl_autoload_register
22 0
 
fl=E:\PHP\WF\Proyecto\vendor\composer\ClassLoader.php
fn=require::E:\PHP\WF\Proyecto\vendor\composer\ClassLoader.php
1 0
[...]

No sé si esto aporta algo de claridad. La verdad es que algo bastante molesto, ya no por el tamaño del fichero, que al final he creado una tarea que me lanza un script de limpieza, si no por lo que tarda en hacer un update, que se puede llevar más de 10 minutos.

Muchas gracias.

Saludos.

@jesusjbm

5 junio 2015, 17:10
#3

Ya se cuál es el problema: tienes activado el profiler de Xdebug. Este profiler está muy bien para investigar la causa de algún error difícil de depurar. El problema es que si lo dejas activado siempre, te genera archivos gigantescos por cada petición que hagas en una aplicación local o por cada comando PHP que lances en la consola.

La solución consiste en desactivar el profiler de Xdebug. No se si con XAMPP podrás hacer esto visualmente. Si no, busca en el archivo php.ini (o en el propio archivo de configuración de Xdebug si es que lo tiene) la siguiente opción y asegúrate de que su valor sea 0 (en tu caso debe estar puesto a 1):

xdebug.profiler_enable = 0;

Después, reinicia el servidor Apache para que se tengan en cuenta los cambios y ya no deberían generarse esos archivos monstruosos del profiler.

@javiereguiluz

5 junio 2015, 17:45
#4

¡Muchas gracias!

Efectivamente era eso.

Un saludo y estoy configurando un par de cosas que me están generando unas dudas, así que dentro de poco lanzaré otra consulta. Muchas gracias de nuevo.

@jesusjbm

5 junio 2015, 20:46