pythonCPython和PyPy区别
python是⼀种。但这种语⾔有多种实现,⽽且与其他语⾔不同,python并没有⼀个专门的机构负责实现,⽽是由多个社区来实现。
其中使⽤的叫做python,在于别的语⾔开发的python对⽐时为避免歧义通常称为CPython。
同样的,使⽤的叫做JPython,使⽤开发的叫做IronPython。
⽽PyPy与CPython的不同在于,别的⼀些python实现如CPython是使⽤的⽅式,这样的实现⽅式在性能上是很凄惨的。⽽PyPy使⽤了JIT(即时编译)技术,在性能上得到了提升。
具体讲讲cpython和pypy:
CPython:是⽤C语⾔实现Pyhon,是⽬前应⽤最⼴泛的解释器。最新的语⾔特性都是在这个上⾯先实现,基本包含了所有第三⽅库⽀持,但是CPython有⼏个缺陷,⼀是(GIL)全局锁使Python在多线程效能上表现不佳,⼆是CPython⽆法⽀持JIT(即时编译),导致其执⾏速度不及Java和Javascipt等语⾔。于是出现了Pypy。
Pypy:是⽤Python⾃⾝实现的解释器。针对CPython的缺点进⾏了各⽅⾯的改良,性能得到很⼤的提升。
最重要的⼀点就是Pypy集成了JIT。但是,Pypy⽆法⽀持官⽅的C/Python API,导致⽆法使⽤例如Numpy,Scipy等重要的第三⽅库。这也是现在Pypy没有被⼴泛使⽤的原因吧。
Python的:
1、由于Python是动态编译的语⾔,和C/C++、Java或者Kotlin等静态语⾔不同,它是在运⾏时⼀句⼀句代码地边编译边执⾏的,⽽Java是提前将⾼级语⾔编译成了JVM字节码,运⾏时直接通过JVM和机器打交道,所以进⾏密集计算时运⾏速度远⾼于动态编译语⾔。
2、PyPy,它使⽤了JIT(即时编译)技术,混合了动态编译和静态编译的特性,仍然是⼀句⼀句编译源代码,但是会将翻译过的代码缓存起来以降低性能损耗。相对于静态编译代码,即时编译的代码可以处理延迟绑定并增强安全性。绝⼤部分 Python代码都可以在PyPy下运⾏,但是PyPy和CPython有⼀些是不同的。
解释执⾏与编译执⾏的区别
看到了解释执⾏与编译执⾏两个专业词汇,看着熟悉,但不甚理解,然后在⽹上搜索了⼀下。
python转java代码对于我们平时写的代码,⼀般计算机是没办法直接识别的,需要相应的编译器将其编译层机器代码(⼀些计算机可以直接识别的⼆进制代码),机器才能执⾏。
编译执⾏,顾名思义,要先编译再执⾏,这⾥需要有⼀个编译器,来将我们的代码全部编译成机器代码,然后进⾏执⾏。因为先整体进⾏编译,所以这⾥会⽣成编译后的机器代码。
解释执⾏,则是需要⼀个解释器,它会将我们的⼀句句解释成机器代码来执⾏,可以认为是,解释⼀句,执⾏⼀句。在这个过程中,不会⽣成中间⽂件。
通过对⽐发现,编译执⾏,只需要编译⼀次,多次运⾏。⽽解释执⾏的话,每运⾏⼀次程序,都要经过解释器的解释过程。
针对优缺点,可以从以下⼏个⽅⾯分析。
从启动效率来看,解释执⾏不需要进⾏编译操作,⽽编译执⾏,要经过编译过程。解释执⾏启动速度更快。
从运⾏效率来看,因为编译执⾏只需要编译⼀次,以后再运⾏就⽆需编译,⽽解释执⾏每次都要经过解释过程,所以编译执⾏效率更⾼。从内存使⽤⽅⾯来看,编译执⾏需要⽣成编译后的机器码⽂件,⽽解释执⾏时逐句解释执⾏,所以解释执⾏对内存占⽤更少。
从跨平台的⾓度来看,因为解释执⾏每次可以根据不同的平台进⾏解释,例如js在linux和windows都可以运⾏,⽽C语⾔在windows下编译后的⽂件,只能在windows下才⾏执⾏。
对于⼤型项⽬来说,⽐较注重运⾏效率,核⼼代码⼀般都是采⽤编译执⾏的语⾔。⽽对于⼀些简单的操作,可以考虑使⽤解释执⾏的语⾔。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。