몇 가지 기본 사항 :
- 파이썬 메소드 호출은 해석되는 본질 때문에 "비싸다" . 이론적으로 코드가 충분히 단순하다면 파이썬 코드를 분해하면 가독성과 재사용 외에도 부정적인 영향을 미칩니다 ( 이는 개발자에게는 큰 이익이 될 수 있습니다 ).
- 단일 책임 원칙 (SRP)은 코드를 읽기 쉽게 유지하고 테스트 및 유지 관리가 더 쉽습니다.
- 이 프로젝트에는 읽을 수있는 코드, 테스트 및 시간 성능을 원하는 특별한 종류의 배경이 있습니다.
예를 들어, 여러 메소드 (x4)를 호출하는 이와 같은 코드는 다음 중 하나 인 것보다 느립니다.
from operator import add
class Vector:
def __init__(self,list_of_3):
self.coordinates = list_of_3
def move(self,movement):
self.coordinates = list( map(add, self.coordinates, movement))
return self.coordinates
def revert(self):
self.coordinates = self.coordinates[::-1]
return self.coordinates
def get_coordinates(self):
return self.coordinates
## Operation with one vector
vec3 = Vector([1,2,3])
vec3.move([1,1,1])
vec3.revert()
vec3.get_coordinates()
이것과 비교하여 :
from operator import add
def move_and_revert_and_return(vector,movement):
return list( map(add, vector, movement) )[::-1]
move_and_revert_and_return([1,2,3],[1,1,1])
이와 같은 것을 병렬화하면 성능이 저하되는 것은 상당히 객관적입니다. 그것은 단지 예일뿐입니다. 내 프로젝트에는 수학과 같은 몇 가지 미니 루틴이 있습니다. 작업하기가 훨씬 쉽지만 프로파일 러는 싫어합니다.
고유 한 구현이 직접 영향을 미치기 때문에 Python의 성능을 저하시키지 않으면 서 SRP를 어떻게 그리고 어디에서 수용합니까?
릴리스를 위해 인라인을 배치하는 일종의 전처리 기와 같은 해결 방법이 있습니까?
아니면 파이썬이 코드 분석을 완전히 처리하는 데 어려움이 있습니까?