Programming Language Performance Test

code at https://github.com/proin/Language-Performance-Test

R이 좋다는 말도 요즘 많이 들리고, 프로젝트를 하다보면 파이썬으로 구현된 프록젝트들도 꽤 다수가 있다. go 언어 또한 구글에서 밀고있기 때문인지 스크립트 언어가 C와 동급의 퍼포먼스를 보인다는 이야기도 자주 들린다.

그래서 프로젝트 할 때 참고하기 위해 몇가지 언어를 속도 비교를 위해 하노이탑 로직을 통해 재귀함수 속도 테스트를 해보았다. (복잡한거 짜기는 귀찮아서..) 프로그램은 깃허브에 올려놓았고 유닉스 환경에서 각 언어 설치 후 쉘 스크립트를 실행하면 아래와 같이 결과값이 나온다.

result


속도 비교 결과

속도만 가지고 전체 퍼포먼스 비교 할 수는 없지만 가장 중요한 이슈는 속도라고 생각해서 그냥 속도만 측정하였다. 테스트 환경은 MacOSX Maverick에서 하였고, 속도 측정을 위해 n 값을 15, 20, 25 세가지로 설정하고 각 5번씩 실행하여 평균치를 정리하였다. 시간은 ms 단위로 측정하였다.

graph

table

아래 이미지는 깃허브에서 소스코드 비중이다. 동일한 작업을 수행하기위해 해야할 일이 얼마나 되는지 참고하기에 좋을 것 같다.

스크린샷 2015-03-08 오전 4.26.48


속도 테스트 결과 정리

  • java가 느려서 못쓰겠다는 말은 이제 옛말인 것 같다. java 6 이전 버전에서는 상당히 느려서 그런말이 나올만 했지만 7, 8 버전 부터는 큰 차이 없이 돌아가는 듯하고 특정 부분에서는 오히려 java가 더 빠를 수 있을 것 같다.
  • php는 느리다는건 알고있었지만 테스트 해보니 진짜 딱 블로그나 커뮤니티 운영 수준의 속도를 내는 것 같다.
  • python은 OpenStack이랑 CKAN이 파이썬으로 만들어져 있길래 성능이 어느정도는 되나보다 했는데 거의 php랑 비슷한급이었다.
  • node.js는 javascript 언어 자체가 원래 웹 기반 스크립트 언어기 때문에 속도에 대해서는 별로 기대는 안했었는데 예상외로 빠른듯하다. Go 언어도 확실히 구글 덕분인지 실제로 C와 비슷한 속도가 나는 것 같다.
  • R은… 실험 환경 이외에서는 못쓸것 같다. 하둡을 이용하여 처리할 수 있게된다하더라도 다른 언어와 500~1000배 정도의 속도 차이라면…. 해결책이 없는 듯하다.

댓글 남기기