ploffer11   5년 전

저는 python3 사용자로, ps에서도 자주 python3로 제출하는 편입니다.

그리고 python3로 냈다가 tle에 빠진 적이 한 두번이 아니기 때문에, 입출력 개수가 많으면 fast io는 물론이고 쉬운 문제라도 pypy3로 내는 습관을 가지고 있습니다.

최근에는 객체지향 공부를 하고있어서, 문제를 객체를 만들어 설계하곤 하는데, 평소와 같이 pypy3로 내자 1300ms라는 시간이 걸렸습니다.

역시 파이썬인가 싶어서, python3로 다시한번 제출해 보았는데, 훨씬 빠르게 돌아감을 확인할 수 있었습니다. 믿을 수가 없어서 pypy3로 다시 제출해 보았지만 결과는 마찬가지였습니다.

cbec50ec-31e9-49c1-8c4b-aed74e95eea2


저는 이해가 되지 않아 질문 글을 올립니다.

제 코드에서 python3가 pypy3보다 더 좋은 성능을 보이는 이유가 뭔가요?

코드는 첨부하지만, 이해하기는 어려울 거 같아 죄송스럽네요.

bupjae   5년 전

다른 구현체를 이용하면 성능이 다르게 나오는 건 어떻게 보면 당연한 겁니다.

어떤 벤치마크 결과에 따르면, 전반적으로는 pypy 구현체의 성능이 좀 더 좋게 나왔지만

개별 항목을 보면 pypy 구현체가 cpython 구현체에 비해 156배 빠른 경우가 있는가 하면, 반대로 cpython 구현체가 pypy 구현체에 비해 109배 빠른 경우가 있었습니다.

ploffer11   5년 전

pypy3가 항상 빠른건 아니였군요.

아마 객체 메소드 호출에 있어서는 pypy3가 그리 좋지 않은 성능을 보이는 것인지도 모르겠네요.

답변 감사합니다.

댓글을 작성하려면 로그인해야 합니다.