不同方式的python实现的区别

python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,语言因其简洁性、易读性以及可扩展性受到欢迎。Python可用于图形处理、数学处理、文本处理、数据库编程、网络编程、简单爬虫、人工智能等。Python有不同的形式,常说的Python其实是CPython,除此之外,还有TythonPystonPyPy等,下面介绍一些:

 

 

CPython是标准Python,也是其他Python编译器的参考。通常提到“Python”一词,都是指CPython。CPython由C编写,将Python源码编译成CPython字节码,由虚拟机解释执行,没有用到JIT等技术,垃圾回收方面采用的是引用计数。

所以当有人问Python是解释执行还是编译执行,可以这样回答。如果需要广泛用到C编写的第三方扩展,或让大多数用户都能直接使用你的Python代码,那么还是使用CPython吧。

 

 JythonJVM上实现的Python,由Java编写。JythonPython源码编译成JVM字节码,由JVM执行对应的字节码。因此能很好的与JVM集成,比如利用JVM的垃圾回收和JIT,直接导入并调用JVM上其他语言编写的库和函数。

对于想在JVM上使用Python简化工作流程,或者出于某些原因需要在Python语言中使用Java的相关代码,同时无需用到太多CPython扩展的用户来说,极力推荐Jython。


 8.221.png


 IronPythonJython类似,不同的是IronPythonCLR上实现了Python,即面向.NET平台,由C#编写。IronPython将源码编译成TODOCLR,同样能很好的与.NET平台集成。即与Jython相同,可以利用.NET框架的JIT、垃圾回收等功能,

能导入并调用.NET上其他语言编写的库和函数。IronPython默认使用Unicode字符串。如果仅需要在Windows上开发较大的Python项目,条件允许的情况下,IronPython是个不错的选择。

 

这里说的PyPy是指使用RPython利用Tracing JIT技术实现的Python,而不是RPython工具链。PyPy可以选择多种垃圾回收方式,如标记清除、标记压缩、分代等。相对于CPython,PyPy的性能提升非常明显,但对第三方模块的支持有些不尽人意,

比如无法很好的支持使用CPython的C API编写的扩展,完全不支持使用SWIG、SIP等工具编写的扩展。就连NumPy,也要在编译器的层面上从头实现。即使实现了,也只能在Python层面中使用,无法供其他第三方模块在非Python环境中使用。

 

Pyston由Dropbox开发,使用C++11编写,采用Method-at-a-time-JIT和Mark Sweep——Stop the World的GC技术。Pyston使用类似JavaScript V8那样的多层编译,其中也用到了LLVM来优化代码。目前Pyston正在发展中,还不成熟,

但其前景是非常值得看好的。IPIDEA为您提供安全稳定、高效便捷的爬虫代理IP服务,提供代理IP资源的同时,还可以设置不同类型的HTTP代理,以及设置去重等等标准,是一个中间桥梁,可以根据用户的需求设置HTTP代理类型,

助您不间断获取行业数据,替您考虑资源质量问题,助您轻松跨入“互联网大数据”时代。


声明:本文来自网络投稿,不代表IPIDEA立场,若存在侵权、安全合规问题,请及时联系IPIDEA进行删除。

上一篇:动态代理ip有哪些作用

下一篇: ip工具可以实现哪些用途?