织梦CMS - 轻松建站从此开始!

我的技术分享-房事

当前位置: 我的技术分享-房事 > 魅力塑造 > 文章页

PyPy为什么能让Python比C还快?一文了解内在机制

时间:2025-01-12 08:32来源: 作者:admin 点击: 230 次

文章浏览阅读525次,点赞15次,收藏17次。如果想让代码运行得更快,您应该使用 PyPy。」—— Python 之父 Guido van Rossum对于研究人员来说,迅速把想法代码化并查看其是否行得通至关重要。Python 是能够实现这一目标的出色语言,它能够让人们专注于想法本身,而不必过度为代
<p>「假如想让代码运止得更快&#Vff0c;您应当运用 PyPy。」—— Python 之父 Guido ZZZan Rossum</p> <p>应付钻研人员来说&#Vff0c;迅速把想法代码化并查察其能否止得通至关重要。Python 是能够真现那一目的的出涩语言&#Vff0c;它能够让人们专注于想法自身&#Vff0c;而没必要过度为代码格局等无聊的工作困扰。</p> <p>但是&#Vff0c;Python 有一个致命的弊病&#Vff1a;速度比 C、C &#43;&#43; 等语言慢不少。这么&#Vff0c;构建一个 Python 本型测试想法之后&#Vff0c;如何将其改动成快捷且高机能的工具&#Vff1f;但凡来说&#Vff0c;人们还要再停行一步工做&#Vff1a;将 Python 代码手动转换为 C 语言的代码。但假如 Python 本型自身就可以运止得很快&#Vff0c;这么转换代码的光阳就可以作一些更有意义的工作。</p> <p>而 PyPy&#Vff0c;刚好可以处置惩罚惩罚那一问题。它能够让 Python 代码运止得比 C 还快。</p> import timefrom termcolor import colored start &#61; time.time()number &#61; 0for i in range(100000000): number &#43;&#61; i print(colored(&#34;FINISHED&#34;, &#34;green&#34;))print(f&#34;Ellapsed time: &#123;time.time() - start&#125; s&#34;) <p>为了证真 PyPy 的速度&#Vff0c;运用默许的 Python 评释器和 PyPy 运止上述代码&#Vff0c;执止一个从整数 0 加到 100,000,000 的循环, 而后打印出运止光阳。运止结果如下&#Vff1a;</p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/direct/b567d9c3c0034bb1aab4e0bf598839d8.png&quot; /></p></p></p> <p>运止光阳 Python ZZZs PyPy</p> <p>那不是学术意义上的评价&#Vff0c;但该结果是令人诧异的。取约莫须要 10 秒钟的默许 Python 评释器相比&#Vff0c;PyPy 仅用 0.22 秒就完成为了执止。而且无需停行任何变动就可以间接将 Python 代码放到 PyPy 上。而同一台计较机上&#Vff0c;等效的 C 语言真现须要 0.32 秒&#Vff0c;PyPy 以至击败了最快的 C 语言。</p> <p><strong>为什么 PyPy 那么快&#Vff1f;</strong></p> <p>只管代码彻底雷同&#Vff0c;但代码的执止方式却大不雷同。PyPy 提升速度的法门是「立即编译&#Vff08; just-in-time compilation&#Vff09;」&#Vff0c;即 JIT 编译。</p> <p><strong>提早编译 </strong></p> <p>C、C &#43;&#43;、Swift、Haskell、Rust 等编程语言但凡是提早编译&#Vff08;AOT 编译&#Vff09;的。那意味着用那些语言编写代码之后&#Vff0c;编译器会将源代码转换成特定计较机架构可读的呆板码。也便是说正在执止步调时&#Vff0c;执止的其真不是本始源代码&#Vff0c;而是呆板码。</p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/direct/79ccd2fa9a584e9581837c2455ef1315.png&quot; /></p></p></p> <p><strong>评释语言 </strong></p> <p>取 C 语言等上述语言差异&#Vff0c;Python、JaZZZaScript、PHP 等语言给取另一种办法——评释语言。取将源代码转换为呆板码相比&#Vff0c;评释的历程中源代码是保持稳定的。每次运止步调时&#Vff0c;评释器都会逐止查察代码并运止。譬喻&#Vff0c;每个 Web 阅读器都内置了 JaZZZaScript 评释器。</p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/direct/4342a3298b744eb2943a3cfd00ee5bc5.png&quot; /></p></p></p> <p><strong>立即编译</strong></p> <p>PyPy 是操做立即编译来执止 Python 代码的。即 PyPy 差异于评释器&#Vff0c;它其真不会逐止运止代码&#Vff0c;而是正在执止步调前先将局部代码编译成呆板码。</p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/direct/1a6c2f617d934d6a813266bdb06478a1.png&quot; /></p></p></p> <p>如上图所示&#Vff0c;而 PyPy 运用的 JIT 编译是评释和提早编译的联结&#Vff0c;可以操做提早编译来进步机能&#Vff0c;并进步评释型语言的活络性和跨平台可用性。</p> <p><strong>读者福利&#Vff1a;对Python感趣味的童鞋&#Vff0c;为此小编专门给各人筹备好了Python全淘的进修量料《完好版的Python的全淘进修量料》&#Vff08;安宁链接&#Vff0c;安心点击&#Vff09;</strong></p> <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/direct/835ccd23b359423298e74ff27d1c1636.png&quot; /></p></p></p> 全淘PDF电子书  <p><p><p align=&quot;center&quot;><img alt=&quot;&quot; src=&quot;https://i-blog.csdnimg.cn/direct/c66705f4333d44498ff82cecbd293456.png&quot; /></p></p> (责任编辑:)

