什么是Psyco?如何像Psyco一样快速制作Python

avatar 2020年3月19日07:37:07 评论 4,248

什么是Psyco?Psyco使python快速。困惑?是的,当我第一次听到这个消息时,我也感到困惑。Python已经快了,那为什么要使用psyco?这就是为什么我说。该博客不适用于新手和初学者。如果您已经在python中运行了很长时间,并且创建了大量代码,并且编写了很多代码,那么您将知道python快速需要紧凑而严格的编码。使用正确的编码类型,您可以使其变得既快速又紧凑。

但这需要时间和东西。您不能凭空创建紧凑且无错误的代码。这就是Psyco诞生的地方。Psyco只是一个python快速扩展模块,可加快python运行代码的执行速度。因此,您现在可能会感到困惑,使Python代码运行更快的模块?是的,就是这样。让我们更进一步。

一.Python及其真实本性

如果您以前用Java或C编写过代码,您可能会认为python运行起来比其他程序快得多。但这就是你错的地方。就原始性能而言,python肯定比C,Java或C#慢。但是python并不擅长提高原始性能。

只有初学者或新手才能进行原始编码。专业人士会进行适当的编码以及适当的缩进*。当您比较正确编译的代码并测量总内存使用量,初始启动时间,加载时间,然后在那个时间点,python运行非常快。

什么是Psyco?如何像Psyco一样快速制作Python

此外,如果您尝试编写用于创建服务器或东西的代码,则Java的速度非常快,甚至比C还要快。这是可能的,因为Java虚拟机可能会将热字节码编译为机器代码。在执行此操作时,它可能会充分利用CPU的每个功能。C语言通常不是这种情况,至少直到您离开实验室环境为止。现在假设,向您的客户分发了十几个优化的版本,那简直是行不通的。

因此,现在让我们回到重点,如果启动时间是一个问题(例如,对于服务器应用程序而言不是问题),Java可能不是最佳选择。例如,这还取决于您的热代码区域的位置:如果它们位于本机库中,并且具有一些Python快速代码来简单地将它们粘合在一起,那么您也将能够通过Python快速获得类似于C的性能。但是,尽管如此,至少在大多数情况下,脚本语言往往会变慢。

二.Psyco–确切地听起来

是的,您没看错。现在,让我们回到主要主题。现在,这是psyco开发人员在其网页中定义的内容:“将Psyco视为一种实时(JIT)编译器,有点像其他语言所使用的那样,它可以即时发出机器代码,而不是一步一步地解释Python程序。与传统的JIT编译器方法的不同之处在于,Psyco编写了同一块的多个版本(一个块只是一个函数的一部分),这些版本通过专门针对某些变量进行了优化(“种类”可以表示类型,但更为笼统)。结果是未修改的Python程序运行速度更快。

使用未经修改的Python解释器和未经修改的源代码,只需动态加载的C扩展模块,即可将速度提高2到100倍,通常是4倍。”简而言之,为了用一个简单的语句重新表述,Psyco将为您提供更多类似于Java的性能。您将获得较慢的启动时间和较高的内存使用量,以换取更快的算法。

话虽如此,测试Java和Python之类的语言时,应该记住某些事情。通过使用更适合该语言的结构,通常可以显着提高这些语言的代码速度(例如,使用Python快速实现列表理解,或者对于Java中的某些String操作使用char[]和StringBuilder)。

此外,对于Python而言,使用Psyco可以极大地提高程序速度。然后就是整个问题,即使用适当的数据结构并注意代码的运行时复杂性。要了解pythonpsyco,需要对python的eval_frame()函数有一个很好的了解。pythonpsyco所做的是将python的eval_frame函数转换为复合评估单元,而psyco在执行此操作时会占用大量内存。使用psyco比解释它容易得多。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: