从后台看python--为什么说python是慢的
2024-08-23 13:03:50
python越来越作为一种科学技术研究的语言越来越流行,可是我们经常听到一个问题,python是慢的。那么我们从后台分析一下,为什么python是慢的。
python是一种动态类型,解释型语言,它的值都是存储在分散的对象中,而不是紧密的缓存之中。
1.python是动态类型语言
这意味着编译器在程序执行之前并不知道变量定义的类型。C定义变量和Python定义变量的方式的区别:
对于C,编译器通过定义知道变量的类型;然而对于python中的变量,当你知道变量的类型的时候已经是程序执行的时候了。
我们分析一小段代码分别在python和C中执行的具体区别:
在C中,如果你写如下代码:
int a = 1;
int b = 2;
int c = a + b;
1.分配一个类型1给a
2.分配一个类型2给b
3.调用一个二进制加法
a = 1
b = 2
c = a + b
1.分配1给a
- 设置一个对象,然后将它的类型设置为整数
将它的值设为1
2.分配2给b设置一个对象,然后将它的类型设置为整数
将它的值设为2
3.调用一个二进制加法(a,b)寻找一个类型在对象中
- a是一个整数,它的值是a
- 寻找一个类型在对象中
- b是一个整数,它的值是b
- 调用一个二进制加法
返回结果,结果是一个整数
4.产生一个对象c将一个对象的类型设置为整数
- 将它的值分配给结果
动态类型意味着每一步操作需要更多的步骤。python比c慢的一个基本的原因就是数字计算上面的操作。
2.python是一种解释型的语言而不是编译型的
我们可以看到解释型语言和编译型语言的区别。一个聪明的编译器知道怎么提前优化,避免重复和不必要的操作,从而提高效率。当然,在这一点上也是仁者见仁智者见智。
3.python的对象模型导致存储效率低下
python存储数据效率低下的原因,主要可以从下图看出:
当然说了python这么多缺点,为什么python用的人还这么多,因为它很简单啊。python用起来的确很简单,就我个人的使用感受而言,除了matlab,我没有看过比python还要简单的语言了。而且python的开源的库很多,所以做很多东西都很方便。
最新文章
- 字符加密Cipher(bzoj 1031)
- c/c++ qsort 函数的简单使用(1)
- arguments.callee 调用自身 caller,callee,apply and call
- 第三次作业——K米评测
- Eclipse 官方简体中文语言包下载地址及安装方法
- atitit.条形码的原理与生成总结java Barcode4j barcode o5
- 用php自带的filter函数验证、过滤数据 -转载
- Android UI目录
- JavaScript数据结构与算法(一) 栈的实现
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
- Retrofit的初次使用
- Thinkphp volist 多重循环原样输出数组key值的使用总结
- VMware 虚拟机运行卡慢的解决办法
- Codeforces Round #443 (Div. 1) C. Tournament
- [模板] 无旋Treap (C++ class)
- JavaScript 简单的实现 sleep功能 .
- format 插入一个字符,%d,%n
- Oracle 触发器和序列的创建和使用 (自动增长列)
- Centos 7: 改变docker的image存放目录
- springcloud-eureka简单实现
热门文章
- spring mvc 绑定参数据默认值,是否必传,(RequestParam(value=";id";,defaultValue=";1";,required=true) )
- PHP生成静态网页的方法
- Mysql数据库表类型
- ndn挖坑记(二)
- python之assert
- Dancing Stars on Me
- React 进阶设计与控制权问题
- vue项目使用axios发送请求让ajax请求头部携带cookie
- 使用@Value注解对bean进行属性注入
- 【MM系列】SAP MM模块-委外采购订单 把Warning转换成Error信息提示