Python быстрее, чем C ++? Как это произошло? [Дубликат]
На этот вопрос уже есть ответ здесь:
Почему чтение строк из stdin намного медленнее в C ++, чем в Python? 10 ответовЯ использую Windows7, используя CPython для python3.22 и MinGW g ++. Exe для C ++ (что означает, что я использую libstdc ++ в качестве библиотеки времени выполнения). Я написал две простые программы для сравнения их скорости.
Python:
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;
}
Оба не оптимизированы.
Сначала я запустил c ++, затем запустил python через интерактивную командную строку, которая намного медленнее, чем прямой запуск файла .py.
Тем не менее, Python обогнал C ++ и оказался более чем в два раза быстрее. Python занял 53 секунды, c ++ - 1 минуту и 54 секунды.
Это потому, что в python есть какая-то особая оптимизация для интерпретатора, или это потому, что C ++ должен ссылаться на std, который замедляет его и заставляет его работать с ram?
Или это какая-то другая причина?
Редактировать: Я попробовал еще раз, с\n
вместоstd::endl
и составление с-O3
флаг, на этот раз это заняло 1 минуту, чтобы достичь 500 000.