2009-07-20 3 views
0

내가 IronPython의를 사용하여 내 웹 어플리케이션 중 하나를 확장하기 위해 노력하고있어, 불행히도 아래 코드는 매우 느리게 실행 :ASP.NET MVC에서 재사용 할 값 비싼 객체를 저장하고 있습니까?

 var engine = Python.CreateEngine(); 
     SourceCodeKind st = SourceCodeKind.Statements; 
     string source = "print 'Hello World'"; 
     var script = engine.CreateScriptSourceFromString(source, st); 
     var scope = engine.CreateScope(); 
     script.Execute(scope); 

내가 파이썬 엔진의 생성도 같이, 대부분의 시간을 가지고있다 있으리라 믿고있어 파이썬과 같은 인터프리터 언어는 상대적으로 빠르게 실행되어야합니다.

따라서 내 가정이 맞다고 가정합니다. 매번 파이썬 엔진을 만들어야하는 비용을 절감하기 위해 파이썬 엔진을 저장할 수 있습니까? 아니면 이것을 할 수있는 더 좋은 방법이 있습니까?

앤서니

답변

1

엔진에 대한 액세스가 스레드 안전 경우, 당신은 단순히 어딘가에 정적 인스턴스 변수에 저장할 수 있습니다.

액세스가 스레드 안전하지 않으면 액세스를 동기화해야합니다 (인스턴스를 풀링하여 잠금 경합을 줄임).

관련 문제