Asistí a una sesión en la que se enseñaba que no deberíamos usar "using namespace std", sino "std :: cout" para usar alguna llamada del espacio de nombres std como this aumentará el tamaño del código binariola inclusión del espacio de nombres aumenta el tamaño de exe
He intentado verificar lo mismo con el siguiente experimento. El código & su salida es la siguiente: -
[[email protected]]$ cat namespacestd.cpp
#include<iostream>
#ifdef STD
using namespace std;
#endif
int main()
{
#ifndef STD
std::cout<<"\n ==> Workign \n";
#else
cout<<"\n ==> Workign \n";
#endif
return 0;
}
[[email protected]]$ time g++ -c namespacestd.cpp -DSTD
real 0m0.246s
user 0m0.215s
sys 0m0.030s
[[email protected]]$ size namespacestd.o
text data bss dec hex filename
310 8 1 319 13f namespacestd.o
[[email protected]]$ time g++ -c namespacestd.cpp
real 0m0.258s
user 0m0.224s
sys 0m0.034s
[[email protected]]$ size namespacestd.o
text data bss dec hex filename
310 8 1 319 13f namespacestd.o
[[email protected]]$ time g++ -o namespacestd namespacestd.cpp -DSTD
real 0m0.293s
user 0m0.251s
sys 0m0.042s
[[email protected]]$ size namespacestd
text data bss dec hex filename
1980 580 288 2848 b20 namespacestd
[[email protected]]$ time g++ -o namespacestd namespacestd.cpp
real 0m0.274s
user 0m0.239s
sys 0m0.035s
[[email protected]]$ size namespacestd
text data bss dec hex filename
1980 580 288 2848 b20 namespacestd
[[email protected]]$
mi punto de vista de mi experimento que
no hay ningún efecto en el tamaño del binario
única
hay una diferencia en el tiempo de compilación.
favor corríjanme si mis conclusiones son erróneas
Gracias
Podría haber diferencias en el tiempo de compilación (como en, el 'using' podría causar más trabajo), pero es muy teórico ... –
No me gustaría prestar mucha atención a la diferencia en el tiempo de compilación, a menos ensayos repetidos muestran una diferencia consistente. 'g ++' golpeará al menos unas pocas docenas de archivos para compilar ese programa, y los tiempos pueden variar. –
Acepto que el tiempo de compilación es irrelevante – Fooo