iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python代码性能优化
  • 314
分享到

Python代码性能优化

性能代码Python 2023-01-31 08:01:28 314人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

python性能优化的一般步骤: 步骤1:找到性能 瓶颈 步骤2:优化性能 瓶颈 步骤3:Goto 『步骤1』 找出瓶颈 不要相信直觉,使用专业工具 使用专业工具: profile / cprofil

python性能优化的一般步骤:

步骤1:找到性能 瓶颈
步骤2:优化性能 瓶颈
步骤3:Goto 『步骤1』

找出瓶颈

不要相信直觉,使用专业工具

使用专业工具:

profile / cprofile

line_profiler

iPython: %prun

使用 timeit 模块来评判性能

import timeit
timeit.Timer(…).timeit()
ipython: %prun

例一:

def function1(): 
    for item in range(1000000):         
        pass

在python2中,range的实现方式是直接在内存中开辟一个静态的数组,而xrange则是通过迭代的方式动态的去生成,所以显而易见,在需要的数据量特别大的时候,range则会非常的耗费内存,所以其优化方式如下:

def function2(): 
    for item in xrange(1000000):         
        pass

简单来说,就是在需要range时,用xrange来代替,需要注意的是,在python3中,已经用xrange来代替range了,所以在python3里面,不存在这种性能问题。

例二:

def function1(l):
    result = []
    for i in l:
        if i % 2 == 0:
            result.append(i)
    return result

列表迭代式相对与一般的for循环或while循环迭代方式拥有更好的性能,所以可以用列表迭代式进行代替,但是这样会大大降低代码的可读性,所以在性能和代码可读性方面要认真权衡。

def function2(l):
    return [i for i in l if i % 2 == 0]

例三:

def add_two(i):
    return i + 2

def function1(l):
    result = []
    for item in l:
        result.append(chr(add_two(item)))
    return result

在python里,访问局部变量的速度要快于访问全剧变量,并且函数调用开销也是不容忽视的。因此,可以通过以下方式来进行优化:

def function2(l):
    result = []
    lchr = chr
    for item in l:
        result.append(lchr(item + 1))
    return result

例四:

l = range(10000) 

def function1(): 
    return 9000 in l

上边提到过,range的效率是相当低的,这是第一点,第二点是在判断一个数是否在一个列表中时,采用迭代的方式来判断,其时间复杂度是O(n),而当采用set时,由于set的实现方式是基于哈希的方式进行存取的,故在找一个元素是否在一个列表里的时候,其时间复杂度为O(1),效率提高了n倍,而且n越大,效率提高的就越明显。

s = set(range(10000)) 

def function2(item): 
    return item in s

例五:

def function1():
    l = []
    for i in xrange(10000):
        l.insert(0, i)

这段代码的功能是往列表里面插入1-10000,且每次将新的元素插入到列表0号位置,但是由于列表的特性,每次插入到最左端的话,就需要将列表已存入的值整体右移,再将新的值插入0号位置。这样将使大量的时间耗费在移动元素上,造成效率低下,对于这种要求,我们可以使用deque来做双端队列。总结来说就是用正确的结构来做正确的事情。类似的结构还有:bisect / heapq / array / collections等。

from collections import deque 

def function2(): 
    l = deque() 
    for i in xrange(10000):
        l.appendleft(i)

本文固定链接:Http://blog.dreamchasinger.cn/?p=603
欢迎访问我的自建博客:http://blog.dreamchasinger.cn

--结束END--

本文标题: Python代码性能优化

