簡體   English   中英

Jython - 使用Python數據結構或Java數據結構更快嗎?

[英]Jython - is it faster to use Python data structures or Java ones?

我試圖了解是否應該使用Python類和/或Java類。

如果制作一個專業詞典/ Map類的類,應該是Python的dict中的一個子類,還是來自Java的HashMap或TreeMap等?

很容易使用Python,因為它們更簡單,更性感。 但Jython運行相對緩慢的一個原因(我覺得這樣做)似乎與動態類型有關。 我最好說我對這一切並不是那么清楚,並且沒有花費數小時的時間仔細研究Python / Jython解釋器代碼,這讓我感到羞恥。

無論如何,我發現Java類可能運行得更快,因為代碼可能需要做更少的工作。 OTOH也許它必須做得更多。 或許其中沒有任何內容。 誰知道?

使用Jython的關鍵是你可以編寫Python代碼並讓它在JVM上運行。 不要通過將Python變成Java來破壞它。

如果 - 如果 - 結果表明您的數據結構太慢,您可以直接用Java版本替換它。 但這是編程的優化階段,后來會出現。


我想我應該嘗試回答你的問題。 猜想使用本機Java結構會更快(因為JVM可以比Python解釋器更多地推斷出它們),但這可能與Jython接口所需的額外處理相抵消。 只有測試才能說明!

通常,決策不應該是速度之一 - 無論如何,Python類都將以Java類的形式實現,即使它們不從它們繼承。 因此,速度應該大致相當,並且每次操作最多可以節省幾個方法調用。

更大的問題是你計划在課堂上做什么 如果您將它與Python API一起使用,您將需要使用Python類型或類似行為的東西,這樣就不必執行整個映射協議的工作(只有您的類更改的位) )。 如果您正在使用Java API,那么您肯定需要滿足靜態類型檢查 - 這意味着您需要繼承Java的類。

如果在你的情況下這不容易回答,那就從Python開始,因為你(正確地;-)發現它們“更簡單,更性感”。 如果你的課程沒有超出你項目的范圍,那么如果速度確實成為一個問題,那么以后應該改變這一點應該是微不足道的 - 那時你也可能會考慮諸如“它是否有助於實現它”之類的問題完全在Java級別?“ 你有希望認識到的是現在想想的過早優化。

暫無
暫無

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

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