zoukankan      html  css  js  c++  java
  • python是解释型还是编译型

    参考借鉴了一些网络上的文章,大概搞清楚python的执行过程。

    python是解释型还是编译型

    Python和Java/C#一样,也是一门基于虚拟机的语言,先来从表面上简单地了解一下Python程序的运行过程。

    在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。

    在命令行中如何执行一个Java的程序:

    javac hello.java
    java hello
    

    在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当执行python hello.py时,他也一样执行了这么一个过程,所以应该这样来描述Python,Python是一门先编译后解释的语言

    简述Python的运行过程

    先来说两个概念,PyCodeObject和pyc文件。

    PyCodeObject则是Python编译器真正编译成的结果。

    当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。

    当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。

    故,pyc文件其实是PyCodeObject对象的一种持久化保存方式。

    pyc的目的是重用

    总结

    源代码在编译器编译成字节码(PyCodeObject)放在内存中,PVM解释执行字节码。

    第二次运行,直接读取字节码,PVM解释执行字节码,省去了编译的时间。

    15-07-19-ED96ze

    参考

    说说Python程序的执行过程

    python程序是如何运行的
    谈谈 Python 程序的运行原理

  • 相关阅读:
    CMS、G1收集器
    一文入门Redis
    一文解析TCP/UDP
    ubuntu官方源
    一、单体架构分析
    netty简介2
    netty简介
    安装vmware tool
    jdk1.8安装(转载)
    HTTP1.0、HTTP1.1 和 HTTP2.0 的区别
  • 原文地址:https://www.cnblogs.com/hiyang/p/12973299.html
Copyright © 2011-2022 走看看