IronPython

Scarecrow의 이미지
4646
points
2
points

C:\Python25\Lib\test>c:\jython2.2rc2\jython.bat --version
Jython 2.2rc2 on java

C:\Python25\Lib\test>java -version
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b06)
Java HotSpot(TM) Client VM (build 1.6.0_02-b06, mixed mode, sharing)

C:\Python25\Lib\test>..\..\python.exe -V
Python 2.5.1

C:\Python25\Lib\test>c:\IronPython\ipy -V
IronPython 1.1 (1.1) on .NET 2.0.50727.832

C:\Python25\Lib\test>c:\jython2.2rc2\jython.bat pystone.py
Pystone(1.1) time for 50000 passes = 2.671
This machine benchmarks at 18719.6 pystones/second

C:\Python25\Lib\test>..\..\python.exe pystone.py
Pystone(1.1) time for 50000 passes = 1.41669
This machine benchmarks at 35293.5 pystones/second

C:\Python25\Lib\test>c:\IronPython\ipy.exe pystone.py
Pystone(1.1) time for 50000 passes = 0.908689
This machine benchmarks at 55024.3 pystones/second

Jython과 IronPython을 비교해 볼겸
Jython, CPython, IronPython으로 각각 pystone을 돌려봤는데
IronPython의 pystone값이 매우 참 하네요. @.@

내용추가:

C:\Python25\Lib\test>mono --version
Mono JIT compiler version 1.2.4 (tarball)
Copyright (C) 2002-2007 Novell, Inc and Contributors. www.mono-project.com
        TLS:           normal
        GC:            Included Boehm (with typed GC)
        SIGSEGV:       normal
        Architecture:  x86
        Disabled:      none

C:\Python25\Lib\test>mono c:\IronPython\ipy.exe pystone.py
Pystone(1.1) time for 50000 passes = 1.265
This machine benchmarks at 39525.7 pystones/second

1줄요약 : IronPython on .NET >> IronPython on Mono > CPython >> Jython on Java

feanor의 이미지
9694
points

Java Server VM

1
point

Java Server VM으로 실행한 결과도 올려주셔야 공정할 것 같습니다.

serialx의 이미지
1414
points

왜 서버로 실행해야

0
points

왜 서버로 실행해야 공정한지요. 파이썬이 서버쪽에서만 돌아가는 그건류의 물건도 아니거니와, 어차피 비등비등할것 같습니다.

심심해서 직접 테스트 해봤습니다. :)

serialx@daybreakin:/usr/lib/python2.5/test$ python2.5 -V
Python 2.5
serialx@daybreakin:/usr/lib/python2.5/test$ python2.5 pystone.py
Pystone(1.1) time for 50000 passes = 0.95
This machine benchmarks at 52631.6 pystones/second

serialx@daybreakin:/usr/lib/python2.5/test$ jython --version
Jython 2.1 on java (JIT: null)
serialx@daybreakin:/usr/lib/python2.5/test$ java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0-b105, mixed mode)
serialx@daybreakin:/usr/lib/python2.5/test$ jython pystone.py
Pystone(1.1) time for 50000 passes = 4.075
This machine benchmarks at 12269.9 pystones/second

박살났군요.

핫스팟 좀 더 잘 동작하라고(?) 1000000 패스로 돌려봤습니다.

serialx@daybreakin:/usr/lib/python2.5/test$ python pystone.py 1000000
Pystone(1.1) time for 1000000 passes = 18.83
This machine benchmarks at 53106.7 pystones/second

serialx@daybreakin:/usr/lib/python2.5/test$ jython pystone.py 1000000
Pystone(1.1) time for 1000000 passes = 17.978
This machine benchmarks at 55623.5 pystones/second

오. 앞섰네요.

역시 런타임 최적화 대단하군요. -_-;

---
Captue the one shot in your life!

feanor의 이미지
9694
points

"어차피

0
points

"어차피 비등비등할것 같습니다."

그렇지 않기 때문에 요청한 것입니다. HotSpot Client VM과 HotSpot Server VM은 성능 차이가 큽니다.

Scarecrow의 이미지
4646
points

HotSpot Server VM입니다.

0
points

공연한걸 올렸다가 Java EE까지 설치해 보는군요.
윈도용은 Java SE에 server vm이 없어요.
Java EE는 깔아보니 있더군요. -_-

벤치 1: Jython on HotSpot Server VM
결과 : IronPython > CPython > Jython

C:\Python25\Lib\test>c:\jython2.2rc2\jython.bat pystone.py
Pystone(1.1) time for 50000 passes = 3.109
This machine benchmarks at 16082.3 pystones/second

C:\Python25\Lib\test>..\..\python.exe pystone.py
Pystone(1.1) time for 50000 passes = 1.35855
This machine benchmarks at 36804.1 pystones/second

C:\Python25\Lib\test>c:\IronPython\ipy.exe pystone.py
Pystone(1.1) time for 50000 passes = 0.879187
This machine benchmarks at 56870.7 pystones/second

벤치 2: 1000000 pystones
결과 : IronPython > Jython > CPython

C:\Python25\Lib\test>c:\jython2.2rc2\jython.bat pystone.py 1000000
Pystone(1.1) time for 1000000 passes = 19.439
This machine benchmarks at 51443 pystones/second

C:\Python25\Lib\test>..\..\python.exe pystone.py 1000000
Pystone(1.1) time for 1000000 passes = 27.3522
This machine benchmarks at 36560.1 pystones/second

C:\Python25\Lib\test>c:\IronPython\ipy.exe pystone.py 1000000
Pystone(1.1) time for 1000000 passes = 15.2835
This machine benchmarks at 65429.9 pystones/second

참고: Jython on HotSpot Client VM

C:\Python25\Lib\test>c:\jython2.2rc2\jython.bat pystone.py
Pystone(1.1) time for 50000 passes = 2.72
This machine benchmarks at 18382.4 pystones/second

C:\Python25\Lib\test>c:\jython2.2rc2\jython.bat pystone.py 1000000
Pystone(1.1) time for 1000000 passes = 48.595
This machine benchmarks at 20578.2 pystones/second

나는오리의 이미지
22866
points

새벽에 찬물을

0
points

새벽에 찬물을 끼언는 소리지만...
이 글타래에 글쓰신분들도 알고계시듯이
언어의 속도비교는 아무 쓸데없는것이지요.

ditto의 이미지
5580
points

언어의 속도 비교가

4
points

언어의 속도 비교가 아니라 언어 구현 간의 속도 비교이므로 의미가 있는 것 같은데요. ;)

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.