发现如果python代码正常运行,然后在python函数中运行,则在后一种情况下运行速度更快。我想知道为什么python代码在函数中运行得更快。

通常发现在python函数中存储局部变量要比全局变量更快。可以解释如下。

除了局部/全局变量存储时间外,操作码预测还使函数运行更快。

CPython是我们从Python.org下载的原始Python实现。它被称为CPython,以将其与更高版本的Python实现区分开来,并将语言引擎的实现与Python编程语言本身区分开来。

CPython恰好是用C语言实现的。CPython将我们的python代码编译为字节码,并在评估循环中解释该字节码。

编译函数时,局部变量存储在固定大小的数组(不是dict)中,并且变量名称分配给索引。这是可能的,因为您不能动态地将局部变量添加到函数中。然后检索一个局部变量实际上是对列表的指针查找和对PyObject的引用计数的增加,这是无关紧要的。

将此与全局查找进行比较,它是涉及哈希等的真正的dict搜索。顺便说一句,这就是为什么要使变量成为全局变量时需要指定global的原因:如果您在作用域内分配了变量,则编译器将发出STORE_FAST进行访问,除非您告知不要这样做。

顺便说一句,全局查找仍然非常优化。属性查询确实很慢!

python中用函数可以提高代码运行速度吗_为什么Python代码在函数中运行得更快?...相关推荐

  1. python中函数提高代码执行速度吗_为什么Python代码在一个函数中运行得更快?

    匿名用户 除了局部/全局变量存储时间外,操作码预测使函数更快. 正如其他答案所解释的,该函数在循环中使用store_fast操作码.下面是函数循环的字节码:>> 13 FOR_ITER 6 ...

  2. 提高SQL执行性能方案:如何让你的SQL运行得更快

    ---- 人们在使用SQL时往往会陷入一个误区,即太关注于所得的结果是否正确,而忽略 了不同的实现方法之间可能存在的性能差异,这种性能差异在大型的或是复杂的数据库 环境中(如联机事务处理OLTP或决策 ...

  3. 提高SQL执行性能方案:如何让你的SQL运行得更快zt

    应用程序持续优化是每个软件工程师的目标,除了代码层面的优化,对于SQL的撰写也非常的重要,详细信息 转载于:https://www.cnblogs.com/minbear/archive/2006/0 ...

  4. 用 PyPy 让你的 Python 代码运行得更快!

    Python是开发人员中最常用的编程语言之一,但它有一定的局限性.例如,对于某些应用程序而言,它的运行速度可能比其它语言低100倍.这就是为什么当Python的运行速度成为用户瓶颈后,许多公司会用另一 ...

  5. python pypy_Python之父的加速秘籍:PyPy能让代码运行得更快!

    全文共2179字,预计学习时长6分钟 图源:unsplash 当我们提及Python时,常常指的是CPython,即C语言实现的Python,这就是PyPy发挥作用的地方啦.实话讲,Python很慢, ...

  6. python手机代码识别数字_利用python构建神经网络识别手写数字(附源代码)

    一.运行环境配置 本次实验的运行环境win10(bit64),采用python环境为3.7.6,安装Python环境推荐使用Anaconda.Anaconda是一个免费开源的Python和R语言的发行 ...

  7. python函数式编程读取数据时出现错误_写 Python 代码不可不知的函数式编程技术...

    原标题:写 Python 代码不可不知的函数式编程技术 选自 Medium 作者:Raivat Shah 参与:魔王.Jamin 本文对 Python 中的函数式编程技术进行了简单的入门介绍. 近来, ...

  8. python中用来表示赋值的符号是_4、python基础语法

    前言:本文主要介绍python的一些基础语法,包括标识符的定义.行和缩进.引号和注释.输入输出.变量的定义. 一.标识符 1.凡是我们自己取的名字,都是标识符. 2.在Python里,标识符由字母.下 ...

  9. python代码写入方式_【Python 1-17】Python手把手教程之——文件的读写以及I/O操作...

    作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 从文件中读取数据 文本文件可存储的数据量很多,每当需要分析或修改存储在文件中的信息时,读取文件都很有用,对数据分析应用程序来说尤其 如 ...

  10. python测试代码与模块_测量Python代码运行时间

    Python 社区有句俗语: "python自己带着电池" ,别自己写计时框架. Python 2.3 具备一个叫做 timeit 的完美计时工具可以测量python代码的运行时间 ...

最新文章

  1. CodeForces - 1455E Four Points(数学+几何)
  2. Swift基础之方法实战
  3. 使用AspectJ注解技术实现AOP功能
  4. 微信小程序开发学习笔记005--微信小程序组件详解
  5. Leetcode | Pow(x, n)
  6. C++编程语言中引用(reference)介绍
  7. 'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。报错...
  8. 阿里云大学云学院 “人工智能” 专业重磅预售
  9. vivo X9的usb调试模式在哪里,开启vivo X9usb调试模式的方法
  10. 物联网毕业设计 单片机指纹识别考勤系统设计与实现
  11. 格力董明珠:对别人狠,对自己更狠!
  12. 加拿大综合类大学排名获关注,盘点高校对雅思要求
  13. android车载应用市场,车载市场
  14. java socket / IM / Message / chat / liaotian / xmpp
  15. 正则表达式强密码验证: 8-16个字符,不包含空格,必须包含数字,字母或字符至少两种
  16. wxpython入门(1)
  17. 生成目录路径树结构方法
  18. 代码生成工具的实现思路
  19. 二进制求和和x的平方根
  20. php网页课程设报告,网页设计课程设计报告

热门文章

  1. linux系统之IP、TCP封包格式
  2. 初识WEB:输入URL之后的故事
  3. Flash互动网站设计学习-Flash发展历史
  4. 文本相似度计算--余弦定理和广义Jaccard系数
  5. Confluence 6 配置边栏
  6. webpack4+vue打包简单入门 1
  7. Dom4j完整教程,操作XML教程
  8. 带宽与虚拟桌面的考虑
  9. 杭电acm阶段之理工大版
  10. 图像处理之opencv---mat、cvmat、IplImage之间的转换