性能:System.Diagnostics.Process与System.Management.Automation.PowerShell

时间:2013-12-29 03:28:03

标签: c# node.js performance powershell

在PowerShell团队的this blog post中,他们专注于豪华命令。

  1. 有没有办法在不加载任何PS命令的情况下调用Create(),使其像系统进程执行器(System.Diagnostics.Process的替代品)一样?我们如何使用System.Management.Automation.PowerShell执行以下操作:

    node.exe some_module input_file_path --switch1 --switch2=value2
    
  2. 如果可以1,下一个问题;这会比Diagnostics.Process.Start()

  3. 表现得更快
  4. 有没有办法在交互模式下(在后台线程中)调用PS实例,以交互模式运行node.exe来监听来自IRemoteSource的调用?相反; 为每次通话调用执行命令关闭

  5. 这是一种交互式模式方式,提升性能(给定IRemoteSource是否会使用大量node.js命令来调用?

1 个答案:

答案 0 :(得分:2)

是的,这很简单:

ps.AddScript("node.exe some_module input_file_path --switch1 --switch2=value2");

关于#2,我怀疑它会更快,因为有更多的机器可以支持PowerShell引擎/工作区。关于#3& #4你需要在这里解释一下你需要什么。什么是IRemoteSource以及它如何与node.exe交互? FWIW你可以在另一个线程上执行PowerShell引擎,只要node.exe正在运行,ps.Invoke()调用就不会返回。如果您需要主机应用程序和node.exe之间的交互,您可以查看实现PowerShell host interfaces