1

我有一个查询 VmWare 主机信息的 powerCLI 脚本。我可以通过这样做从java运行脚本:

Runtime runtime = Runtime.getRuntime();
String cmd = "powershell -ExecutionPolicy RemoteSigned -noprofile -noninteractive -file \"" + scriptPath + "\"";
Process proc = runtime.exec(cmd);

我已经验证该脚本在从 Powershell 命令行或通过 Java 运行时的工作方式相同。但是,我反复注意到,当从 Java 调用时,大约需要 45 秒才能完成(相比之下,从命令行大约需要 20 秒)。

知道为什么性能差异吗?谢谢

编辑:为了澄清:在我的 powerCLI 脚本中,我捕获开始和结束时间,然后从脚本中打印出持续时间。从 Powershell 脚本打印输出中观察到提到的 45 与 20 秒。所以这个时间不包括与调用和返回相关的开销。

4

2 回答 2

0

好吧,还有很多事情要做,你必须得到一个运行时的实例,运行 powershell 并传递一个脚本,然后回调到运行时,说程序已经运行完毕。

它只是 Java 开销。

于 2012-11-12T06:33:09.150 回答
0

如何加载 PowerCLI 管理单元?Windows InternetSettings 中有一些验证管理单元来源的优化。您可以将其关闭。我不确定Java(或根本)如何考虑这些设置。阅读这篇文章http://goo.gl/PGUqa并尝试那里的解释。

于 2012-11-23T09:31:53.297 回答