python, 참 애착이 가는 언어이다. 간단한 무언가를 만들 때는 참으로 요긴하다만,
뭔가 거창한 것을 만드려고 할 때 주저하게 하는 것이 있으니, 바로 성능 문제. 특히 멀티 스레드기반 개발을 해야할 때 cPython의 성능 저하는 아직 완벽하게 풀지 못한 숙제인듯 하다. (요새는 많이 나아졌나 모르겠다.)
ruby는 성능 면에선 여느 스크립트 언어에 비해서도 꽤 좋은 편이다. ruby도 그렇지마는 jruby도 성능은 오히려 ruby보다도 좋다. (역시 jvm 짱)
10년을 넘게 튜닝을 단단히 해오면서 Java의 성능은 이제 C++과도 견줄만큼 많이 좋아졌다. 그러다보니 JVM기반의 스크립트 언어 역시 성능면에서 별로 나쁜 소릴 듣지는 않는다. 그런면에서 Groovy가 꽤 좋은 대안이 될 수 있는 언어가 아닌가 싶다.
실제로 groovy 버전 1.5 이전까지는 성능이 참 면목없었는데, 1.6 이상부터는 왠만한 스크립트 언어들은 groovy의 성능 앞에 '형님'이라고 모셔야할 판이다.
구글에서 'groovy python ruby performance' 로 찾아보면 최근 자료로 오면 올 수록 groovy의 압도적인 성능 우세의 평가자료가 많다.
출처: KeyZero conversation blog
위의 표를 보면 생각보다 python의 성능이 나쁘지 않은 것처럼 보이고 그 외의 웹상에 나와있는 적잖은 평가자료들도 python의 성능이 나쁘지 않은 듯 보이지만, 약간 python을 배려한 평가라고 보여진다. 실제 수행된 코드들을 보면 단순한 산술적 연산을 기반을 둔 테스트가 주를 이룬다. 웹기반 서비스를 아무래도 많이 개발하게되고 그런 서비스야 말로 성능이 중요한 점을 고려해봤을 때 만약 멀티스레드 기반의 코드를 테스트했다면 python의 성능은 훨씬 더 떨어졌을 가능성이 있다.
조만간 짬을 내어 groovy와 python, ruby의 성능을 자체 평가를 해봐야할 듯.
뭔가 거창한 것을 만드려고 할 때 주저하게 하는 것이 있으니, 바로 성능 문제. 특히 멀티 스레드기반 개발을 해야할 때 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_1 | pe052_2 | pe052_1 | pe052_2 | pe052_1 | pe052_2 | pe052_1 | pe052_2 | |
| Elapsed | 2.744 | 0.746 | 5.668 | 1.615 | 19.598 | 4.554 | 4.670 | 1.100 |
| Real | 3.736 | 1.721 | 6.672 | 2.209 | 19.676 | 4.568 | 4.712 | 1.117 |
| User | 2.812 | 0.788 | 5.016 | 1.376 | 16.817 | 4.052 | 4.680 | 1.100 |
| Sys | 0.836 | 0.892 | 1.168 | 0.796 | 2.712 | 0.480 | 0.020 | 0.012 |
위의 표를 보면 생각보다 python의 성능이 나쁘지 않은 것처럼 보이고 그 외의 웹상에 나와있는 적잖은 평가자료들도 python의 성능이 나쁘지 않은 듯 보이지만, 약간 python을 배려한 평가라고 보여진다. 실제 수행된 코드들을 보면 단순한 산술적 연산을 기반을 둔 테스트가 주를 이룬다. 웹기반 서비스를 아무래도 많이 개발하게되고 그런 서비스야 말로 성능이 중요한 점을 고려해봤을 때 만약 멀티스레드 기반의 코드를 테스트했다면 python의 성능은 훨씬 더 떨어졌을 가능성이 있다.
조만간 짬을 내어 groovy와 python, ruby의 성능을 자체 평가를 해봐야할 듯.
공유하기 버튼
|
|






최근 덧글