這是我的問題。我有一個現有的.jar文件,我必須在我的程序中使用。但是,該程序是用Python編寫的。從Python運行Java jar文件的最快方法?
由於我的程序需要很長時間才能運行(在大型開發語料庫上的命名實體標記器),我使用cProfiler對其進行了配置並使用line_profiler對其進行了配置。似乎有92%的時間花在了這項工作上。
我目前使用下面的代碼:
import subprocess as sub
sub.call(["java", "-jar", "-Xmx512m", "MyFile.jar",
featuresFileName, numIterations, featureCutOff])
我在其他地方見過子VS POPEN和其他的點點滴滴,也沒有找到,不需要子或OS調用一個很好的解決方案(中當然,可能沒有任何)。
我真的很感謝在Python腳本中運行.jar文件的最快方法。但請注意,我無法修改Java代碼,也無法與該代碼的開發人員進行交流。
另外,我不知道這是否會有所幫助,或者我只是在這裏抓住吸管,但也許有一種方法可以讓上述過程在後臺保持sub.call()
,以某種方式保持JVM運行(?),以便我可以簡單地調用jar文件。也許這可以幫助降低啓動成本?順便說一句,我是一個總的Java新手(主要是C++,C#,Python的經驗),所以我的問題可能沒有任何意義 - 我提前道歉...
我也朝着這個方向努力......不幸的是,我必須通過我的算法每次都運行一次,當我意識到我意識到我沒有併發的機會。 – mlnyc 2012-03-17 18:19:49
這聽起來像是如果你想讓它更快,你將不得不改變Java代碼。提高啓動時間的標準方法是將jar作爲服務運行,您可以通過添加另一個調用此jar的jar來執行此操作。這有一個好處,就是你的服務一直在運行(即沒有啓動) – 2012-03-17 18:26:29
這正是我剛纔編輯我的問題,要求:)應該先刷新頁面...我會嘗試它,將張貼當我得到一些結果時......回覆謝謝! – mlnyc 2012-03-17 18:41:38