比Python快得吓人,PyPy极简入门,Python进阶必备

众所周知,Python非常强大,简单易学,又有很多轮子可以直接拿来用。

凡事有利必有弊,python运行速度慢。如果你要做一些很耗时间的事情,就会头疼。

这时候也许会有人建议你用C,C++等编程语言。

天啊,他们是开玩笑吗?换C语言有那么容易吗!

不过现在福音来了,不用换编程语言,也可以把速度提高很多倍。

这就是我今天要介绍的PyPy!

1 做个实验

这是一段普通的Python代码,计算从0到1亿之间的整数之和:

import time
from termcolor import colored

start = time.time()
number = 0
for i in range(100000000):
    number += i
    
print(colored("FINISHED", "green"))
print(f"Ellapsed time: {time.time() - start} s")

用默认的python解释器(CPython)运行,然后再用PyPy运行。

它们的运行时间对比大概是这样的:

在这里插入图片描述
当然,不同的机器运行可能会有少许差异,但是你可以看到非常明显的差异。

好吧,我就把这篇文章的目的明说了吧:

其实不需要马上用PyPy,但是你有必要知道它的存在,在必要的时候使用它。

下面这句话是Python的发明者说的:

“If you want your code to run faster, you should probably just use
PyPy.” – Guido van Rossum (creator of Python)

翻译成中文的意思是:

如果你想让代码运行的更快,你或许应该直接用PyPy.

2 PyPy是什么?

到底什么是PyPy?

难道我要再学习一门编程语言吗?

不不不!

PyPy只是另外一种Python代码执行引擎。你的Python代码可以在不做任何改动的情况下,直接运行在PyPy上。

就好像你原本开一辆夏利汽车,现在给你来了一辆法拉利!

同样是,同样的驾照和驾驶技术,你忽然就变得快乐(快了)起来。因为引擎变了,你的吸引力都变大了很多。

在这里插入图片描述

3 又快又好!

PyPy为什么可以这么快呢?

我们默认使用的cpytho解释器,它的执行过程是这样的:

Python源代码 -> 字节码 -> 一句一句解释成机器语言 -> 执行

而PyPy使用Just In Time(JIT)技术把Python代码直接编译成机器语言,大概过程是这样的:

Python源代码 -> 机器语言 -> 执行

就光看上面加粗的字的长度,你也看出PyPy肯定很快。

这是PyPy官网给出的比较综合的速度对比:

在这里插入图片描述
平均来说,PyPy比CPython快4.2倍。

它的好处除了速度快,还有省内存。这是官方说明:

在这里插入图片描述
更要命的是,PyPy使用它非常简单!

4 极简入门

1. 下载

去官网下载页面:

https://www.pypy.org/download.html

下载适合你的版本:

在这里插入图片描述
2. 配置环境变量

下载后随便解压到一个位置,并将这个目录添加到系统环境变量:

在这里插入图片描述
3. 使用pypy替换python命令

剩下的就是在运行python命令的地方,改成pypy3就行了。

比如打开交互式Python,直接运行pypy3就可以了:

在这里插入图片描述
再比如安装第三方库,先安装pip,然后运行和以前几乎一样的命令就行了:

pypy3 -m pip install XXX
  • 1

在这里插入图片描述

注:由于我很少使用 Windows电脑,本部分截图来源于机器学习算法与Python实战 ,作者海洋。

5 适用型和局限性

如果它那么快,又省内存,为什么不把默认的CPython直接改成pypy,让地球人都用pypy好了!

本文开头说过一句话,凡事有利必有弊,没有什么事情是完美的。

Pypy的好处:

  • 速度快,比CPython的平均快4.2倍。
  • 对于占用内存比较大程序(比如几百M),可以节约内存。
  • 适合长时间运行的代码。

但是它也有不小的局限性:

  • 适合纯Python的代码
  • 对于不是纯Python的代码(通常是调用C库的Python包,比如Numpy),可能有兼容性问题。现在它已经兼容Numpy了,但是可能有其他问题。

7 最后的建议

总的建议在文章开头已经给了:

1.你不需要马上用PyPy,除非你碰到了性能问题。

2.但是你有必要知道它的存在,在必要的时候使用它。

职业发展

作为一个代码打工仔,对于绝大部分程序员来说,想要成为牛逼的真正挣钱程序员的路还很长,一刻都不能懈怠。

我们无法从HR角度,或者技术leader的角度来臆测哪种状态的面试更能获取面试官青睐。但通过我们积攒的大量的面试经验,大家多少可以推断一些成为有竞争力的程序员的一些必要条件。

大佬云集、资料丰富

当初我在字节认识一个非常非常资深的前辈,他到字节比我早三年,但因为各种原因级别不是很高。我当时问他,既然你对现状如此不满,为什么不想着离开寻找更好的机会呢?

他沉思了片刻跟我说,他说我现在在这里虽然待着不顺心,但是我接触到的人都是非常优秀的。我遇到问题,还可以和你们讨论讨论。我如果出去了,我要是再遇到问题,可能连一个讨论的人都没有。

我当时听听只是觉得有道理,现在再回想起来,感受非常深刻。三观、格局、能力,能够进入大公司的,这三个方面一般都不会太差。别的不说,就拿个人能力而言,我曾出国出差过几个月,有幸见识了许多各种海外名校的同事,和他们学习交流人工智能,这真的让我AI有了更深层次的认识。

除了优秀的同事之外,大公司里往往还有丰富的内部文档和资料。我当时在字节内部看到了很多优秀的文章,也有很多优秀的技术沙龙和分享。现在想起来两年下来,也没有去过几次,文章和资料看得也不算多,现在想想颇为遗憾。别的不说,就拿推荐领域而言,近些年质量不错的论文往往都来源于大公司尤其是国内的大公司,以腾讯、华为和头条为主。除了公开的论文,公司内部还有很多技术相关的资料和文档,这些真的可以说是有价无市,非常珍贵。

Python 知识手册

Linux 知识手册

爬虫查询手册

而且,这些资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:

数据分析知识手册:

机器学习知识手册:

金融量化知识手册:

    知道你对python感兴趣,所以给你准备了下面的资料 

     关于Python技术储备

点击链接直达获取资料(安全链接,大家可放心点击)

Python学习路线(2023修正版)附涉及资料《Python学习资料》,已经打包好了,自取【ps:需要领取的资料(请备注清楚,查找与发送给你)】。因链接常https://mp.weixin.qq.com/s/UVxw0daFCgAMFhz9cfrjAQ

7e73a26ee5084210abb0c225c6bb1407.png 

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

9f49b566129f47b8a67243c1008edf79.png

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

8c4513c1a906b72cbf93031e6781512b.png

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

afc935d834c5452090670f48eda180e0.png?#pic_center

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

252731a671c1fb70aad5355a2c5eeff0.png

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

6c361282296f86381401c05e862fe4e9.png
d2d978bb523c810abca3abe69e09bc1a.png

这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费Python学习路线(2023修正版)附涉及资料《Python学习资料》,已经打包好了,自取【ps:需要领取的资料(请备注清楚,查找与发送给你)】。因链接常https://mp.weixin.qq.com/s/UVxw0daFCgAMFhz9cfrjAQ

7e73a26ee5084210abb0c225c6bb1407.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值