解释执行与编译执行的区别

    今天在看到一篇关于分层编译优化的文章时,看到了解释执行与编译执行两个专业词汇,看着熟悉,但不甚理解,然后在网上搜索了一下,说一下自己的理解。

    对于我们平时写的代码,一般计算机是没办法直接识别的,需要相应的编译器将其编译层机器代码(一些计算机可以直接识别的二进制代码),机器才能执行。

    

    编译执行,顾名思义,要先编译再执行,这里需要有一个编译器,来将我们的代码全部编译成机器代码,然后进行执行。因为先整体进行编译,所以这里会生成编译后的机器代码。

    解释执行,则是需要一个解释器,它会将我们的一句句解释成机器代码来执行,可以认为是,解释一句,执行一句。在这个过程中,不会生成中间文件。

    通过对比发现,编译执行,只需要编译一次,多次运行。而解释执行的话,没运行一次程序,都要经过解释器的解释过程。

   

     针对优缺点,可以从以下几个方面分析。

    从启动效率来看,解释执行不需要进行编译操作,而编译执行,要经过编译过程。解释执行启动速度更快。

    从运行效率来看,因为编译执行只需要编译一次,以后再运行就无需编译,而解释执行每次都要经过解释过程,所以编译执行效率更高。

    从内存使用方面来看,编译执行需要生成编译后的机器码文件,而解释执行时逐句解释执行,所以解释执行对内存占用更少。

    从跨平台的角度来看,因为解释执行每次可以根据不同的平台进行解释,例如js在linux和windows都可以运行,而C语言在windows下编译后的文件,只能在windows下才行执行。


     对于大型项目来说,比较注重运行效率,核心代码一般都是采用编译执行的语言。而对于一些简单的操作,可以考虑使用解释执行的语言。

  • 16
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值