簡體   English   中英

從Java調用Python函數(沒有Jython,因為它太慢了。)

[英]Calling Python Functions from Java (Without Jython, because it is too slow.)

我需要能夠從Java調用Python函數,並獲得這些函數的返回值,這些返回值僅應為原語。
我也不需要用Python或類似的東西訪問Java對象。
但是,最重要的是,我需要速度。 我需要能夠在應用程序開始時加載腳本,然后以不同的時間間隔調用某些函數,有時有時會變得很小(每秒30-40次)。
這就是為什么我不認為Jython會為我工作的主要原因:它擁有我不需要的各種東西,而且運行速度非常慢。

因此,這些是我的約束/要求:

  • 需要快速
  • 我需要調用python函數並獲取其結果
  • 該腳本應僅加載一次

你們是否知道在預加載的腳本中簡單地調用Python函數的另一種方法(這樣就不必每次調用函數都一次又一次地加載腳本)?

(PS:我搜索了很多內容,發現所有鏈接都沒有回答我的問題(例如,用Java調用Python嗎? ),所以我認為這不是重復的

您可以編寫一些JNI代碼來嵌入CPython解釋器。

您可以編寫一個將作為守護程序(或Web服務或其他服務)運行的Python程序,並通過某種網絡連接到它。 我在這里含糊其詞,因為這是一個廣泛的問題,有許多可能性。

我不知道以上兩種方法實際上都比調用Jython更快。 請注意,您可以加載一次Jython解釋器,然后將其重新用於每個函數調用。

如果您用Java重寫了Python函數怎么辦? 如果您正試圖結合多種語言,則甚至可以動態加載它。 另外,Java8帶有(新的)JavaScript引擎。 您可以使用JavaScript而不是Python。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM