IronPython: How many script engines should I have?
One ScriptEngine per AppDomain is fine. To isolate your scripts, make sure that each one is executed in its own ScriptScope. By reusing the ScriptEngine, IronPython won't have to recompile any imported modules, which is generally the slowest part of IronPython, especially if they are short-running scripts.
Generally speaking, should I keep one ScriptEngine for the life of the application or should I create and destroy them as needed?