我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么让Python程序快一点运行

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么让Python程序快一点运行

本篇内容介绍了“怎么让Python程序快一点运行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Python性能调试

要进行Python性能,前提条件是要找出程序中的性能瓶颈。找出程序中影响程序性能的代码。有经验的开发者一般都能很容易能找出程序的瓶颈,但对于普通码农找出系统的问题代码则很难,为了能快捷有效的发现程序的性能瓶颈就需要进行性能调试,此处我们以一个实际例子进行介绍,以下程序是计算e的x(1..n)次的幂,其代码如下:

# performance.py  from decimal import *  def exp(x):  getcontext().prec += 2  i, lasts, s, fact, num = 0, 0, 1, 1, 1  while s != lasts:  lasts = s  i += 1  fact *= i  num *= x  s += num / fact  getcontext().prec -= 2  return +s  print(exp(Decimal(150)))  print(exp(Decimal(400)))  print(exp(Decimal(3000)))

最简单的调试

最简单且实用的调试性能调试的方法是使用Linux的time命令,time可以计算程序执行的时间:

怎么让Python程序快一点运行
time python3 performance.py  1.393709580666379697318341937E+65  5.221469689764143950588763007E+173  7.646200989054704889310727660E+1302  real 0m15.185s  user 0m15.100s  sys 0m0.004s

计算前两个数的(150,400)很快,而第三个大一点时会很慢,总共要15秒多才算完,是有点卡顿(慢)。

time虽然很便捷有用,但是不能给我们详细的代码性能细节。

详细性能分析cProfile

性能分析另一个常用的方法是使用cProfile,它可以提供很多性能信息

python3 -m cProfile -s time performance.py
怎么让Python程序快一点运行

例子中,我们使用了cProfile模块和time参数运行测试脚本,以便按内部时间(cumtime)对行进行排序。如上图所示,使用cProfile可以给很多内部的具体信息,通过我们可以知道主要耗时是由exp函数导致。知道了程序的性能瓶颈所在,我们就再说明Python性能分析和优化。

优化特定功能

知道了将性能的瓶颈所在(实例中是exp函数),我们为了进一步具体问题具体分析,我们使用一个简单装饰器,以便跳过其他代码,专门分析性能瓶颈所设计的函数。然后使用装饰器进行测试,具体代码如下:

def timeit_wrapper(func):  @wraps(func)  def wrapper(*args, **kwargs):  start = time.perf_counter() # Alternatively, you can use time.process_time()  func_return_val = func(*args, **kwargs)  end = time.perf_counter()  print('{0:<10}.{1:<8} : {2:<8}'.format(func.__module__, func.__name__, end - start))  return func_return_val  return wrapper

我们用这个装饰器来测试exp:

@timeit_wrapper  def exp(x):  ...  print('{0:<10} {1:<8} {2:^8}'.format('module', 'function', 'time'))  exp(Decimal(150))  exp(Decimal(400))  exp(Decimal(3000))
怎么让Python程序快一点运行

结果:

module function time  __main__ .exp : 0.00920036411844194  __main__ .exp : 0.09822067408822477  __main__ .exp : 15.228459489066154

代码中,我们用到了time包提供time.perf_counter函数,它还提供了另外一个函数time.process_time。两者的区别在于perf_counter返回的绝对时间,包括Python程序进程未运行时的时间,它可能会受到计算机负载的影响。而process_time仅返回用户时间(不包括系统时间),这仅是程序过程时间。

性能优化

最后是Python程序的性能优化,为了让Python程序运行得更快,我们提供一些可供参考的性能优化构想和策略的,通过这些策略我们一半可以提高应用的运行速度,最高情况下可以让你的应用快30%。

使用内建数据类型

很明显,内建数据类型非常快,尤其是与自定义类型相比,比如树或者链表。因为内建程序是用C实现的,所以其性能优势是Python代码所无法比拟的。

使用lru_cache缓存/记忆

