He estado probando diferentes métodos para mejorar el tiempo que lleva compilar todo mi proyecto de c ++. Actualmente lleva unos 5 minutos. Experimenté con distcc, ccache y otros. Recientemente, descubrí que si copio todo mi proyecto en una unidad RAM y luego compilo desde allí, reduce el tiempo de compilación al 30% de su original, solo 1.5 minutos.
Obviamente, trabajar desde la unidad de RAM no es práctico. Entonces, ¿alguien sabe de alguna manera en que puedo forzar al sistema operativo a mantener siempre un determinado directorio en caché ? Todavía quiero que el directorio se sincronice de nuevo en el disco de manera normal, pero siempre quiero una copia de los datos en la memoria también. es posible?
EDITAR:
Como una posible solución, solo pensamos en lanzar un demonio que se ejecuta rsync
cada 10 segundos más o menos para sincronizar la unidad de disco con una unidad de RAM. Luego ejecutamos la compilación desde la unidad RAM. El rsync
es increíblemente rápido, pero ¿funcionaría realmente? Seguramente el sistema operativo podría hacerlo mejor ...
time
tu compilación y compartir el resultado con nosotros? Disiparía alguna controversia creciente. make clean && /usr/bin/time -v make
(no use el time
comando incorporado bash )
time
bash incorporado ( help time
) tiene muchos menos detalles (sin opción detallada) que el tiempo GNU ( man time
) con respecto a la E / S, cambios de contexto, ...