比c更快的编程语言,为什么某些编程语言比其他语言更快?

Eric J...

5

这是一个广泛的问题.

从根本上说,编译语言就像ASM一样被翻译成机器指令(操作码)(ASM也是一个抽象层).一个好的编译器实际上可能超出平均ASM编码器的结果,因为它可以检查大量代码并应用大多数程序员无法手动完成的优化规则(订购最佳执行指令等).

在这方面,所有编译语言都是"平等的".但是,有些人比其他人更平等.编译代码的执行情况从根本上取决于编译器的优异程度,更不用说特定语言了.某些功能(如虚拟方法)会导致性能下降(上次我检查虚拟方法是使用函数指针表实现的,尽管我的知识可能已在此处注明日期).

解释语言在程序执行时从根本上检查人类可读的语言,基本上需要在程序运行时期间等同于编译和执行阶段.因此,它们几乎总是比编译的对应物慢一些.智能实现将递增地解释执行的代码部分(以避免解释从未命中的分支),并缓存结果,以便给定的代码部分仅被解释一次.

还有一个中间立场,其中人类可读的语言被翻译成伪代码(有时称为P代码或字节代码).这样做的目的是使代码的紧凑表示能够快速解释,并且可以在许多操作系统中移植(您仍然需要一个程序来解释每个平台上的P代码).Java属于这一类.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值