iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python性能优化的方法路径怎样的
  • 489
分享到

Python性能优化的方法路径怎样的

2023-06-02 09:06:12 489人浏览 安东尼

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

摘要

这篇文章将为大家详细讲解有关python性能优化的方法路径怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言Python作为程序语言最被人诟病的一点在于其性能。Python作为动态语言

这篇文章将为大家详细讲解有关python性能优化的方法路径怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前言

Python作为程序语言最被人诟病的一点在于其性能。Python作为动态语言,性能并不是它的优势,但很多时候实际也不会面临太多性能问题,所以Python的使用场景很广。但是,总会有碰到性能问题的一天,这种情况下首要的就是要在Python技术框架内来进行性能优化了。

决定是否优化

性能优化是手段,是为了解决其它一些问题。是否将性能优化作为正式开发任务,首要的就是达成共识。开发期的项目自然好说,上线后的项目就需要估计性能优化的工作量、相应风险以及评估大致的影响范围。让产品、开发、测试都意识到这项任务的必要性,而后才合适正式开始实施。

性能分析

性能优化必要步骤是分析瓶颈,首先得找到究竟慢在哪了,让后再对症下药去进行修改。Python性能分析,直接使用自带的cProfile进行处理就可以。用法也很简单,阅读官方文档中The Python Profilers 一节就足够了。

cProfile结果的可视化工具有不少,不过配合编码一起来的话,直接使用PyCharm打开最为方便。可以快速跳转每一个耗时函数对应的代码。

关注那些调用次数多的以及单次性能差的,那些大概率就是需要被优化的逻辑。

Python性能优化的方法路径怎样的

看个人简介

优化检查

在定位问题后就可以进行修改了。控制每次优化改动的范围,一次改动一处,然后再次Profile对比。优化的每一次改进都需要数据的支撑,这样能保证行进在正确的方向上,同时时间上也能有所掌控。

一些代码的优化并不一定好实施,因此这种渐进性的优化方式,便于降低项目整体开发风险,能够保证随时有可用的版本,且是经过了一定优化的版本。

持续监控

在进行了性能优化之后,就需要注意对性能指标进行监控了。这样能够及时的了解性能全貌,一旦再次需要进行优化,也能及早得知决策。

Python代码优化的常见方向

减少不必要的函数调用

很多时候没有必要去优化一个函数实现本身,优先考虑是否能够降低这个函数的调用次数,或是直接删除这个函数。

这是一种很常见的情况,一些功能层面已经不再需要的遗留代码占据了很多性能。如果一份代码多人经手,需求多变,反复迭代,那么这种代码是很有可能存在的。

搞清楚,然后删掉它们。

让运行时的动态计算静态化

部分运行逻辑可以先离线生成得到静态结果,运行时直接加载静态结果就可以了,这部分性能也是应该要回收的。

适当应用缓存

那些不能直接静态化的计算可能也可以缓存化。资源的创建销毁也可以根据情况判定是否应用缓存或对象池资源池一类实现方式,避免重复运算。

需要注意的是避免因为缓存带来的内存泄漏。

减少GC

Python通过引用计数与gc进行对象内存管理。对于引用计数无法处理的情况,Python会唤起gc进行处理,gc对性能有一定影响。因此代码实现的时候最好gc友好,减少代码中的引用环。

另外也可以通过设置gc参数来控制gc触发的几率,减少在高频计算时的gc触发,在空闲时刻手动触发gc。

修改明显错误的代码实现

很多性能问题都是那些非关键逻辑导致的,这些逻辑往往一眼看去就欠缺性能上的考虑,比如,

  • 不断通过for循环去进行查找

  • 错误的选择了容器,导致不断的遍历查找

  • 在property实现中含有复杂的耗时逻辑,让调用方忽视这一点

  • 在循环中添加了很多可以移到循环之外只运行一次的函数调用

  • 可以实现成事件触发的逻辑变成了轮询

  • 函数中存在大量重复调用

这类代码本就不应该存在,找出来改掉,并尽力保证未来此类代码不再进入代码库。

高频调用中改进一些基础用法

比如这里列出的一些常见用法的性能比较,在高频调用的时候就可以看出性能差异,选择更有效率的实现方式。

优化算法

部分逻辑可能可以从是实现方法层面进行优化,优化算法复杂度本身。

将部分逻辑改为原生代码实现

通过C/C++来替换掉部分逻辑也是Python优化的常见手段。有几种选择,

  • 裸写C/c++扩展

  • 使用Boost.Python实现C++扩展

  • 使用Cython

  • 使用PyPy

裸写C/C++需要处理繁琐的对象转化以及引用处理,一般会选择使用Boost.Python。使用起来方便很多。

采用Cython可以不去写C++代码,但是要写Cython脚本。根据情况,有选择使用。

PyPy相当于替换了运行时,在运行时不受掌控的情况下是不能采用的。服务端的话,可以考虑部分使用,通过进程隔离的方式解决一些依赖上的问题。

需要注意保留必要的Python实现,以便在遇到问题时可以快速切换回去。

关于Python性能优化的方法路径怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: Python性能优化的方法路径怎样的

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

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

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

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

