잔글 (오류 수정 (빈칸)) |
편집 요약 없음 |
||
(다른 사용자 한 명의 중간 판 하나는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
[[Python]]으로 구현한 Python 구현이자 가장 빠른 Python 구현체. 일부 상황에서는 다른 구현체들보다 느려지기도 하지만 대다수의 경우 PyPy가 가장 빠르다. {{ㅊ|뭐지 이 말장난은}}<ref>PyPy는 파이썬으로 파이썬 [[인터프리터]]를 구현했다.</ref> 그리고 그 실체는 '''Python으로 손쉽게 [[Just-in-time 컴파일|JIT 컴파일러]]를 구현할 수 있는 언어 구현 툴킷'''. | |||
[[Python]]으로 구현한 Python 구현이자 가장 빠른 Python 구현체. | |||
[http://morepypy.blogspot.kr/2010/12/we-are-not-heroes-just-very-patient.html 우리는 영웅이 아닙니다. 다만 인내심이 아주 많았을 뿐.] | [http://morepypy.blogspot.kr/2010/12/we-are-not-heroes-just-very-patient.html 우리는 영웅이 아닙니다. 다만 인내심이 아주 많았을 뿐.] | ||
PyPy는 크게 두 부분으로 구성되어 있다. | PyPy는 크게 두 부분으로 구성되어 있다. | ||
13번째 줄: | 10번째 줄: | ||
구체적으로 어떻게 빨라질 수 있는지는 다음 글들을 참조. | 구체적으로 어떻게 빨라질 수 있는지는 다음 글들을 참조. | ||
* [http://blog.dahlia.kr/post/5124874464 PyPy가 CPython보다 빠를 수 있는 이유] | * [http://blog.dahlia.kr/post/5124874464 PyPy가 CPython보다 빠를 수 있는 이유] | ||
* [http://j.mearie.org/post/5125952364/why-is-pypy-faster-than-cpython meta-tracing JIT에 대한 설명] | * [http://j.mearie.org/post/5125952364/why-is-pypy-faster-than-cpython meta-tracing JIT에 대한 설명] | ||
20번째 줄: | 16번째 줄: | ||
== 간단한 원리 == | == 간단한 원리 == | ||
파이썬 언어로 파이썬 컴파일러(pypy)를 만든 후 원래 있던 컴파일러(Cpython 등)에 돌린다. 그리고 업데이트를 할 때는 수정한 것을 또 pypy로 컴파일한다.->무한 반복 | 파이썬 언어로 파이썬 컴파일러(pypy)를 만든 후 원래 있던 컴파일러(Cpython 등)에 돌린다. 그리고 업데이트를 할 때는 수정한 것을 또 pypy로 컴파일한다.->무한 반복 | ||
== 외부 링크 == | == 외부 링크 == | ||
* [http://pypy.org 공식 웹사이트] | * [http://pypy.org 공식 웹사이트] | ||
{{각주}} | {{각주}} | ||
[[분류:컴퓨터 프로그래밍]] | [[분류:컴퓨터 프로그래밍]][[분류:파이썬]] |
2022년 1월 2일 (일) 13:13 기준 최신판
Python으로 구현한 Python 구현이자 가장 빠른 Python 구현체. 일부 상황에서는 다른 구현체들보다 느려지기도 하지만 대다수의 경우 PyPy가 가장 빠르다. 뭐지 이 말장난은[1] 그리고 그 실체는 Python으로 손쉽게 JIT 컴파일러를 구현할 수 있는 언어 구현 툴킷.
우리는 영웅이 아닙니다. 다만 인내심이 아주 많았을 뿐.
PyPy는 크게 두 부분으로 구성되어 있다.
- Python으로 작성된, RPython 컴파일러와 인터프리터 제작 프레임워크
- RPython 문법으로 작성된 Python 인터프리터
그래서 RPython으로 2번의 코드를 돌리면 네이티브 코드로 된 PyPy 구현이 나오고, 그걸 다시 RPython을 실행하는 데에 쓰는 식으로 개발을 진행한다.
구체적으로 어떻게 빨라질 수 있는지는 다음 글들을 참조.
이 문서는 Python 문서보다 먼저 만들어졌다.
간단한 원리[편집 | 원본 편집]
파이썬 언어로 파이썬 컴파일러(pypy)를 만든 후 원래 있던 컴파일러(Cpython 등)에 돌린다. 그리고 업데이트를 할 때는 수정한 것을 또 pypy로 컴파일한다.->무한 반복