Python más rápido que C ++? ¿Como sucedió esto? [duplicar
Esta pregunta ya tiene una respuesta aquí:
¿Por qué leer líneas de stdin es mucho más lento en C ++ que Python? 10 respuestasEstoy usando Windows7 usando CPython para python3.22 y g ++. Exe de MinGW para C ++ (lo que significa que uso libstdc ++ como biblioteca de tiempo de ejecución). Escribí dos programas simples para comparar su velocidad.
Pitón
x=0
while x!=1000000:
x+=1
print(x)
C ++:
#include <iostream>
int main()
{
int x = 0;
while ( x != 1000000 )
{
x++;
std::cout << x << std::endl;
}
return 0;
}
Ambas no están optimizadas.
Primero ejecuté c ++, luego ejecuté python a través de la línea de comandos interactiva, que es mucho más lenta que iniciar directamente un archivo .py.
Sin embargo, Python superó a C ++ y resultó ser más del doble de rápido. Python tomó 53 segundos, c ++ tomó 1 minuto y 54 segundos.
Es porque python tiene una optimización especial para el intérprete o es porque C ++ tiene que hacer referencia a y std que lo ralentiza y hace que ocupe ram?
¿O es alguna otra razón?
Editar Lo intenté de nuevo, con\n
en lugar destd::endl
, y compilando con el-O3
flag, esta vez tardó 1 minuto en llegar a 500,000.