No quiero desviar la atención de la pregunta del "último acceso", pero podría haber otras formas de acelerar sus compilaciones. Sin conocer el contexto y la configuración de su proyecto, es difícil decir lo que podría ser lento, pero podría haber algunas cosas que podrían ayudar:
Crear compilaciones "uber". Es decir, crear un único archivo uber.cpp compilación que contiene un montón de líneas como
#include "file1.cpp"
#include "file2.cpp"
Es posible que tenga problemas con los nombres de variables estáticas en conflicto, pero esos son generalmente fáciles de resolver.La configuración inicial es un poco dolorosa, pero los tiempos de construcción pueden aumentar drásticamente. Para nosotros, el mayor inconveniente es que en el estudio de desarrolladores, no se puede hacer clic derecho en un archivo y decir 'compilar' si ese archivo es parte de una compilación uber. No es un gran problema sin embargo. Tenemos configuraciones de compilación separadas para compilaciones 'uber' que compilan los archivos uber pero excluyen los archivos cpp individuales del proceso de compilación. Si necesitas más información, deja un comentario y puedo conseguirte eso. Además, el optimizador tiende a hacer un trabajo un poco mejor con compilaciones súper.
Además, ¿tiene una gran cantidad de archivos de inclusión, o una gran cantidad de dependencias entre los archivos de inclusión? Si es así, eso ralentizará drásticamente los tiempos de construcción.
¿Está utilizando encabezados precompilados? De lo contrario, podrías considerar eso como una solución, ya que eso también te ayudará.
Tiempos de compilación lenta son generalmente rastreados hasta un montón de archivos E/S. Ese es, con mucho, el mayor sumidero de tiempo en una compilación, solo abrir, leer y analizar todos los archivos. Si reduce la E/S de archivos, mejorará los tiempos de compilación.
De todos modos, siento desviar un poco el tema, pero la sugerencia en cuestión para cambiar cómo se establece el último tiempo de acceso de un archivo parecía ser una solución un tanto 'traviesa'.
¡Interesante! Sin embargo, esperaría que la ganancia real sea al tocar un solo archivo que tenga muchas inclusiones y luego reconstruir: la comprobación de dependencia debería comenzar a buscar una gran cantidad de archivos, lo que podría desencadenar una escritura del último tiempo de acceso. Tal vez ... –