0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python 使用Dis模块进行代码性能剖析

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-11-03 15:39 次阅读

就像一个黑匣子,很多时候我们不知道python内部是怎样执行代码的,而且DEBUG的时候也没有机器指令可以查看,非常不利于代码优化。但是没关系,现在我们有Dis模块来对代码进行性能剖析。

为什么下面第一个函数比第二个函数耗得内存更少?

图片

图片

如果你没有厉害到那个程度是很难想出来的,但是我们使用Dis模块却能很容易找到答案:

图片

结果:

图片

Dis的结果其实很容易阅读:

第一列:对应的源代码行数。
第二列:对应的内存字节码的索引位置。
第三列:内部机器代码的操作。
第四列:指令参数
第五列:实际参数。

两个函数的dis分析用*号隔开了,大家可以清晰地看到两个函数之间的语句区别。 第二个函数的字节码索引最大到了30,而第一个函数的字节码索引最大仅到了22,因此,第一个函数耗得内存比第二个函数少

而且,在第一列和第二列之间的 >> 号表示跳转的目标,大家可以看第二个函数第四列的 18,表示其跳转到了索引为18的指令,也就是ROT_TWO。第二个函数的跳转也比第一个函数多,这也可能导致其在某种特殊情况下的效率可能会比第一个函数低。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模块
    +关注

    关注

    7

    文章

    2486

    浏览量

    46561
  • 函数
    +关注

    关注

    3

    文章

    3911

    浏览量

    61313
  • 代码
    +关注

    关注

    30

    文章

    4557

    浏览量

    66834
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83479
收藏 人收藏

    评论

    相关推荐

    python有哪些方向?

    Python学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析
    发表于 03-09 15:47

    探究python字节码

    玩这个,Python标准库中的dis模块就非常有用了; dis模块Python字节码提供了一个
    发表于 05-22 15:48

    Python十大应用领域和就业方向

    领域,Python几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行
    发表于 11-21 14:54

    PIC16LF1939的代码性能分析

    家族不起作用。你能建议使用哪种代码剖析工具吗?我想分析代码性能,函数执行时间等。让我知道是否有任何其他有效的方法进行
    发表于 03-10 10:26

    三种提高Python代码性能的简便方法

      在互联网编程语言盛行的今天,Python是比较流行的编程语言之一。但很多程序员对于Python代码性能的方法并不了解。今天这里主要为大家介绍三种提高
    发表于 08-03 18:37

    python代码示例之基于Python的日历api调用代码实例

    本文档的主要内容详细介绍的是python代码示例之基于Python的日历api调用代码实例。
    发表于 09-06 14:25 42次下载
    <b class='flag-5'>python</b><b class='flag-5'>代码</b>示例之基于<b class='flag-5'>Python</b>的日历api调用<b class='flag-5'>代码</b>实例

    Python 代码加速运行的的小技巧

    的技巧进行整理。 0. 代码优化原则本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细节之前,需要了解一些
    的头像 发表于 09-01 11:28 1507次阅读

    python包、模块和库是什么

    1. 模块 以 .py 为后缀的文件,我们称之为 模块,英文名 Module。 模块让你能够有逻辑地组织你的 Python 代码段,把相关的
    的头像 发表于 03-09 16:47 2103次阅读

    python中间模块重载介绍

    python通过reload重载模块动态更新最新代码。 ## 1.1 reload
    的头像 发表于 02-21 11:16 381次阅读

    介绍Python模块的基础知识

    Python是一种高级编程语言,拥有丰富的库和模块模块Python中一个独立的、可重用的代码单元,它包含了一组相关的函数、类和变量。
    的头像 发表于 04-21 16:48 790次阅读

    [源代码]Python算法详解

    [源代码]Python算法详解[源代码]Python算法详解
    发表于 06-06 17:50 0次下载

    怎么用模块来观察代码性能表现

    的时间与当前时间的距离,颜色越浅代表离当前时间越近。 下面就来教大家怎么用这个模块来观察你的代码性能表现。 1.准备 开始之前,你要确保Python和pip已经成功安装在电脑上,如果没
    的头像 发表于 10-21 10:53 196次阅读
    怎么用<b class='flag-5'>模块</b>来观察<b class='flag-5'>代码</b><b class='flag-5'>性能</b>表现

    Dis模块的使用

    Python字节码指令,而这些字节码是一种类似于汇编指令的中间语言,但是每个字节码对应的不是机器指令,而是一段C代码。 而Dis模块,就是用于查看这些字节码的运行轨迹,因此我们可以用
    的头像 发表于 11-02 15:27 259次阅读
    <b class='flag-5'>Dis</b><b class='flag-5'>模块</b>的使用

    python如何导入模块

    Python是一种强大的编程语言,它支持模块化编程,使得开发者可以将代码分解为可重用且独立的模块模块是一个包含函数、类和变量等定义的文件,
    的头像 发表于 11-22 14:46 537次阅读

    python软件怎么运行代码

    Python是一种高级编程语言,它被广泛用于开发各种类型的应用程序,从简单的脚本到复杂的网络应用和机器学习模型。要运行Python代码,您需要一个Python解释器,它可以将您的
    的头像 发表于 11-28 16:02 548次阅读