一、Python很慢?Python之父一句话亮了
Python的运行速度确实没有C或者Java快,但是有一些项目正在努力让Python变得更快。
Python代码简洁干净,但是大家都知道Python运行起来相对较慢---在CPU密集型的任务上慢于C、Java和Javascript(但是大多数服务都不是CPU密集型的)---但是有些团队希望Python是尽善尽美的,所以他们准备从内而外地提升Python的性能。
如果你想让Python在特定硬件上运行得快一点,你至少有两个选择,每个选择都有一些弊病:
a.你可以创建一个Python运行时的替代品,但是最后你会发现你重写了一遍CPython。
b.你可以重写现存的部分代码来利用一些性能优化的特性,缺点是程序员需要做更多的工作。
下面是五种已有的方案,帮助你提高Python的性能。
PyPy
在CPython的替代品中,PyPy是最显眼的那一个(比如Quora就在生产环境中使用它)。它也最有机会成为默认解释器,它和现存Python代码高度兼容。
![Python学习效率如何及Python的作用和用途前景怎么样?[图]](https://webproxy.poorya-velaei-d67.workers.dev/https://i-blog.csdnimg.cn/blog_migrate/3457e664d01b64d9b0db2ce86843a891.jpeg)
PyPy使用适时编译来加速Python,这项技术Google也在使用,Google在V8引擎中使用它加速Javascript。最近的版本PyPy2.5增加了一些提升性能的特性,其中有一项很受欢迎,它集成了Numpy,Numpy之前也一直被用来加速Python的运行。
使用Python3的代码需要对应地使用PyPy3。PyPy目前只支持到Python3.2.5,对Python3.3的支持正在进行中。
Pyston
Pyston,由Dropbox资助,使用LLVM编译器架构来加速Python,同样的它也使用了适时编译。相比于PyPy,Pyston还处于早期阶段,它只支持Python的部分特性。Pyston把工作分成两个部分,一部分是语言的核心特性,另一部分是把性能提升到可接受的程度。Pyston距离可以在生产环境使用还有一段距离
Nuitka
除了替换Python运行时,有些团队尝试将Python代码转换为能够在本地高效运行的其他语言的代码。其中著名的项目是Nuitka--把Python代码转换为C++代码--虽然运行时还是依赖Python运行时。这样限制了它的可移植性,不过性能提升是可观的。长期规划中,Nuitka还准备让C语言能够调用Nuitka编译的Python代码,这样性能提升将更加明显。
Cython
Cython(Python的C语言扩展)是Python的超集,它能把Python代码编译成C代码,并与C和C++进行交互。它可以作为Python项目的扩展使用(重新性能要求高的部分),或者单独使用,不涉及传统的Python代码。缺点是你写的不是Python,所以需要手动迁移,缺乏可移植性。
据说,Cython提供了一些特性来让代码更高效,比如变量类型化,这本质上是C要求的。一些科学计算的包,如scikit-learn依赖Cython的一些特性来保持操作简洁快速。
Numba
Numba结合了上面几个项目的想法。学习了Cython,Numba也采用了部分加速的策略,只加速CPU密集型的任务;同时它又学习了PyPy和Pyston,通过LLVM运行Python。你可以用一个装饰器指定你要用Numba编译的函数,Numba继承Numpy来加速函数的执行,Numba不做适时编译,它的代码是预先编译的。
Python之父说:大部分觉得Python慢的应用都是没有正确地使用Python。对于CPU密集型的任务有多种方法来提升性能--使用Numpy来做计算,调用外部C代码,以及尽量避免GIL锁。由于GIL锁目前还无法被替代,所以有很多项目开始尝试一些短期可行的替代方案,当然这些方案也可能转变为长期的可选项。
二、朋友圈只有我没学python吗?
8055厂宣刘大编,北漂时曾经身无分文,迫不得已去餐馆打工。
很快,刘大编就凭借985的学历和3000字的简历在一众应聘者中脱颖而出。餐馆老板很欣赏刘大编的才华和那些洗的锃亮的餐盘。不过他告诉刘大编辑,要想转正,成为一个合格的洗盘小工,刘大编还需要一项重要的技能——Python。
“如果你还没听说过python,那你家小区一定没有电梯”。曾经,计算机语言是一种神秘的科学,懂得其中真谛的人就好像是可以通灵的萨满,能和人类最尖端的科技直接沟通。那时候的程序员是比尔盖茨,是凯文米特尼克,他们要家财万贯,手眼通天,每天都在上演《黑客帝国》,从来不穿格子衫。
而在我们不再使用电话线上网,可以花大把时间刷抖音逛pornhub的今天,计算机语言也随着程序员被拉下神坛,你可以在早八点的北京西二旗的十二号线看到他们的身影,没光环,不神秘,甚至抢不到座位。
然后python出现了。python的崛起是一件令人匪夷所思的事情,程序员没办法说服你用Chrome替换掉360浏览器,但是却能让python流行起来。这是一次软件工程师的文艺复兴,艾青诗选读后感(https://www.yuananren.com/duhougan/8121.html)也是程序员对时尚界的反攻,瑞士包和格子衫从被嘲笑的对象重新成为了时代的弄潮儿,国贸上班的Samantha也开始穿始祖鸟冲锋衣配LV的老花包。
程序员吐槽大会上小美被王建国附体:
“你只是希望你努力工作,为咱们家添砖加瓦。”
“什么java?python才是最好的语言!
在你面对python还处于“这是啥?怎么来的?怎么用?”的哲学三问时,你朋友圈里多了无数个打卡自己python课程的人,环肥燕瘦,应有尽有。
Python,就像他的缩写PY一样,是一种暧昧又温柔的计算机语言,无论是金钱,知识,还是智力都没有任何门槛。
如果说“零基础”是从开机学起,那“负基础”可能就是从直立行走开始教起了吧?另外,配合这个头像,我非常怀疑此“PY”并非彼“PY
你永远想不到数学考了30分的学渣、隔壁不会用智能手机的大爷、和他正随地拉屎的小孙子谁正在学python,就连代购都因为学习编程的缘故减少了发朋友圈的频率。
python已经成了一种生活方式,当你跟一个文学少女讨论《边城》的时候,她脑子里可能浮现的是python而不是沈从文。
以前女孩拒绝你的借口是去洗澡,现在是“对不起我要学python。”而相反,“来我家教我python”已经超越“来我家修电脑”和“Netflix&Chill”,成为年度最暧昧的一种邀请。
python悄悄走进你的生活,像病毒一样蔓延开来。等你回过神来的时候,人人都在学习这种计算机语言,除了你。
Python语言是荷兰人吉多·范罗苏姆在圣诞期间为了打发时间创造的,他的名字来源于“巨蟒剧团”——史上最伟大的喜剧团体。
和名字一样,Python相较于其他语言的门槛低,使用范围广,确实是一种实用又简洁的语言。
虽然什么才是最好的计算机语言现在仍有争议,但是python确实展现了自己的竞争力,还有最重要的一点——python工程师的发量是最茂盛的。
如果你仅仅是感兴趣学来玩玩,或者是用他做一些辅助的功能,做一些数据统计工作,那python是非常好的选择。不过你想把python作为主语言去找工作的话,情况就并不乐观了。
首先,python虽然入门很容易,但是仅仅是入门什么都做不了。就好像你学会了26个英文字母一样,你离会英语还差的远。而python就是一种学得越深越复杂的语言。
大部分人只学个入门或者初级根本没什么用,“我老师告诉我python最大的作用是用来写简历,我后来才知道他的意思是把python写在简历‘特长’里”。
像B站up主“CodeSheep”视频中说的一样,以目前国内的就业情况来看,以python作为主力语言的工程师就业面比较窄,而且对自身素质要求很高,这种水平通常不是在教育机构培训几天可以达到的。
“你不能指望新东方的厨师做饭多好吃,也别想着那些圈钱机构的培训生能有多高的专业水准。”
Python这种语言在1989年就出现了,2000年之后就开始被广泛使用,被TIOBE编程语言排行榜评为2010年度语言。可以说Python早就在业内火了十几年了,而近两年在国内的火爆,实际上又是教育机构的一次焦虑贩卖。
无论你是从事什么工作,总能在自己专业领域的网站上找到python的投放猎奇爱好者小理查德表示,在此之前他并不知道python是一种计算机语言的名字,而误点了教学视频之后,他沉迷其中无法自拔。
如果你在百度搜索python,前几页搜索结果都被培训班的“推广”霸占,恍惚中给人一种莆田系终于把触手伸到编程教育领域了的错觉。
作为焦虑传播的大本营,朋友圈更是少不了python得身影,从去年开始风变编程旗下得“python训练营”得广告就成功地出现在每一个焦虑的职场人朋友圈中,挑动着你脆弱的神经。
直到今年,这只熊猫头像的广告依然通过大数据窥视着你,猝不及防地出现在你最焦虑的夜晚。
在线下,python也在收割韭菜的路上高歌猛进,python的教学机构花了大量的投入在地铁上,地铁一开动,“0基础学python”的标语就在地铁窗外闪耀。那场景像极了走马灯,恍惚之间你已经死了,因为作恶多端,掉进了996地狱——有哪个天堂会逼你学编程呢。
很多人并非相信python真的能对他的生活有所帮助,只不过这件事能证明自己在努力,多少减轻一些自己的焦虑。
有句话叫“人生苦短,我用python”,这话说得就好像你终于找到机会把校花约到你家里,结果她刚进家门你就把门反锁上,拿出《五年高考三年模拟》让她划重点一样,充满魔幻现实主义。
刘大编打算辞职了,他在餐馆这几个月干的不错,学会了python之后,餐馆的管理变得井然有序。通过利用python,盘子刷的更干净了,菜也做得更香了。后厨的蟑螂们也学会了排队,并且懂事儿地不到前面招客人闹心。
老板很开心,说这样下去几天之后就可以在三里屯开一家分店了。刘大编后生可期,要让他去做新店店长。老板器重,这让刘大编十分感动
刘大编还没转正,不过他的盘缠攒够了,还有他的梦想要去实现。他脑海里检索了一圈python代码,还是词穷,不知如何向老板开口。
他这才发现,python能干任何事,却没办法帮自己写一封有人情味的辞职信。
本文探讨了Python的运行效率问题,介绍了PyPy、Pyston、Nuitka、Cython和Numba等提升Python性能的解决方案。同时,文章揭示了Python学习热潮的现象,描述了Python在不同场景中的广泛应用和其易学性,但指出深入学习和就业市场的挑战。
1991

被折叠的 条评论
为什么被折叠?