很多时候缓存非常有效,可以极大的提高性能,尤其在数值计算和涉及大量重复调用(递归)时。考虑一个例子:

怎么让Python程序快一点运行

上面的函数使用time.sleep(2)模拟一个耗时的代码。第一次使用参数1调用时,它将等待2秒,然后返回结果。再次调用时,由于结果已被缓存,将跳过函数的执行,直返回。用3调用时候由于参数不一样会耗时2秒,总体耗时应该为4s,我们用time  验证:

real 0m4.061s  user 0m0.040s  sys 0m0.015s

这和我们设想的一致。

使用局部变量

基于变量作用域中查找速度相关,在函数的局部变量具有很高的速度。其次是类级属性(如self.name)和最慢的是全局变量,如time.time(最慢)。所以我们可以通过避免使用不必要的全局变量来提高性能。

使用函数

这似乎有点出乎意料,因为涉及函数的内存占用都在堆栈上,而函数返回也会有开销。但是使用函数,可以避免使用全局变量,可以提高性能。因此,可以通过将整个代码包装在main函数中只调用一次来加速代码。

避免使用属性

另一个可以是影响程序性能的操作是点运算符访问对象属性。点运算符使用__getattribute__触发会字典查找,会在代码中产生额外的开销。我们可以通过一些使用函数而不是类方法的方式避免点操作,比如下面例子

#慢代码:

import re  def slow_func():  for i in range(10000):  re.findall(regex, line)

#快代码

from re import findall  def fast_func():  for i in range(10000):  findall(regex, line)

使用f-string

在循环中使用格式符(%s)或.format()时,字符串操作可能会变得非常缓慢。为了进行性能优化,我们应该使用f-string。它是Python  3.6引入的很具可读性,简洁性和最快的方法。比如:

s + ' ' + t  ' '.join((s, t))  '%s %s' % (s, t)  '{} {}'.format(s, t)  Template('$s $t').substitute(s=s, t=t) # 慢代码   f'{s} {t}' # 快代码

“怎么让Python程序快一点运行”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么让Python程序快一点运行

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

下载Word文档

猜你喜欢

怎么让Python程序快一点运行

本篇内容介绍了“怎么让Python程序快一点运行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python性能调试要进行Python性能,前
2023-06-16

怎么让sublime编辑器运行python程序

这篇文章主要讲解了“怎么让sublime编辑器运行python程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么让sublime编辑器运行python程序”吧!首先要安装sublime和
2023-06-02

如何让Python像Julia一样快地运行

如何让Python像Julia一样快地运行,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Julia 与 Python 的比较我是否应丢弃 Python 和其他语
2023-06-17

PyPy 是怎么让Python代码运行得和C一样快

这篇文章的内容主要围绕PyPy 是怎么让Python代码运行得和C一样快进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!1. 引言作为一名算法工程师,
2023-06-26

python如何让程序重复运行

在Python中,可以使用循环来实现程序的重复运行。常用的循环结构有`for`循环和`while`循环。1. 使用`for`循环:```pythonfor i in range(10): # 循环10次# 循环体代码```上述代码会执行循
2023-08-29

python怎么运行程序

python 程序的运行分为两步:1. 使用文本编辑器或 ide 在 python 文件中编写代码;2. 使用 python 解释器、idle 或第三方 ide 运行代码。如何运行 Python 程序Python 程序的运行分为两步:1
python怎么运行程序
2024-05-05

怎么让Python程序跑得更快

这篇文章主要讲解了“怎么让Python程序跑得更快”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么让Python程序跑得更快”吧!计时与性能分析在开始优化之前,我们首先需要找到代码的哪一部
2023-06-16

怎么让win10系统运行更快

以下是一些方法可以让Windows 10系统运行更快:1. 清理磁盘空间:使用Windows 10内置的磁盘清理工具来删除临时文件、下载文件、回收站和无用的程序。2. 禁用启动项:通过任务管理器禁用在系统启动时自动运行的程序,以减少开机时的
2023-08-22

