태섭씨 블로그
파이썬 소스의 컴파일 본문
찾아본 내용 정리.
.py 파일을 생성하여 실행하면 어느순간 .pyc 파일이 생성되어 있는데 (파이썬 인터프리터가 자동 컴파일)
이 부분(+알파)에 대하여 간략히 찾아본 내용을 정리한다. (담에 또 찾을까봐~)
1) byte-code 파일(.pyc)이 소스파일(.py) 실행하는 것보다 성능이 더 나은가?
byte-code 컴파일된 파일과 소스에 성능 차이가 있을까 했는데, 결론적으로 성능 차이는 없다. 파일을 로딩하는 부분에서만 속도 차이가 있다고 보면 될 것 같다. (정확히는 parse, translate 부분)
성능을 위해서는 Cython 이나 다른 여러 프로젝트를 찾아봐야 할듯.
- "There is no performance difference once the .pyc file has been loaded, as the bytecode read from the .pyc file is exactly the same as the bytecode created by direct translation. The only difference is that loading code from a .pyc file is faster than parsing and translating a .py file, so the presence of precompiled .pyc files improves the start-up time of Python scripts. If desired, the Lib/compileall.py module can be used to create valid .pyc files for a given set of modules."
- Can Python be compiled to machine code, C or some other language? 참고 : https://docs.python.org/2/faq/design.html#can-python-be-compiled-to-machine-code-c-or-some-other-language
2) machine code, C 등으로 컴파일이 가능한가?
쉽지 않다고 한다.(python.org faq 상에는)
- py2exe (http://www.py2exe.org/) 프로젝트가 있는데 파이썬 스크립트 -> window 실행파일 생성 가능하다고 함. bitTorrent 클라이언트가 이걸 사용했다고 함.
- 또 py2app 프로젝트가 있는데 이것으로는 파이썬 스크립트 -> Mac OS X App 생성이 가능하다고 함.
( http://spoqa.github.io/2013/05/21/py2exe-and-py2app.html 참고 . 여담으로 이 회사의 기술블로그에 작성되는 파이썬 관련 내용이 너무 좋고 많은 도움이 된다. 감사!)
3) byte-code 역컴파일?
http://apollo89.com/wordpress/?p=3997 이 곳을 보면 가능한 것 같은데 아직 안해봐서 잘 모르겠다 - -; 나중에 해봐야지~~
'IT > Python' 카테고리의 다른 글
파이썬 람다 - 색다른 람다 튜토리얼 (1) (0) | 2016.02.11 |
---|