python需要在虚拟机上运行吗,
本文主要介绍python虚拟机解释器及其运行过程。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
目录
python虚拟机解释器什么是python解释器1。解释语言和编译语言2。python解释器3。python程序运行过程python虚拟机在python上的性能
python虚拟机解释器
我抽空翻看了几年前买的一本python的书,OREILLY的【python学习手册】,中译本,很厚。
可惜我读的很少,这也是我简历里只写python的原因,担心找虐。java的学习价值虽然更大,但是平时用不上,忘得也快。再加上做题的时候觉得python更得心应手(废话,别的你都不熟悉),所以决定把书看完,把以前不知道或者忽略的知识细节记录下来。
什么是python解释器
1. 解释性语言和编译性语言
说到解释器,大家之前都听说过解释性语言和编译性语言。首先,不管是哪一种,源代码对只知道二进制指令的计算机来说都是不可读的。所以要想让程序执行,首先要把源代码转换成二进制指令,也就是机器码。
那么,转换将在何时进行?
有些语言要求代码必须提前转换一次。这是一种编译语言,使用的转换工具叫编译器,比如C语言,C,有些语言可以在执行的同时进行转换,用到哪里就转到哪里。这是一种解释性语言,使用的转换工具叫做解释器,比如python和javascript。
Java比较特殊,编译和解释都有。但是编译不是直接编译成机器码,而是编译成字节码,然后拿到虚拟机上执行。这样设计的初衷是兼顾跨平台时的执行效率,这里就不展开了。
好了,这就是基础。
2. python解释器
Python解释器是让其他程序运行的程序,写出来的python代码必须在解释器中运行。这个东西在我们装python的时候就已经装了。
所以,现在我打印(hello world),我可以运行它,控制台可以看到文本的输出。
3. python程序运行过程
上面的代码行很简单,但是python通过两个步骤运行它:
将源代码编译成字节码,并将字节码转发给虚拟机。
字节码编译
可以理解为翻译。print(hello world)翻译成字节码,字节码会保存在后缀为的文件中。pyc,实际上是编译过的。py源代码。
这些字节码比源代码运行得快得多。为什么?
因为下一次运行程序时,如果源代码在最后一个字节码保存后没有被修改,Python将加载。pyc文件并跳过编译步骤。
当需要重新编译时,python会自动检查源文件和字节码文件的时间戳。如果您再次保存源代码,那么在程序下次运行时,字节码将自动重新创建。
python虚拟机
Python虚拟机,缩写为PVM,会在有字节码文件的时候送到PVM执行。
请注意,PVM不是指一个独立的程序,它不需要安装。PVM可以理解为Python的运行引擎,是一个迭代运行字节码指令的大循环,一个接一个地完成操作,直到结束。
从技术角度来看,PVM是最后一步的解释者。
关于python的性能
众所周知,python的缺点是运行速度慢。但其实这里的慢只是相对的。与C、C之类的编译语言相比,执行速度不够快。
为什么?
还提到python会把源代码转换成字节码,然后再解释字节码。但是为了更好的跨平台,这里的字节码是平台无关的格式,所以不是底层的二进制代码。到目前为止,只要不是对运行速度有严格要求的领域,比如数值计算或者动画,往往要求核心处理单元至少以C语言的速度执行。python对于大部分应用还是可以胜任的。
相比其缺点,python可以提高开发效率,这一点相信是很多人喜欢的重要因素。
以上是python虚拟机解释器的详细内容及其运行过程。更多关于python虚拟机解释器的信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。