【发布时间】:2012-03-17 17:48:42
【问题描述】:
这是我的问题。我有一个必须在我的程序中使用的现有 .jar 文件。但是,该程序是用 Python 编写的。
由于我的程序需要很长时间才能运行(大型开发语料库上的命名实体标记器),因此我使用 cProfiler 对其进行了分析,并使用 line_profiler 对其进行了衬里分析。似乎 92% 的时间都花在了这项任务上。
我目前正在使用以下代码:
import subprocess as sub
sub.call(["java", "-jar", "-Xmx512m", "MyFile.jar",
featuresFileName, numIterations, featureCutOff])
我在某处读到过有关 subprocess vs Popen 和其他零碎的信息,但找不到不需要子进程或 os 调用的好解决方案(当然,可能没有)。
我非常感谢有关从 Python 脚本中运行 .jar 文件的最快方法的建议。但是请注意,我无法修改 Java 代码,也无法与该代码的开发人员交谈。
另外,我不知道这是否会有所帮助,或者我只是在这里抓住稻草,但也许有一种方法可以将上面sub.call() 中调用的进程保持在后台,以某种方式保持 JVM运行(?),以便我可以简单地调用 jar 文件。也许这可以帮助降低启动成本?顺便说一句,我是一个 Java 新手(主要是 C++、C#、Python 经验),所以我的问题毫无意义 - 我提前道歉......
【问题讨论】:
标签: java python performance optimization