性能:系统.诊断.过程与系统.管理.自动化.PowerShell



在PowerShell团队的这篇博客文章中,他们专注于豪华的命令。

  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. 有没有办法保持PS实例以交互模式(在后台线程中)调用,运行节点.exe在交互模式下侦听来自IRemoteSource的调用?相反;调用、执行命令关闭每个调用。

  4. 交互模式方式是否会提高性能(鉴于IRemoteSource调用大块node.js命令过于频繁)?

是的,这是可能的,而且很简单:

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

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

最新更新