Jython使用Python数据结构还是Java数据结构更快?

2024-05-16 14:04:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图理解在什么情况下是否应该使用Python类和/或Java类。在

如果创建一个专门的dictionary/Map类的类,那么应该从Python的dict或Java的HashMap或TreeMap等中获取一个子类。?在

仅仅因为Python更简单、更性感,所以很容易使用Python。Jyth似乎在慢慢地做一些事情。我最好说的是,我对这一切都不太清楚,也没有在夜间花几个小时仔细研究Python/Jython解释器代码,这让我感到羞耻。在

无论如何,我突然想到Java类可能运行得更快,因为代码可能需要做更少的工作。奥托也许还得做更多。或者可能里面什么都没有。有人知道吗?在


Tags: 代码mapdictionary情况jythonjava子类事情
2条回答

一般来说,决定不应该是速度的问题——无论如何,Python类都将以Java类的形式实现,即使它们不是从Java类继承的。因此,速度应该大致相当,并且最多可以为每个操作节省几个方法调用。在

更大的问题是你打算在班上做什么。如果您将它与Python api一起使用,那么您将希望使用Python类型,或者类似于它们的行为方式,这样您就不必执行整个映射协议的工作(只需要类更改的部分)。如果您使用的是JavaAPI,您肯定需要满足静态类型检查—这意味着您需要从Java类继承。在

如果这在您的情况下不容易回答,那么从Python开始,因为您(正确地;-)会发现它们“更简单、更性感”。如果您的类没有超出项目的边界,那么以后如果速度真的成为一个问题,那么这应该是很容易改变的—在这一点上,您可能还会考虑这样的问题:“它是否有助于在Java级别完全实现它?”你可能已经意识到,现在考虑这个问题还为时过早。在

使用Jython的要点是可以编写Python代码并在JVM上运行。不要把Python变成Java就毁了它。在

如果如果发现您的数据结构太慢,您可以顺带将其替换为Java版本。但这是为了编程的优化阶段,这将在后面进行。在


我想我应该试着回答你的问题。我猜使用本机Java结构会更快(因为JVM比Python解释器能推断出更多关于它们的信息),但这可能会被Jython接口所需的额外处理所抵消。只有测试才能证明!在

相关问题 更多 >