search
HomeBackend DevelopmentPython TutorialHow to perform performance optimization on Python
How to perform performance optimization on PythonJun 28, 2017 pm 01:33 PM
pythonoptimizationperformance

Critics of Python claim that Python is inefficient and slow, but this is not the case: try these 6 tips to speed up your Python applications.

Python is a very cool language because very little Python code can do a lot of things in a short time, and Python easily supports multitasking and multiprocessing.

#py

1. Key codes can rely on extension packages

Python makes many programming tasks simple, but Doesn't always provide the best performance for very critical tasks. Using C, C++ or machine language extension packages to perform critical tasks can greatly improve performance. These packages are platform-dependent, meaning you must use packages specific to the platform you are using. In short, this solution provides some application portability in exchange for performance that you can only gain by programming directly to the underlying host. The following extension packages you can consider adding to your personal extension library:

Cython
PyInlne
PyPy
Pyrex

These packages have different functions and execution methods . For example, Pyrex makes it easy and efficient for Python to handle some memory tasks; PyInline allows you to directly use C code in Python applications. Although the inline code is compiled separately, if you can use the C code efficiently, it can be used at the same time. One place for everything.

2. Use keyword sorting

There are a lot of old Python codes that will spend extra time creating a custom sortingFunction. The best way to sort is to use keywords and the default sort() method, take a look at the following example:

import operator
somelist = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]
somelist.sort(key=operator.itemgetter(0))
somelist
#Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]
somelist.sort(key=operator.itemgetter(1))
somelist
#Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)]
somelist.sort(key=operator.itemgetter(2))
somelist
#Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],

The list of each case is sorted according to the index you choose as the keyword argument, this The method is also applicable to string and numerical sorting.

3. Optimizing loops

Every programming language emphasizes the optimization of loop statements, and Python is the same. Although you can rely on a wealth of techniques to make loops run faster, however, one method that developers often overlook is to avoid using dotted strings inside the loop. For the following example:

lowerlist = ['this', 'is', 'lowercase']
upper = str.upper
upperlist = []
append = upperlist.append
for word in lowerlist:
    append(upper(word))
    print(upperlist)
    #Output = ['THIS', 'IS', 'LOWERCASE']

Every time str.upper is called, Python will find the value of this method. But if you put the evaluation result into a variable, you can improve the performance of the program. The key is to reduce the number of loops executed within Python, since Python is slower to parse these instances.

4. Use the new version

Anyone who searches for Python information online will find countless information about Python version migration. Usually, each version of Python has been optimized and improved on the previous version to make Python run faster. The limiting factor is whether your favorite library has been improved for the new version of Python.

When you use a new function library and get a new version of Python, you need to ensure that the code can still run, check the application, and correct the differences.

Then, if you just ensure that the application can run on the new version, you may miss the update of new features. Once you make improvements, configure your application under the new version, check for problem areas and prioritize updates with new features, users will see even greater performance improvements over previous upgrades.

5. Try a variety of programming methods

Every time you create an application, use the same programming method. In some cases, the program will run slower. Expectedly slow. Do some small experiments during the analysis. For example, when managing data items in a dictionary, you can use a safe method to determine whether the data item already exists and need to update it, or you can directly add the entry and then handle the case where the item does not exist at all.

n = 16
myDict = {}
for i in range(0, n):
    char = 'abcd'[i%4]
    if char not in myDict:
        myDict[char] = 0
        myDict[char] += 1
        print(myDict)

The above code will usually run faster when myDict is empty. But when myDict is already filled with data, there is a better way to choose:

n = 16
myDict = {}
for i in range(0, n):
    char = 'abcd'[i%4]
    try:
        myDict[char] += 1
    except KeyError:
        myDict[char] = 1
    print(myDict)

In both cases, output {'d': 4, 'c': 4, 'b': 4, 'a': 4}, the only difference is how the output is obtained. Thinking outside the box and creating new programming techniques can make your programs run faster.

6. Cross-compiler

Developers sometimes forget that the computer does not recognize any current application language, it only recognizes machine code. In order to run a program, an application is needed to convert human-readable code into code that the computer can understand. When writing a program in one language, such as Python, and then running it in another language, such as C++, it makes sense from a performance perspective. This depends on what you want to do with the application and what resources the host system can provide.

        An interesting cross-compiler, Nuitka, can convert Python into C++ code. The result is that you can execute the application in native mode instead of relying on the interpreter. Depending on the platform and task, you may see significant performance improvements.

The above is the detailed content of How to perform performance optimization on Python. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
详细讲解Python之Seaborn(数据可视化)详细讲解Python之Seaborn(数据可视化)Apr 21, 2022 pm 06:08 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

详细了解Python进程池与进程锁详细了解Python进程池与进程锁May 10, 2022 pm 06:11 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

Python自动化实践之筛选简历Python自动化实践之筛选简历Jun 07, 2022 pm 06:59 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

归纳总结Python标准库归纳总结Python标准库May 03, 2022 am 09:00 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于标准库总结的相关问题,下面一起来看一下,希望对大家有帮助。

Python数据类型详解之字符串、数字Python数据类型详解之字符串、数字Apr 27, 2022 pm 07:27 PM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

分享10款高效的VSCode插件,总有一款能够惊艳到你!!分享10款高效的VSCode插件,总有一款能够惊艳到你!!Mar 09, 2021 am 10:15 AM

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

详细介绍python的numpy模块详细介绍python的numpy模块May 19, 2022 am 11:43 AM

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

python中文是什么意思python中文是什么意思Jun 24, 2019 pm 02:22 PM

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.