我正在做一个项目,需要我在 python 中重复运行一个 java 函数(这就像在 python 中设计一个学习算法但值函数是在 java 中提供的)
那么这种情况下的做法是什么?我应该每次都使用 subprocess.run() 调用 java 函数还是应该使用 Py4J、Jython 或 JPype 之类的东西?使用 subprocess.run() 和其他有什么区别?
效率应该是最关心的问题,因为我需要重复运行相同的java 函数。
我正在做一个项目,需要我在 python 中重复运行一个 java 函数(这就像在 python 中设计一个学习算法但值函数是在 java 中提供的)
那么这种情况下的做法是什么?我应该每次都使用 subprocess.run() 调用 java 函数还是应该使用 Py4J、Jython 或 JPype 之类的东西?使用 subprocess.run() 和其他有什么区别?
效率应该是最关心的问题,因为我需要重复运行相同的java 函数。
subprocess有两个问题。如果两者都不相关,它会正常工作。
subprocess它正在执行与您在背后执行的相同类型的序列化,并且对于您拨打的每个电话都不止于此,并且常见问题解答通过说性能不是优先事项来证明这一点。(Spark 只是忽略了所有这些,并为所有事情使用自己的通道。)subprocess你不必一直启动和拆除 JVM 更好,但是在双方都编写一个套接字协议有点小比在命令行上存储文件和传递文件名更多的工作。(不是一个巨大的障碍,但如果你以前从未做过这种事情,那就是个问题。)