다음 코드는 Python에서 실행하는 데 시간이 오래 걸립니다. (프로그램이 끝날 때까지 기다릴 수는 없었지만 내 친구가 20 분 정도 걸렸다 고 말했습니다.)Python, Java 및 C에서 중첩 루프 비교
Java에서 이와 동등한 코드는 약 8 초 만에 실행되며 C에서는 45 초가 걸립니다.
나는 Python이 느리지 만 많이는 아니지만 Java보다 빠를 것으로 예상되는 C의 경우 실제로 느렸다. 이 속도를 달성하기 위해 JVM이 일부 루프 풀기 기술을 사용하고 있습니까? 파이썬이 너무 느린 이유가 있습니까?
import time
st=time.time()
for i in xrange(0,100000):
for j in xrange(0,100000):
continue;
print "Time taken : ",time.time()-st
당신이 최적화를 컴파일하고 있는가? – kennytm
사실, 중첩 루프의 본문이 비어 있기 때문에 C 컴파일러가 시간을 0으로 줄여야합니다. 분명히 C로 컴파일 할 때 모든 옵티 마이저 옵션을 설정하지 않은 것입니다. –
@ S.Lott : 방금 테스트되었습니다. 이미 -O1에있는 GCC가 루프를 제거합니다. 분명히 컴파일러 최적화는 C에서 가능하지 않았고, Java는 항상 켜져있었습니다. – Dummy00001