大家好,今天小编关注到一个有意思的话题,就是关于python与C语言java运行效率的问题,于是小编就整理了2个相关介绍Python与C语言Java运行效率的解答,让我们一起看看吧。
为什么Python比C++慢很多?
我尝试下用通俗的话来解释这个问题,有问题或者有更好的看法欢迎在评论区讨论。
C++是一门编译型语言,所有代码都会在编译阶段翻译成机器码,机器码就是系统能够直接理解的码,实际执行直接调用即可,只翻译一次机器码,所以很快。
而Python是一门解释性语言,解释性语言简单来说就是你可以通过比较简单的语句来表达你的逻辑关系和判断,然后跨平台去使用它,有着简单、方便的开发性能,因为运行一次翻译一次机器码,所以性能相比C++较差。
从运行效率看,C++确实比Python要好很多。首先,Python的东西比C++复杂,基本上所有变量都是对象。其次,Python是跨平台执行的,多了一层解释器,所以每次运行都要跑一遍,但C++一次编译就以后就不需要再编译了,除非代码改动,所以少了中间层自然快些。
从开发效率看,Python就要比C++要好不少,Python一两句可以搞定的逻辑,C++往往都要写一大堆,这不是黑,我也写C++。用C++可能写个东西终于写好了,搞不好过几天又内存泄漏,而且跨平台开发实在难受,这时候你就会想起Python的“人生苦短,我用Python”这句至理名言。
现在来看一个具体的例子,C/C++、JAVA以及Python的测试比较,用的是Win8、I5 4670k,内存8G的电脑配置。
这是因为Python在C上又多做了一层抽象。说白了就是把大多数常用功能都打包好了,比如数据结构和接口。学过C语言数据结构和算法都知道,用C实现个链表要自己定义结构,插入,排序之类的操作都自己写代码。而Python的list直接把这些基础的事儿都准备好了,程序员拿来直接用。
增加比较多抽象层高级功能后python自然运行就慢了很多,但是优势是省事儿了。实际上一个小白C程序员自己实现的链表性能上可能还不如Pthon的list,而且还可能有bug。
如何评价python和j***a的使用程度?
目前我带的开发团队中有两个团队使用J***a较多,一个团队使用Python较多,主要还是应用场景上的区别。
目前J***a团队主要涉及到的是企业级Web开发业务,涉及到的主要应用场景包括企业内部业务流程管理、物联网控制系统、大数据分析系统、多用户商务平台等重量级业务。基本上使用J***a开发的系统都比较重,开发周期相对较长,对性能要求相对较高。
目前在后端开发中团队也开始使用Scala结合J***a以进一步提高执行效率,按照目前的应用趋势来看,J***a在未来很长一段时间内应该还是企业级开发的主流语言。但是J***a并非完美,我始终认为J***a在复杂度上还是有点高。J***a的一个痛点是模块化始终不尽如人意,希望未来在模块化上J***a能有所突破。现在使用J***a几乎感受不到乐趣,现在的J***a越来越像是一个纯粹的工具,也许这是编程语言发展的必然归宿。
Python目前的落地应用也在Web开发上较多,目前使用Python的趋势比较明显,市场上出现了很多要求使用Python开发的项目,这在之前是很难想象的事情,市场总是非常敏感的。就在前段时间很多智能终端的控制系统甚至开始明确要求使用Python语言开发,我隐约看到了10多年前项目文档中要求使用J***a开发的情景。
就趋势来看Python可能增长点更多一些,因为现在跟大数据、人工智能关联的很多应用都会使用到Python,Python的场景应用也越来越明显,因为Python本就是一个应用级开发语言,落地应用并不是问题。但是现在大数据、人工智能很多环节也离不开J***a的支持,Scala更是构建在J***a基础之上的语言,所以J***a也许会走C的老路,路线不会扩张,但是在特定领域有绝对的优势。
不管怎么说Python老少皆宜,用Python还是比J***a多那么一点乐趣。按照介绍语言的惯例,写三个小代码,分别是Scala、J***a、Python的:
[_a***_]你对Python感兴趣,可以看看我在头条上写的关于Python学习的系列文章,也欢迎私信我一起交流。
到此,以上就是小编对于Python与C语言J***A运行效率的问题就介绍到这了,希望介绍关于Python与C语言J***A运行效率的2点解答对大家有用。