本文链接: https://www.lsjlt.com/news/192441.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python代码性能优化
    Python性能优化的一般步骤: 步骤1:找到性能 瓶颈 步骤2:优化性能 瓶颈 步骤3:goto 『步骤1』 找出瓶颈 不要相信直觉,使用专业工具 使用专业工具: profile / cprofil...
    99+
    2023-01-31
    性能 代码 Python
  • Python 代码性能优化技巧
    1. Vim2. Eclipse with PyDev3. Sublime Text4. Emacs5. Komodo Edit6. PyCharm7. Wing8. PyScripter9. The Eric Python IDE10. ...
    99+
    2023-01-31
    性能 代码 技巧
  • 如何优化Python代码的性能
    如何优化Python代码的性能Python作为一种高级编程语言,其易学易用的特点使其成为了很多开发者的首选。然而,由于Python是一种解释型语言,其执行速度相对较慢,特别是在处理大数据集或者复杂算法时。因此,对于需要高性能的应用场景,我们...
    99+
    2023-10-22
    代码性能提升 Python性能优化 提高Python执行效率
  • 优化 Python 代码性能:从算法选择到代码优化技巧
    一、算法选择 算法选择对 Python 代码的性能有重大影响。在选择算法时,需要考虑算法的复杂度、空间消耗和适用场景。常见的算法包括: 排序算法:冒泡排序、快速排序、归并排序、堆排序等。 搜索算法:二分查找、深度优先搜索、广度优...
    99+
    2024-02-06
    Python 性能优化 算法选择 数据结构选择 代码优化 并行计算
  • 性能优化 = 改改代码?
    如果第二次看到我的文章,欢迎「文末」扫码关注我哟~ 每周五11:45 按时送达。 当然了,也会时不时加个餐~我的第「124」篇原创敬上大家好,我是Z哥。好久没写技术文章了,最近正好有进行一些思考,顺手写出来分享给大家。上...
    99+
    2023-06-05
  • python代码性能优化技巧有哪些
    python优化代码性能技巧:1.优化字符串;2.减少循环;3.优化算法;python中优化代码性能的技巧有以下几种优化字符串python中字符串对象是不可改变的,在对字符串进行拼接等操作时,会产生一个新的字符串对象,从而会在一定程度上影响...
    99+
    2024-04-02
  • java性能优化之代码缓存优化
    目录JIT编译器版本默认情况JVM如何选择编译器?如何判断当前环境jvm使用的编译器?代码缓存代码缓存占满发生在什么情况?代码缓存默认大小如何确定正好的代码缓存?如何监控代码缓存?J...
    99+
    2024-04-02
  • Python代码编写中的性能优化点
    1. 交换赋值 ##不推荐 temp = a a = b b = a ##推荐 a, b = b, a # 先生成一个元组(tuple)对象,然后unpack 2. Unpacking ##不推荐 l = ['David', 'P...
    99+
    2023-01-31
    性能 代码 Python
  • Python 迭代器与生成器:优化 Python 代码的性能
    ...
    99+
    2024-04-02
  • Python开发建议:如何优化代码性能
    Python开发建议:如何优化代码性能引言:Python是一种易于学习和使用的编程语言,但在处理大规模数据和复杂计算时,它的性能可能会受到限制。本文将介绍一些优化Python代码性能的方法和技巧,帮助开发人员提高程序效率,从而加快代码运行速...
    99+
    2023-11-22
    代码优化技巧 Python性能优化 性能调优技巧
  • PHP代码性能优化的技巧
    本篇内容主要讲解“PHP代码性能优化的技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP代码性能优化的技巧”吧!PHP代码性能优化1. 不要随便就复制变量有时候为了使 PHP 代码更加整洁...
    99+
    2023-06-17
  • PHP代码优化与性能提升
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • 如何优化C++代码的性能?
    如何优化C++代码的性能随着计算机技术的发展,对于软件性能的追求也日益增加。在C++编程中,优化代码的性能是一个非常重要的任务。本文将介绍一些优化C++代码性能的方法和技巧,帮助读者了解如何提高程序的运行效率。第一步是对代码进行合理的设计。...
    99+
    2023-11-02
    性能优化 代码优化 C++编程
  • 如何在Python中进行代码性能优化和性能测试
    如何在Python中进行代码性能优化和性能测试引言:当我们编写代码时,经常会面临代码执行速度慢的问题。对于一个复杂的程序来说,效率的提升可以带来明显的性能提升。本文将介绍如何在Python中进行代码性能优化和性能测试,并给出具体的代码示例。...
    99+
    2023-10-22
    性能 (Performance) 优化 (Optimize) 测试 (Test)
  • PHP 性能优化:代码审查技巧
    php代码审查优化技巧:识别性能密集型功能。检查sql查询,使用索引和优化联接。利用缓存,避免重复查询或计算。审查内存使用,识别潜在的内存问题。实战案例:优化图像上传脚本,使用file_...
    99+
    2024-05-10
    性能优化 代码审查 redis
  • golang函数性能优化与代码复杂性
    go语言函数优化与代码复杂性密切相关,优化函数性能有助于编写高效易维护的代码。优化方法包括减少函数调用次数、使用内联函数、避免不必要的分配和并发。保持函数简短、命名清晰、避免使用goto...
    99+
    2024-04-27
    golang 性能优化 代码复杂性 go语言
  • 使用泛型优化golang代码性能
    通过使用泛型,可以在不编写特定类型函数的情况下对各种数据类型进行操作,从而减少代码重复。泛型通过消除对类型检查和转换的开销来提高性能,因为编译器可以生成针对任何类型高效工作的单个通用函数...
    99+
    2024-05-03
    java php golang
  • 优化 Python 程序性能:让你的代码更流畅
    代码分析 代码分析工具可以识别代码中的瓶颈并建议改进。以下是一些流行的工具: cProfile:分析函数调用和时间消耗。 profile:内置工具,提供调用图和统计信息。 SnakeViz:可视化代码执行时间,便于快速识别瓶颈。 演...
    99+
    2024-02-15
    Python 性能优化 代码分析 数据结构 算法
  • 如何从多方面了解Python代码性能优化
    今天就跟大家聊聊有关如何从多方面了解Python代码性能优化,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。代码优化能够让程序运行更快,它是在不改变程...
    99+
    2024-04-02
  • Python 性能优化秘籍:全面提升代码效率
    Python 以其易用性和广泛的库而闻名,但有时其性能可能成为瓶颈。通过采用适当的优化技术,您可以显着提高 Python 代码的效率,从而增强应用程序的整体性能。本文将深入探讨各种 Python 性能优化技巧,从微观调整到高级策略,帮助...
    99+
    2024-02-15
    Python 性能优化 代码效率 演示代码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作