python那么慢为什么还有人用-为什么大家都说python编程的效率速度慢呢?

1600241708754734.jpg

今天的python培训想和大家分享一下python编程语言慢的原因,让大家采取一些措施避免其缺陷,希望对大家有所帮助!

近年来Python语言开始流行。它广泛应用于网络开发和运营、数据科学、网络开发和网络安全问题。

但是Python在速度上完全没有优势。

Java在速度上与C、C++、C#或Python相比如何?答案几乎完全取决于要运行的应用程序。在这个问题上,没有完美的判断标准,但计算机语言基准SGAME是一个很好的方法。

根据我十几年对《计算机语言词典》的观察,与Java、C#、Go、JavaScript、C++等相比,Python是最慢的语言之一。这些包括JIT(C#,Java)和AOT(C,C++)编译器,以及解释语言如JavaScript。

注意:我说的“Python”,是指官方解释器CPython。在本文中,我还将提到其他解释器。

我想回答的问题是:为什么Python在运行同一个程序时比其他语言慢2到10倍?为什么我们不能让它更快?

主要原因如下:

"这是GIL(全球解释者洛克)"

“它是一种解释性语言,而不是汇编语言”

“它是一种动态类型语言”

那么以上哪个原因对性能影响最大呢?

“这是一个全局解释器锁”

现代计算机的CPU通常是多核的,有的有多个处理器。为了充分利用冗余的处理能力,操作系统定义了一个称为线程的低级结构:一个进程(比如Chrome浏览器)可以生成多个线程,并引导内部系统。

如果一个进程是CPU密集型的,那么它的负载可以由多个内核同时处理,从而有效地提高了大多数应用的速度。

写这篇文章的时候,我的Chrome浏览器同时有44个线程。注意基于POSIX(如MacOS、Linux)的线程的结构和API与Windows操作系统相比是不同的。操作系统还处理线程的调度。

如果之前没有做过多线程编程,需要快速熟悉锁的概念。与单线程进程不同,您需要确保当内存中的变量被修改时,多个线程不会试图同时访问或更改同一个内存地址。

CPython创建一个变量时,预先分配存储空间,然后计算当前变量的引用号。这个概念叫做引用计数。如果参考计数为零,它将从系统中释放相应的存储区域。

这就是为什么在CPython中创建“临时”变量不会使应用程序占用大量存储空间——尤其是当应用程序使用for循环等结构时,这可能会创建大量“临时”变量。

当有多个线程调用变量时,锁定引用计数对CPython来说是一个挑战。而“全局解释锁”就应运而生了,它可以细致地控制线程的执行。不管有多少线程,解释器一次只能执行一个操作。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值