------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:
发布者资料
查看详细资料 发送留言 加为好友 用户等级: 注册时间:2026-06-13 12:06 最后登录:2026-06-13 12:06
栏目列表
推荐内容
  • 每天坐8小时:不驼背、不痛腰、不圆肩的坐姿

    正确的坐姿不需要刻意“僵硬挺直”,重点是“放松且对齐”,记住以下4个关键要点,就能快速找到中立位,坚持1-2周就能形成肌肉记忆。 即使掌握了正确坐姿,久坐8小时...

  • 手字笔顺

    手字笔画顺序查询,提供手字的笔顺动画、笔画数、笔顺读写、结构分析等详细内容,帮助您正确掌握手字的书写方法和笔画顺序规则。...

  • 俯卧撑(常见的健身运动)

    俯卧撑(英文:Push-up,港澳称掌上压,台湾称伏地挺身)是一种通过支撑自重锻炼上肢及核心肌群的基础健身运动,主要训练胸大肌、肱三头肌和三角肌前束。标准动作要...

  • 如何更好的培养自信心?《7 个科学方法重塑自我价值感》

    《从自卑到自信:7 个科学方法重塑自我价值感》(附心理学原理 + 实操工具,帮你建立可持续的自信心)一、打破认知误区:自信不是 “天生的”,而是 “培养的” ...

  • “首因效应”:第一印象的影响,到底有多大?

    澎湃,澎湃新闻,澎湃新闻网,新闻与思想,澎湃是植根于中国上海的时政思想类互联网平台,以最活跃的原创新闻与最冷静的思想分析为两翼,是互联网技术创新与新闻价值传承的...

  • 提升人民文明素养

    文化繁荣兴盛是中国式现代化的重要标志。基本实现社会主义现代化,必须建成文化强国。文化建设与人的发展、文明进步密切相关,文化建设要落实到以文化人、以文育人上,落实...

  • 心理科普丨气质有哪些类型?

    心文科普丨气量有哪些类型? 2023-05-07 21:42 发布于:山西省 提到气量,各人首先会想到什么? 文雅、端庄、斑斓-...

  • 『干货』针刀面部精细解剖学

    培训地点:广州中医药大学从属第二病院面部层次一、皮肤分层面部的软组织根柢由五局部构成:(1)皮肤(2)皮下组织层(3)面部表浅肌筋膜系统(S22OYS)(4)撑...

  • 别再跷二郎腿啦 4个步骤帮你找到健康坐姿

      &ldqu1;叉开腿坐&rdqu1;,一个日常被各人吐槽的观不雅观坐姿。  但前段光阳,网上有个很火的说法称:叉开腿坐才是最安康的坐姿,因为那样能更好地保持...

  • 骨粗鬆症予防サプリメントの選び方と医療従事者が知るべきエビデンス

    骨粗鬆症予防にサプリメントを活用する際、カルシウムやビタミンDだけに頼っていませんか?医療従事者が知っておくべき最新エビデンスと効果的な成分・選び方を解説します...