下载Word文档
猜你喜欢
  • Python性能优化的方法路径怎样的
    这篇文章将为大家详细讲解有关Python性能优化的方法路径怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前言Python作为程序语言最被人诟病的一点在于其性能。Python作为动态语言...
    99+
    2023-06-02
  • python性能优化的方法有哪些
    Python性能优化的方法有:1. 使用更高效的算法和数据结构:选择合适的算法和数据结构可以减少时间和空间复杂度,从而提高性能。2....
    99+
    2023-09-08
    python
  • Nginx性能优化的方法
    这篇文章主要介绍了Nginx性能优化的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Nginx性能优化的方法文章都会有所收获,下面我们一起来看看吧。Linux系统参数优化下文中提到的一些配置,需要较新的Li...
    99+
    2023-06-27
  • MySQL的性能优化方法论
    作者:禅与计算机程序设计艺术 1.简介 一、什么是MySQL? MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB开发并发布。它的目的是为了快速、可靠地处理复杂的事务处理,支持多种编...
    99+
    2023-10-18
    大数据 人工智能 语言模型 Java Python 架构设计
  • 对MySQL性能优化的简单办法是怎样的
    对MySQL性能优化的简单办法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 对拥有一个几十万行表的...
    99+
    2024-04-02
  • 性能优化指南:性能优化的一般性原则与方法
    【本文转自博客园 作者:xybaby 原文链接:https://www.cnblogs.com/xybaby/p/9055734.html】作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应...
    99+
    2023-06-05
  • ASP容器路径响应的性能优化技巧是什么?
    在ASP.NET应用程序中,路径响应是一个非常重要的部分。路径响应是指在Web应用程序中为了获取特定文件或目录而使用的路径。在ASP.NET中,路径响应的性能优化是一个非常重要的问题,因为它可以直接影响应用程序的性能和用户的体验。 下面是...
    99+
    2023-06-03
    容器 响应 path
  • 优化Zend框架的性能的方法
    Zend框架是一个基于PHP语言的开源Web应用程序框架,被广泛应用于企业级Web应用的开发中。尽管Zend框架凭借其高度模块化、可扩展性和代码重用性等优势在市场上占据重要地位,但这并不意味着它的性能就一定高效。事实上,如何优化...
    99+
    2024-01-22
    性能优化 zend 框架。
  • Tomcat 7优化前及优化后的性能对比是怎样的
    本篇文章为大家展示了Tomcat 7优化前及优化后的性能对比是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、运行环境CPU: Intel(R) Penti...
    99+
    2024-04-02
  • Vue 性能优化的方法有哪些
    本篇内容介绍了“Vue 性能优化的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言Vue 框架...
    99+
    2024-04-02
  • Hibernate性能优化的方法有哪些
    本篇内容主要讲解“Hibernate性能优化的方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Hibernate性能优化的方法有哪些”吧!尽量使用many-to-one,避免使用单项on...
    99+
    2023-06-17
  • Nginx性能优化的方法是什么
    今天小编给大家分享一下Nginx性能优化的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Nginx 性能优化1、N...
    99+
    2023-07-06
  • laravel性能优化的方法有哪些
    使用缓存:Laravel提供了多种缓存驱动,如Redis、Memcached等,可以将经常访问的数据进行缓存,减少数据库的查询次数...
    99+
    2023-10-28
    laravel
  • react性能优化的方法有哪些
    1. 使用生命周期方法:React的生命周期方法可以帮助我们优化组件的性能。例如,使用shouldComponentUpdate方法...
    99+
    2023-09-13
    react
  • prometheus性能优化的方法有哪些
    使用合适的数据结构和算法:选择适合具体问题的数据结构和算法可以显著提高性能。 避免重复计算:缓存中间结果,避免重复计算可以减...
    99+
    2024-03-14
    prometheus
  • uniapp性能优化的方法有哪些
    减少页面 DOM 元素数量:避免页面中存在过多的 DOM 元素,可以减少页面渲染的复杂度,提高页面加载和渲染的速度。 使用合...
    99+
    2024-03-15
    Uniapp
  • JavaScript性能优化的方法有哪些
    这篇文章主要讲解了“JavaScript性能优化的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript性能优化的方法有哪些”吧! ...
    99+
    2024-04-02
  • 小程序redux性能优化的方法
    这篇文章主要介绍“小程序redux性能优化的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“小程序redux性能优化的方法”文章能帮助大家解决问题。首先了解小程序的工作原理和性能关键点。1工作原理...
    99+
    2023-06-26
  • python读取相对路径和绝对路径的方法
    目录一、简介二、绝对路径 三、相对路径一、简介 下面的路径介绍针对windows,在编写的py文件中打开文件的时候经常见到下面其中路径的表达方式。 我们常用’/...
    99+
    2023-02-10
    python读取相对路径和绝对路径 python读取相对路径 python读取绝对路径
  • Python 和 Git:如何优化 HTTP 路径的管理?
    在现代软件开发中,版本控制和代码管理是必不可少的一部分。Git 是目前最流行的版本控制系统之一,而 Python 是一种广泛使用的编程语言。这两种技术结合起来可以帮助开发者更好地管理项目中的 HTTP 路径,提高开发效率。本文将介绍如何使...
    99+
    2023-09-20
    git http path
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作