안녕하세요~!
지난 글에 이어서, 이번에는 언어별 연산 성능 테스트에 관한 글을 올려요~!
[관련 글]
★ 연산 성능
테스트
※ 테스트 방법 : N 이하의 수 중에서 소수의 개수를 구하기, N=1000만
※ 테스트 언어 : C, C++, Java, Python 3, Pascal
※ 테스트 구분 : 일반 구현, 동적 계획법(DP)
※ 테스트 결과 (언어, 계산 방법, 평균 시간
순)
1위!!!
언어 :
C
계산 방법 : 동적
계획법
평균
시간 : 688.0 ms
2위!!
언어
: C++
계산 방법
: 동적 계획법
평균 시간 : 694.6 ms
참고
사항 : 아주 근소한 시간 차이...
3위!
언어 :
Java
계산 방법 : 동적
계획법
평균 시간
: 703.6 ms
참고 사항 : 입출력은 느리지만...
연산은 그나마...
4위.
언어 :
C++
계산 방법 : 일반
구현
평균
시간 : 1791.0 ms
참고
사항 : 확실히 DP가 빠른 듯...
5위.
언어 :
C
계산 방법 : 일반
구현
평균
시간 : 1797.1 ms
6위.
언어 :
Pascal
계산 방법 : 동적
계획법
평균
시간 : 2218.0 ms
참고
사항 : 같은 DP인데도 언어마다 차이가 있음.
7위.
언어 :
Java
계산 방법 : 일반
구현
평균
시간 : 2347.2 ms
8위.
언어 :
Pascal
계산 방법 : 일반
구현
평균
시간 : 6531.1 ms
9위.
언어 :
Python 3
계산 방법
: 동적
계획법
평균
시간 : 34407.2 ms
참고
사항 : Python 3으로 구현한 DP인데... 확실히 느림.
10위.
언어 :
Python 3
계산 방법 : 일반
구현
평균
시간 : 124837.0 ms
참고
사항 : 인터프리터 언어의 위엄...... 확실히 느림.
※ 동적 계획법 : 나머지 연산을 할 때, 미리 구해둔 소수로만 나누어 보면서 소수 여부를
판정
특히 Python 3은 인터프리터 언어라서 그런지... 확실히 느린 것을 확인 할 수 있었어요...
[필자의 현재 진행 상황!!]
★ 기본 언어의 정렬 테스트 : 테스트 완료 및 결과 정리 중
★ 추가 언어 목록
※ Ruby : 테스트 완료
※ Kotlin (Native) : 테스트 완료
※ Go : 정렬 테스트 진행 중 (입력 속도가 꽤 느리다는 것은
안비밀...)
※ Cobol : 테스트 예정
※ Lisp : 테스트 예정
(기타 등등...)
특히, Cobol과 Lisp의 경우, 이번에 수강 신청을 한
'프로그래밍 언어론' 수업의 과제로도 나올 가능성이 있어서 추가를 했어요...
앞으로도 다양한 프로그래밍 언어를 습득하는 날이 오기를 바라면서...
그럼 20000~!