Python是一款优雅的编程语言,在人工智能、云计算、大数据飞速发展的今天,Python受到了社会各界的关注,从国内的阿里、搜狐、知乎、腾讯、网易、土豆、新浪到国外的谷歌、Dropbox、Facebook、Redhat、Uber等都在大规模的使用Python完成各种任务!

Python的用途越来越广泛,很受欢迎,必然因为其有很多优点,但是Python也拥有一大缺点,相比于C语言,Python运行效率低,那么是什么原因导致的呢?

1. python是动态语言

动态语言是一类在运行时可以改变其结构的语言,如新的函数、对象、代码可以被引入,已有的函数可以被删除或其他结构上的变化等,该类语言更具有活性,但是不可避免的因为运行时的不确定性也影响运行效率。

2. python是解释执行

相比于C语言编译性语言编写的程序,Python是解释执行语言,其运行过程是Python运行文件程序时,Python解释器将源代码转换为字节码,然后再由Python解释器来执行这些字节码。其每次运行都要进行转换成字节码,然后再有虚拟机把字节码转换成机器语言,最后才能在硬件上运行,与编译性语言相比,其过程更复杂,性能肯定会受影响。

3. Python中一切都是对象

Python是一门面向对象的编程语言,其设计理念是一切皆是对象,如数字、字符串、元组、列表、字典、函数、方法、类、模块等都是对象,包括代码,每个对象都需要维护引用计数,因此,增加了额外工作,影响了性能。

4. Python GIL

GIL是Python最为诟病的一点,因为GIL,Python中的多线程并不能真正的并发,即使在单线程,GIL也会带来很大的性能影响,因为python每执行100个opcode就会尝试线程的切换,因此,影响Python运行效率。

5. 垃圾回收

Python采用标记和分代的垃圾回收策略,每次垃圾回收的时候都会中断正在执行的程序,造成所谓的顿卡,影响运行效率。

以上是影响Python运行效率的五大原因,那么该如何进行优化呢?这个就需要您进行下一步的深入了解啦!

转载于:https://blog.51cto.com/12306609/2320432

影响Python运行效率的因素有哪些?相关推荐

  1. python为什么运行不了_为什么python运行效率低?原来因为它!

    1. python是动态语言 动态语言是一类在运行时可以改变其结构的语言,如新的函数.对象.代码可以被引入,已有的函数可以被删除或其他结构上的变化等,该类语言更具有活性,但是不可避免的因为运行时的不确 ...

  2. 哪些东西影响计算机运行速度,影响电脑运行速度的因素主要的哪些?

    电脑是现在我们生活工作学习的必需品,经常听到伙伴们在说电脑的运行速度慢.那么影响电脑的运行速度的主要因素有哪些呢? 电脑的我们刚买回来的时候不觉得慢,在使用一段时间才觉得电脑运行慢了.这种情况一般都是 ...

  3. python图片处理效率低_解决python运行效率不高的问题

    当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的时间:另一个是运行效率,这是对计算机而言,完成计算任务所需要的时间.编码效率和运行效率往往是鱼与熊掌的 ...

  4. 树莓派python编程优点_树莓派为什么会使用python编程?为什么有时python运行效率不高?...

    在许多编程语言中,Python的语法也有很大不同.Python使用空格或缩进来分隔不同的代码块.C语言和其他语言使用花括号来区分不同的代码块,例如if语句,Python使用冒号和缩进来定义代码块.这也 ...

  5. 如何提高python的运行效率_几个提升Python运行效率的方法之间的对比

    在我看来,python社区分为了三个流派,分别是python 2.x组织,3.x组织和PyPy组织.这个分类基本上可以归根于类库的兼容性和速度.这篇文章将聚焦于一些通用代码的优化技巧以及编译成C后性能 ...

  6. 影响数据库性能的因素

    论坛上的数据库爱好者们,对于数据库底层的各种细节,内幕,等待事件,隐藏参数等津津乐道,对于调整好一条SQL语句使之在查询优化器/查询引擎下能高性能运转具有巨大的满足感成功感,仿佛自己掌握了天下最有价值 ...

  7. 影响JavaScript应用可扩展性因素

    引言:JavaScript 应用变得越来越庞大.这是因为使用JavaScript能做的事情远比我们大多数人所需求的要多得多.我们不能仅因为技术上可行,就去考虑软件系统的扩展问题.为一个不需要扩展的系统 ...

  8. 【控制】影响系统响应的因素

    影响系统响应的因素 输入 ur(t)u_r(t)ur​(t)--规定 r(t)=1(t)r(t)=1(t)r(t)=1(t) 初始条件--规定0初始条件 系统的结构参数--自身特性决定系统动态性能 F ...

  9. mysql中影响数据库性能的因素讲解

    mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情," ...

最新文章

  1. 套接字I/O模型之WSAEventSelect
  2. linux日常管理-防火墙selinux
  3. 树莓派Raspbian Buster/Debian 10 安装ROS
  4. .NET深入实战系列—Linq to Sql进阶
  5. nginx ci index.php,CI在Nginx服务器上rewrite去掉index.php例子
  6. Java成神之路——重入锁、公平非公平锁、自旋锁、读写锁
  7. mysql 表列表_一个MySQL表中的多列表显示
  8. 使用Python简单模拟Linux系统的tree工具
  9. 挪威议会的内部邮件系统遭攻击,信息被盗
  10. [修复] Eclipse – Java编译器级别与已安装的Java项目构面的版本不匹配
  11. Windows下 Nginx日志文件按计划时间自动分割、手动备份
  12. android 管理fragment,在 Fragment 之间传递数据
  13. 双线性对在密码学中的应用(上)
  14. 科技文献检索(五)——检索原理
  15. 基于竞争的MAC协议
  16. 计算机游戏教学法PPT,幼儿园语言游戏教学法PPT课件
  17. InputStream输入流七牛上传图片
  18. flask_mail通过qq发送邮箱
  19. EXP6 信息搜索与漏洞扫描 20154310
  20. 编写自己的Acunetix WVS漏洞扫描脚本详细教程

热门文章

  1. 2020年SAP项目艰辛曲折的开工历程 III
  2. 一位美女博士的人脸识别历程
  3. 人工智能共享停车走向全球
  4. 苹果、微软等巨头107道机器学习面试题
  5. 揭秘人工智能的大脑是如何理解世界的
  6. 人工智能应用中有这八大不可轻忽的弱点
  7. 《机器学习》周志华-CH1 绪论
  8. 盘点丨MIT教授Poggio:过去23年,机器学习取得了哪些进步
  9. PNAS:大脑一思考,就不再对称也不再平衡
  10. 长二F发射神十二飞船圆满成功!三名航天员飞向空间站天和核心舱