파이썬이 다른 언어보다 처리속도가 느린 이유가 무엇일까요?
파이썬의 장점이 다른 언어 대비 배우기 쉬운것으로 알고있는데요,
간단한 프로그래밍을 할 때는 상관 없지만 속도가 중요한 프로세싱을 할때는 파이썬이 상대적으로 느리다고 알고 있습니다. 맞을까요?
파이썬이 왜 속도가 느린지 궁금한데요, 제 추측으로는 컴퓨터의 언어와 사람의 언어 사이에 파이썬이 들어가있고, 파이썬 언어를 내부적으로 처리하여 컴퓨터의 언어로 바꾼다음에 프로세싱 하기 때문에 속도가 느린 그런 개념일까요?
예전부터 궁금했던건데 답변을 받는다면 속이 상쾌통쾌할것 같습니다. 감사합니다.
안녕하세요.
파이선이 느린 가장 큰 이유는 인터프리터로 동작하는 스크립트 언어이기 때문입니다.
컴파일러가 코드를 기계어로 번역해서 실행가능파일을 만드는것에 비해,
인터프리터는 코드 한줄 한줄을 그때그때 번역해서 실행합니다.
코드 동작 역시 컴파일된 실행파일 자체가 올라가는것에 비해 인터프리터 위에서 코드가 실행됩니다.
컴파일러가 번역을 한다면 인터프리터는 통역을 한다고 생각하시면 됩니다.
인터프리터의 장점은 누구나 코드를 볼 수 있고 수정이 용이하다는 점 입니다.
코드를 인터프리터에 넣어서 돌린다는 점 때문에 컴파일 시간을 들이지 않아도 되고 소스 자체가 배포되어 디컴파일 없이 쉽게 볼 수 있습니다.
단점은 느리다는 점 입니다.
컴파일이 없는 대신 한줄한줄 의미를 분석해서 실행하기 때문에 컴파일러보다 느릴 수밖에 없습니다.
이런 단점 때문에 실제로 파이선 컴파일러 또한 존재합니다.
해당 컴파일러를 실행하면 c와 마찬가지로 컴파일된 실행파일이 나옵니다.
파이션은 인터프린터 언어입니다
그래서 속도처리가 늦는것이구요
컴파일러와 인터프린터의 차이는
아래와 같습니다
컴파일러는 10라인의 명령문이 있다면, 명령문을 전부 기계어로 번역을 한뒤에 실행을 합니다
인터프린터는 10라인의 명령문이 있다면,
명령을 실행하세요 와 같은 명령문이 들어왔을때 그때부터 매번 1라인씩 기계어로 번역을 해가며 실행을 하기 때문에 속도가 느려지게 됩니다
또한 컴파일러는 코딩에 오류가 없어야 기계어로 번역이 완료되어 실행을 할수있지만,
인터프린터는 코딩에 오류가 있어도,일단 실행을 하고 보기때문에 디버깅시 인터프린터 방식이 좀더 유연하게 대처할수있습니다