java - 为什么 Java Processbuilder 运行命令比 Python Subprocess.check_output 慢 4000 倍

标签 java python performance subprocess processbuilder

我试图使用 Java processbuilder 为第三方 C 工具编写一个包装器。我需要运行这个流程构建器数百万次。但是,我发现速度有些奇怪。

我已经有一个用于 python 的第三方工具 C 工具的包装器。在 python 中,包装器使用 python subprocess.check_output。

因此,我使用相同的命令运行了 java 包装器 10000 次。另外,使用相同的命令运行 python 包装器 10000 次。

使用 python,我的 10000 次测试在大约 0.01 秒内运行。

使用 java processbuilder,它在 40 秒内运行。

有人可以解释为什么两种语言之间的速度差异很大吗?

您可以使用“time”等简单命令来尝试此实验。

最佳答案

Python 似乎没有生成子进程。这就是为什么它更快。

很抱歉造成困惑。

谢谢

关于java - 为什么 Java Processbuilder 运行命令比 Python Subprocess.check_output 慢 4000 倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29243748/

相关文章:

python - reportlab SimpleDocTemplate - 设置具有可变行数的表格的固定高度

python - 如何让我的 SWIG 扩展模块与 Pickle 一起工作?

c++ - C++ STL中的set和hashset有什么区别?

ajax 和数据库之间的 Java 库

python - Numpy:如何在某些元素包含额外的引号字符串时将字符串数组转换为 float

c++ - 指针访问或引用访问哪个更快?

asp.net - 并发用户的 Asp.Net 中出现异常会发生什么

java - 无法从 PC 找到 Android 应用程序创建的文件夹

java - 如何在没有spring框架的情况下读取配置文件(*.yaml *.properties)

java - 每当我在 JTextField 中写入时,Swing java JComboBox 就会消失