필자는 장기간에 걸친 계산이 포함 된 대규모 금융 가격 책정 프로그램을 연구하고 있습니다. 우리는 psyco의 선택적 적용으로 가속화 할 수있는 몇 가지 기능을 확인했습니다. 저의 경영진은 psyco를 스택에 추가 할 때의 이점을 평가 해달라고 요청했습니다. &내 프로젝트에 Psyco를 혼합 할 때 (있다면) 어떤 위험이 있습니까?
내 프로젝트의 중요한 특성을 감안할 때 "성능 향상"이 잠재적으로 안정성을 저하시킬 수있는 경우 허용되지 않습니다. 나는 psyco를 사용하여 더 많은 메모리를 사용하면서 추가적인 성능을 얻는다는 것을 읽었습니다. 이것이 문제가 될까봐 걱정됩니다.
내가 이런 식으로 일을 해요 : 모두에서
@psyco.proxy
def my_slow_function(xxx):
을, 우리는 더 이상 15 개 기능에 사이코을 적용 할 것으로 예상 -이 아주 많이 사용된다. 이 라이브러리에는 수천 개의 함수가 있으므로이 코드는 코드의 작은 하위 집합에만 영향을 미칩니다. 모든 기능은 작고, 수학적이며 무국적입니다.
- 가이는
- 우리의 오랜 설립 라이브러리에이 구성 요소를 추가 할 때 발생할 수있는 다른 문제가 실질적으로 더 많은 메모리를 사용하는 위험이 될 가능성이 있습니까? 참고로
이 플랫폼은 윈도우 32 비트 XP에
UPDATE 파이썬 2.4.4 : 그것은, 주요 잠재적 인 위험이 사이코가 추가되기 전에 프로그램보다 더 많은 메모리를 필요로하는 프로그램에 의한 것 같습니다 너무 이상적를 I psyco를 추가하면 시스템의 메모리 요구 사항이 크게 달라지는 지 확인하는 방법을 찾고 있습니다.
고마워요, 대단한 답변 –
더 많은 메모리를 사용하게 만드는 psyco에 대해 무엇입니까? 그것은 원래 함수 객체의 복사본을 메모리에 만듭니다 (아마도 아주 작은 것입니다). 또는 함수가 더 많은 메모리를 실행해야합니다. –
필자는 전문화 처리 단계를 수행하기 전에 수집해야하는 런타임 정보의 오버 헤드가 대부분이라고 생각합니다. 이것은 각 연산이 런타임 컨텍스트에 크게 의존 할 수 있기 때문에 Python과 같은 매우 높은 수준의 언어에서 필요합니다. Psyco PEPM '04에 자세히 설명되어 있습니다. http://psyco.sourceforge.net/doc.html –