2009-07-20 2 views
0

Я пытаюсь расширить один из моей WebApps использования 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); 

Я предполагаю, что создание Python Engine занимает большую часть времени, так как даже интерпретируемый язык, такой как Python, должен работать относительно быстро.

Итак, если мои предположения верны; могу ли я сохранить Python Engine где-нибудь, чтобы сэкономить расходы на его создание каждый раз? Или есть лучший способ сделать это?

Энтони

ответ

1

Если доступ к двигателю потокобезопасен, вы можете просто хранить его в статической переменной экземпляра где-то.

Если доступ не является потокобезопасным, вы должны синхронизировать с ним доступ, возможно, объединяя экземпляры, чтобы уменьшить конфликт блокировок.

Смежные вопросы