Boa tarde,
Por que quando iniciamos um novo projeto em C++, adicionando os arquivos .h e .cpp de um projeto existente, o tempo de execução do novo projeto fica bem maior do que o tempo do projeto existente?
Boa tarde,
Por que quando iniciamos um novo projeto em C++, adicionando os arquivos .h e .cpp de um projeto existente, o tempo de execução do novo projeto fica bem maior do que o tempo do projeto existente?
Os arquivos .h (header), como o nome já diz, servem como cabeçalhos. na verdade para o compilador não acusar que o elemento não existe, por ser de arquivos / bibliotecas externas que só serão incluídas em no instante de compilação (que vem depois do parsing) ou execução caso seja biblioteca compartilhada.
Se você compilou o "projeto existente" como um objeto estático ele irá incluir todo o seu código no seu projeto novo, o executável vai ficar maior e mais tempo de execução. Se você usar biblioteca compartilhada então ele só vai carregar em tempo de execução (a vantagem é que outros aplicativos podem usar a biblioteca e você pode atualizá-la independente do programa se continuar seguindo o mesmo padrão) porém ele vai carregar toda a biblioteca para a memória, então você pode acessar uma biblioteca compartilhada dinâmicamente ou seja, puchar só o método que você precisa daquela biblioteca e quando você precisar, depois descarrega, irá consumir menos memória e vai liberar quando não for mais utilizar.
Qual dessas formas você está utilizando, visto que cada uma delas tem suas vantagens e desvantagens. Mas todas elas aumentarão o tempo de execução se levar em consideração o "projeto existente", mas não é algo consideravel.
A[]'s