실행해보기 편한 tio.run 에서 약 33회 실행해봤는데 2.53초 부터 4.034초까지 나오는 것을 확인했습니다.
pypy는 pypy.org 에서 다운받은 바이너리 파일을 별도의 수정을 가하지 않고 바로 실행하고 있습니다. BOJ의 채점 서버 이외의 다른 환경에서도 오차가 발생하는 것은 어쩔 수 없을 것 같습니다.
로컬은 아마 여러 사이트의 실행 서버보다 CPU가 좋을 것으로 추정되어서 오차가 적을 것이라 생각되고, 각자의 서버 성능이 다르니 여러 곳과의 직접적인 비교도 어려울 것 같습니다.
다른 곳의 서버 성능은 알지 못하지만, BOJ는 일관성이 중요하다 생각되어 CPU Burst 기능이 없는 CPU를 AWS에서 사용하고 있습니다. 서버의 성능을 바꾸지 않고 별도의 처리로 PyPy 속도를 빠르게 하는 방법을 현재는 모르겠습니다.
이번 기회에 TLE와 관련된 채점 방식을 수정하는 것이 좋다고 생각하는데, 다음에 대해서 @jh05013 님과 이 글을 보는 다른 분들의 의견이 궁금합니다.
- 시간 제한을 min(TL*2, TL+5)로 놓고 채점하고, TLE가 발생한 경우 2-3번 정도 더 실행해 추가 실행한 횟수가 모두 TLE인 경우만 TLE 처리 (모든 언어)
추가로 Python과 PyPy에 대해서 다음에 대해서는 어떻게 생각하는지 궁금합니다.
- Python 3을 기본 언어에서 제외하고, PyPy3만 남김
- Python 3을 선택시 PyPy3을 사용하는 것이 좋다는 문구를 보여줌
- PyPy3의 이름을 Python 3 (PyPy), Python3의 이름을 Python 3 (CPython) 으로 바꿈
jh05013 2년 전 2
아래 코드를 로컬에서 실행시켰을 때는 평균 1.6초 가량이 나오고 2초를 넘지 않는데, BOJ Stack과 BOJ에서는 최대 4.8초까지 갑니다. 심지어 돌릴 때마다 2초부터 4초까지 제각각입니다.
tio.run, 앳코더, 코드포스 등 다양한 곳에서 실행시켜 보았지만 4초를 넘기는 곳은 없었습니다.