adsense(728_90)


groovy, ruby, python 어떤 스크립트 언어가 성능이 좋을까? Programming

python, 참 애착이 가는 언어이다. 간단한 무언가를 만들 때는 참으로 요긴하다만,
뭔가 거창한 것을 만드려고 할 때 주저하게 하는 것이 있으니, 바로 성능 문제. 특히 멀티 스레드기반 개발을 해야할 때 cPython의 성능 저하는 아직 완벽하게 풀지 못한 숙제인듯 하다. (요새는 많이 나아졌나 모르겠다.)

ruby는 성능 면에선 여느 스크립트 언어에 비해서도 꽤 좋은 편이다. ruby도 그렇지마는 jruby도 성능은 오히려 ruby보다도 좋다. (역시 jvm 짱)

10년을 넘게 튜닝을 단단히 해오면서 Java의 성능은 이제 C++과도 견줄만큼 많이 좋아졌다. 그러다보니 JVM기반의 스크립트 언어 역시 성능면에서 별로 나쁜 소릴 듣지는 않는다. 그런면에서 Groovy가 꽤 좋은 대안이 될 수 있는 언어가 아닌가 싶다.
실제로 groovy 버전 1.5 이전까지는 성능이 참 면목없었는데, 1.6 이상부터는 왠만한 스크립트 언어들은 groovy의 성능 앞에 '형님'이라고 모셔야할 판이다.

구글에서 'groovy python ruby performance' 로 찾아보면 최근 자료로 오면 올 수록 groovy의 압도적인 성능 우세의 평가자료가 많다.

 Groovy
1.7.2
JRuby
1.5.0
Ruby
1.8.7
Python
2.5.2
 pe052_1pe052_2pe052_1pe052_2pe052_1pe052_2pe052_1pe052_2
Elapsed2.7440.7465.6681.61519.5984.5544.6701.100
Real3.7361.7216.6722.20919.6764.5684.7121.117
User2.8120.7885.0161.37616.8174.0524.6801.100
Sys0.8360.8921.1680.7962.7120.4800.0200.012
출처: KeyZero conversation blog

위의 표를 보면 생각보다 python의 성능이 나쁘지 않은 것처럼 보이고 그 외의 웹상에 나와있는 적잖은 평가자료들도 python의 성능이 나쁘지 않은 듯 보이지만, 약간 python을 배려한 평가라고 보여진다. 실제 수행된 코드들을 보면 단순한 산술적 연산을 기반을 둔 테스트가 주를 이룬다. 웹기반 서비스를 아무래도 많이 개발하게되고 그런 서비스야 말로 성능이 중요한 점을 고려해봤을 때 만약 멀티스레드 기반의 코드를 테스트했다면 python의 성능은 훨씬 더 떨어졌을 가능성이 있다.

조만간 짬을 내어 groovy와 python, ruby의 성능을 자체 평가를 해봐야할 듯.

공유하기 버튼

 

덧글

  • 익명 2012/01/05 02:04 # 삭제 답글

    python의 경우 pypy를 사용하면 성능향상을 기대할 수 있고
    node.js 로 돌리는 자바스크립트 성능도 만만치 않습니다
  • Calmglow 2012/01/05 09:16 #

    예 감사합니다. pypy의 멀티스레드 성능도 충분히 괜찮아 졌겠죠?
  • 밀리네스 2012/01/05 11:27 # 답글

    groovy++ 도 재미있는 프로젝트입니다.
    static groovy의 일환인데요,MetaClass 를 거치지 않고 미 direct java call을 할수 있게 해서 groovy 실행성능을 그냥 자바 실행성능으로 나오게 하는 프로젝트입니다.
    이미 groovy 개발자쪽에서도 이 아이디어를 groovy에 도입한다고 했으니 groovy 2.0 쯤에 추가 되지 않을까 싶네요.
  • Calmglow 2012/01/05 12:59 #

    아 정말 감사합니다.
  • 서누아 2012/11/29 14:28 # 답글

    ㅎㅎ 진호오빠 여전히 재미있는 거 하시네요 ㅎㅎ
  • Calmglow 2012/12/07 22:02 #

    ㅎㅎ 재밌는게 너무 많아
댓글 입력 영역


Google Analytics