当前位置:首页 > 科技  > 软件

一文看懂,为什么 Python 运行速度如此慢?

来源: 责编: 时间:2024-06-05 17:43:15 265观看
导读在编程社区中,众所周知Python编程语言在速度方面并不占优势。"但是就是慢..."在这篇文章中,我将介绍Python的不同特性,我们将了解为什么这使其成为当今最完整的语言之一,但速度不够快。但首先,让我们掌握一些关于编程语言

在编程社区中,众所周知Python编程语言在速度方面并不占优势。fVG28资讯网——每日最新资讯28at.com

"但是就是慢..."fVG28资讯网——每日最新资讯28at.com

在这篇文章中,我将介绍Python的不同特性,我们将了解为什么这使其成为当今最完整的语言之一,但速度不够快。但首先,让我们掌握一些关于编程语言的基本知识。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

抽象级别

正如我们可能知道的那样,编程语言通常根据其抽象级别进行描述。fVG28资讯网——每日最新资讯28at.com

  • 低抽象级别表明该语言更接近硬件(难以解释)
  • 高级别表示代码更接近用户(易于解释)。

fVG28资讯网——每日最新资讯28at.com

抽象级别(从硬件到现代编程语言)fVG28资讯网——每日最新资讯28at.com

C++、PHP、Java、Python等都被认为是现代(或高级)编程语言,因为它们可以在几乎任何类型的系统上运行。在汇编语言中,我们必须根据每个特定处理器的指令编写不同的程序(无法在不同的CPU上运行相同的代码)。例如,如果我们创建一个打印“Hello world”的程序并将代码发送给我们的朋友(他有不同的计算机型号),当他尝试执行它时,它可能会失败。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

现代语言:金字塔的最后抽象层

fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

现代语言抽象fVG28资讯网——每日最新资讯28at.com

尽管是离机器码最高的抽象,但在金字塔的最后一层也有层次结构。一方面,我们可以找到过程化语言,如C,我们需要逐步知道自己在做什么。这具有非常高效的优点,但缺点是复杂且不够灵活。另一方面,其他语言通过让我们使用更易读和灵活的代码来简化任务。这就是Python的情况。我们几乎可以用它做任何事情,而且易于实现,但在某些任务上效率不高。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

但为什么Python确切地说是“慢”呢?fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

让我们回顾一些语言特性以回答这个问题。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

解释性语言

首先,Python是一种解释性语言,这意味着代码由软件程序(称为解释器)逐行读取和执行,在运行时进行。这是将代码转换为机器代码的一种方式。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

编译型语言

另一种使代码“为机器可理解”的方式是通过编译过程。在这种情况下,源代码在实际在计算机上运行之前通过编译器转换为机器代码。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

编译型与解释型语言fVG28资讯网——每日最新资讯28at.com

为什么解释性方式更慢?

在解释性语言中,源代码的每一行在执行过程中都会即时转换为机器代码。这意味着每次程序运行时,解释器必须解析、分析和执行代码,这增加了与直接运行预编译机器代码相比的开销。例如:如果某段代码运行多次(例如,在循环内),解释器必须每次遇到时读取和转换它。相反,编译程序将直接运行机器代码,无需在通过循环时重新翻译它。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

CPython及其全局解释器锁(GIL)

标准的Python解释器是CPython。它由C和Python编写,将Python代码编译成字节码,然后进行解释。为了防止多个本机线程同时执行Python字节码,CPython使用全局解释器锁。这个锁是必要的,因为CPython的内存管理不是线程安全的。然而,在多线程程序中,它可能是一个显著的瓶颈,限制了在多核处理器上进行多线程的性能提升。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

全局解释器锁的工作流程fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

动态类型

此外,Python是动态类型的,这意味着在初始化变量时不需要声明变量的类型。这对效率有何影响呢?嗯,在动态类型语言中,类型是在运行时确定的。这意味着解释器需要在执行代码片段时进行类型检查。这需要额外的处理来确定每个变量的类型以及根据这些类型执行操作的方式。而动态类型语言的对立面是什么?fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

静态类型语言

在这种情况下,变量的类型在编译时而不是在运行时确定。因此,类型在编译时已知,编译器可以更激进地优化代码执行。这导致更快但不够灵活的程序。一些采用这种方法的语言包括C++和Rust。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

静态类型与动态类型语言fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

垃圾收集

垃圾收集是一种编程语言运行时系统用于回收程序不再使用的内存的自动内存管理形式。Python通过垃圾收集自动管理其对象的内存分配和释放。它使用的主要垃圾收集方法是引用计数。Python中的每个对象都有一个引用计数,即指向它的引用数量。当引用计数降至零,即不再有指向该对象的引用时,它会立即从内存中删除。fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

垃圾收集器的工作流程fVG28资讯网——每日最新资讯28at.com

fVG28资讯网——每日最新资讯28at.com

然而,垃圾收集是一把双刃剑...fVG28资讯网——每日最新资讯28at.com

它通过自动清理未使用的对象极大简化了内存管理,有助于防止由于手动内存管理导致的内存泄漏和其他错误。但它引入了开销和不可预测性,可能影响应用程序的性能。fVG28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-92126-0.html一文看懂,为什么 Python 运行速度如此慢?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: C# new 关键字的三种用法

下一篇: 模拟实现.NET中的Task机制:探索异步编程的奥秘

标签:
  • 热门焦点
  • 2023 年的 Node.js 生态系统

    随着技术的不断演进和创新,Node.js 在 2023 年达到了一个新的高度。Node.js 拥有一个庞大的生态系统,可以帮助开发人员更快地实现复杂的应用。本文就来看看 Node.js 最新的生
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 微信语音大揭秘:为什么禁止转发?

    大家好,我是你们的小米。今天,我要和大家聊一个有趣的话题:为什么微信语音不可以转发?这是一个我们经常在日常使用中遇到的问题,也是一个让很多人好奇的问题。让我们一起来揭开这
  • 2023年,我眼中的字节跳动

    此时此刻(2023年7月),字节跳动从未上市,也从未公布过任何官方的上市计划;但是这并不妨碍它成为中国最受关注的互联网公司之一。从2016-17年的抖音强势崛起,到2018年的“头腾
  • 10天营收超1亿美元,《星铁》比《原神》差在哪?

    来源:伯虎财经作者:陈平安即便你没玩过《原神》,你一定听说过的它的大名。恨它的人把《原神》开服那天称作是中国游戏史上最黑暗的一天,有粉丝因为索尼在PS平台上线《原神》,怒而
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 超级标准版旗舰!iQOO 11S全球首发iQOO超算独显芯片

    上半年已接近尾声,截至目前各大品牌旗下的顶级旗舰都已悉数亮相,而下半年即将推出的顶级旗舰已经成为了数码圈爆料的主流,其中就包括全新的iQOO 11S系
  • DRAM存储器10月价格下跌,NAND闪存本月价格与上月持平

    10月30日,据韩国媒体消息,自今年年初以来一直在上涨的 DRAM 存储器的交易价格仅在本月就下跌了近 10%,此次是全年首次降价,而NAND 闪存本月价格与上月持平。市
  • 电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会为了更好地让参展观众真正感受到智能家居的绝妙之处,海尔智家的程传岭先生同样介绍了展会上海尔智家的模拟500平大平层,还原生活空间沉浸式体验。程传
Top