怎么运行一个java程序

要运行一个Java程序,你需要以下步骤:1. 安装Java Development Kit (JDK):首先,确保你已经安装了Java Development Kit (JDK)。你可以从Oracle官方网站下载并安装适合你操作系统的JDK
2023-08-23

c语言怎么让程序继续运行

c 语言中让程序继续运行的方法有:1. while 循环:使用 while 循环不斷執行程式碼,直到條件為假;2. for 循環:提供迴圈範圍,讓程式碼無限執行;3. goto 語句:跳轉執行標籤,建立無限迴圈;4. 系統函式:使用 sle
c语言怎么让程序继续运行
2024-05-13

云服务器怎么加速运行快一点

云服务器是一种虚拟的数据中心服务器,它可以为用户提供快速、稳定、可靠的云计算服务。因此,可以使用云服务器加速来提高运行速度,下面是一些提高云服务器加速速度的方法:优化网络配置:为了提高云服务器的加速效果,需要确保您的网络配置正确。可以检查您的网络流量和带宽,优化网络连接速度以提高加速效果。选择合适的云服务器:选择一款适合您需要的云服务器,可以根据自己的需要选择不同的服务器类型,如高性能、高
2023-10-26

怎么让电脑运行速度更快

以下是一些方法可以帮助电脑运行速度更快:1. 清理磁盘空间:删除不需要的文件和程序,清理磁盘空间可以提高电脑的运行速度。2. 升级硬件:添加更多的内存(RAM)可以显著提高电脑的运行速度,特别是在运行多个程序时。3. 升级操作系统:安装最新
2023-09-08

python程序写完怎么运行

在 python 中运行程序的方法有两种:1. 使用 python 解释器;2. 直接调用脚本。具体步骤包括:① 创建 python 脚本文件;② 打开终端或命令提示符;③ 导航到脚本目录;④ 使用相应方法运行脚本;⑤ 查看输出。如何在 P
python程序写完怎么运行
2024-04-20

python怎么结束程序运行

在Python中,有几种方法可以结束程序的运行:使用sys.exit()函数:可以使用sys模块中的exit()函数来结束程序的运行。该函数接受一个可选的整数参数作为退出状态码,通常情况下,0表示成功退出,其他非零值表示异常退出。例如:im
2023-10-23

如何让云服务器一直运行程序

要让云服务器一直运行程序,你需要做以下几个步骤:设置云服务器的使用规则:在使用云服务器之前,你需要设置一些规则来防止对该服务器的滥用或者违反规定。例如,可以限制只有经过授权的用户才能访问或使用该服务器、设置默认账户、禁止修改数据等。你可以使用云服务器控制面板来设置,或者在网络设置中关闭其他服务以减少对云服务器的依赖性。监控云服务器的运行状态:你可以使用云服务器控制面板来监控云服务器的运行状
2023-10-26

云服务器怎么加速运行快一点呢

使用云服务器进行远程服务器操作,比如进行数据库操作,可以使用云服务器来进行远程操作比本地服务器速度更快,也更稳定。使用云服务器进行云存储操作,云服务器可以提供更快的云存储性能,而且也更安全,可以避免本地存储中可能的安全问题。使用云服务器进行负载均衡操作,可以将流量分发到云服务器的多台主机上,提高云服务器的性能。使用云服务器进行数据备份操作,云服务器可以通过备份数据来保证数据的安全性和备份的
2023-10-26

如何让云服务器一直运行状态正常运行程序

要让云服务器一直运行状态正常运行,需要做好以下几个方面的工作:保证服务器的硬件和软件的稳定性。云服务器需要具备高可靠性和高性能的硬件基础设施,同时还需要进行定期的维护和更新。安装合适的操作系统和软件。为了保证云服务器的稳定运行,需要安装合适的操作系统和软件,如Linux、Python等。安装必要的服务和应用程序。云服务
2023-10-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录