Lua和Python相比,哪种语言更快更好.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Lua和Python相比,哪种语言更快更好

网上经常看到别人拿lua与python来进行对比,但是,本人认

为,lua与python根本就不具有可比性.原因如下:

1、两者的定位不同。python的定位在于自身的独立开发,即是

说python定位于自己能解决所有的问题。lua定位在与其它的代码,

尤其是C++代码进行相互配合的编译,单独的Lua本身没有任何的意

义。

2、站在解决问题的角度上看。python依靠自身越来越强大的库,

让编程者能实现越来越多,越来越复杂的问题。lua本身则必须与其

它的编译语言结合,才能解决问题。以C+++lua来举例。单独的C++,

因为C++的复杂性,在其解决问题提供方便的同时,也给程序员带来

了很大的麻烦,这些麻烦主要有两个方面:1,C++本身,特别是能用

好C++,对程序员就来说就是一个很高的要求。2,在解决复杂问题时,

C++程序结构的复杂性和逻辑实现的复杂性,给程序员对程序的改进

和维护带来了很大的麻烦。而C++与Lua的结合,让C++可以只负责

为lua提供各种基本的功能函数库,而Lua调用这些库来实现各种逻

辑功能。这种分工可以让程序员将程序中的基本代码库和逻辑实现代

码进行分离,使程序的效率和可维护有了很大的提高。所以,如果真

的要站在解决问题的角度来对python和lua进行对比的话。实际上,

是C++与python进行对比,而与lua无关。

3、python与C++对比,我觉得python与C++对比的优势就在于

其所提供的基本库,大大的降低了程序复杂度与可维护性对程序员本

身的要求。比如,同样的功能,如果是C++来做的话,可能其程序员

必须具备三年的经验,如果是python来做,而python又有解决问题

所需要的库的话,一个具有一年程序经验的程序员可能就能完成了。

但是,同样的,如果是C++与Lua结合来解决问题的话,可能就只需

要半个高级程序员和一个只有c语言一年经验的程序员就可以了。半

个高级程序员负责提供lua的函数库,另一个程序员,只需要用这些

代码库实现逻辑就行了。

但如果但就运行速度来比较的话,首先lua的虚拟机非常简单,

指令设计也很精简。最关键的是,lua是基于寄存器的虚拟机实现,

而python还有很多其他脚本语言是基于堆栈的,基于寄存器的虚拟

机字节码更简单,更高效,因为registerbasedvm的字节码,一般同

时包含了指令/操作数/操作目标等。

对比简单的加法操作:

stackbased生成的字节码大概是这样(仅仅是模拟,不代表实

际)

PUSH1

PUSH2

ADD//ADD的操作结果存放eax

PUSHeax//将结果push入堆栈,以便后面的代码不会覆盖eax

而registerbased生成的字节码大概是这样:

ADD1,2,R1

就一行,R1存放1+2的结果

就这么简答的操作就已经相差4条指令,所以基于寄存器的虚拟

机字节码运行更有效率。Lua的指令集非常非常非常简单,我对着指

令说明看了半个小时就能看懂lua的汇编代码了,再花十来分钟就能

手动修改lua二进制代码了,而我甚至没完整看过lua的源码。

综上所述,C+++lua的开发模式,和python源代码库开发+python

脚本开发模式其实是一样的。但是站在程序员的角度上来说,C++

+lua就更为简单一些,因为除去基本的lua解释代码外,C++可以为

lua动态提供各种函数库。而python程序员则必须受制于python所

提供的各种功能库。所以,如果解决一些具有普遍性和重复性的问题

时,python是有优势的,因为有很多的代码可以不用重写,而C+++lua

则必须重构。如果是解决一些非普遍的问题,如果python本身没有

提供解决这些问题的库的话,python程序员,也许要必须走回C++

的老路了。

AInspir是一套完全由飔拓自主研发,基于Hadoop和Spark技

术实现的企业级专业大数据分析挖掘平台,在它的帮助下,数据模型

的设计如同编写伪代码一样容易,用户只需关注模型的高层结构,而

无需担心任何琐碎的底层问题,可以快速建立数据模型来解决医疗、

金融等实际问题,让人工智能发挥出最大作用。

文档评论(0)

8d758 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档