如何让python程序运行得更快

原则1:不优化

原则2:不要优化那些不重要的部分(否则会降低可读性)

解决方案:

1. 使用函数,局部变量比全局变量快很多。尽量使用函数,如main()

2. 有选择性的消除属性访问。 如多用 from math import sqrt 而不要直接再程序中多次调用 math.sqrt(), 或直接声明局部变量。

import math

def compute_roots(nums):
    sqrt = math.sqrt
    res = []
    res_append = res.append
    for n in nums:
        res_append(sqrt(n))
    return res

# 微优化a = { i:i**2 for i in range(1000) } # 较快b = [dict(i=i**2) for i in range(1000) ] #较慢

3. 避免不必要的抽象,如装饰器,@property等

4. 使用内建的字符串,元组,列表,集合,字典等容器.

5. 避免不必要的数据结构或拷贝动作 

6. 使用cPython或pypy等。

Ps: >> 优化之前,先要跑起来,先要有正确的算法!低复杂度的算法远比程序的优化更重要。

时间: 2024-08-06 07:54:42

如何让python程序运行得更快的相关文章

让python代码运行的更快

原文地址:http://infiniteloop.in/blog/quick-python-performance-optimization-part-i/ 往往小的改变却能带来大的性能提升, 下面说下python中的几点性能优化. 1.使用timeit模块 2.减少函数的调用次数 3.使用xrange代替range 4.''.join()代替+,+= 5.while 1 代替 while True 6.列表解析>for循环>while循环 7.使用局部变量 8.创建生成器和使用yield 9

听说,你想让自己的Go程序运行的更快?

到现在为止,我已经忘记了我在写什么,但我确定这篇文章是关于Go语言的.这主要是一篇,关于运行速度,而不是开发速度的文章--这两种速度是有区别的. 我曾经和很多聪明的人一起工作.我们很多人都对性能问题很痴迷,我们之前所做的是尝试逼近能够预期的(性能)的极限.应用引擎有一些非常严格的性能要求,所以我们才会做出改变.自从使用了Go语言之后,我们已经学习到了很多提升性能以及让Go在系统编程中正常运转的方法. Go的简单和原生并发使其成为一门非常有吸引力的后端开发语言,但更大的问题是它如何应对延迟敏感的应

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

新入职的程序员如何更快的融入项目当中?

最近,我们项目中新入职的程序员比较多,于是我们花上了15分钟,就"新入职的程序员如何更快的融入项目当中?"这个问题进行了讨论. 下面是讨论的结果总结,现在和大家分享一下,希望对新人或者项目管理者有一些有益的启发,则不枉我写这篇文章. 1.解bug可以很快上手 2.善于问问题,问周围同事 3.看什么时候加入的:如果加入项目比较晚的话,一定要看项目上已分享相关文档. 4.保持和做一个类型产品的同事的频繁交流. 5.不耻下问,一定要多问. 6.了解项目和产品流程. 7. 问的时候,头一次理解

程序员如何更快的适应新工作

程序员如何更快的融入新的工作环境和新的团队? 1.要有耐心 不要指望能在一两个星期内就学会一个代码库.通常而言,大型的代码库和系统是需要几个月的时间才能够充分理解.所以,别着急,尽力学习的同时也不必给自己施加压力非要立即掌握所有. 2.要谦虚爱学习 对自己不熟悉的工具和方法要抱有谦虚的态度.新的工作就意味着学习新的东西."知之为知之,不知为不知",对自己不知道的东西要谦虚和诚实.并且要记住每一个团队都其独特的工作流程和做事方式.花时间去了解新团队对于工具的选择,以及他们工作流程,并尊重

Python程序运行流程与垃圾回收机制

Python程序运行流程 Python解释器首先将程序将py文件编译成一个字节码对象PyCodeObject(只存在于内存中).(当这个模块的 Python 代码执行完后,就会将编译结果保存到了pyc文件中,这样下次就不用编译,直接加载到内存中.pyc文件只是PyCodeObject对象在硬盘上的表现形式.) py文件被编译后,接下来的工作就交由 Python虚拟机来执行字节码指令.Python虚拟机会从编译得到的PyCodeObject对象中依次读入每一条字节码指令,并在当前的上下文环境中执行

代码风格.Python-整体风格.0002.让你Python程序软件目录更规范化?

为了什么: 说明: 设计目录结构和代码编码风格一样属于个人风格问题,但是规范化能更好的控制程序结构,让程序具有更高的可读性,对于如何组织一个较好的目录结构,在Stackoverflow中几乎达成共识. 目录结构: 说明: 假设你的项目名为app,我比较建议的最方便最快捷的目录结构,如下这样就足够 . ├── app │   ├── __init__.py │   ├── main.py │   └── tests │       └── __init__.py ├── bin ├── Chang

如何设置虚拟内存,让电脑运行的更快

如何设置 如果电脑是因为内存不足而引起的运行缓慢,反应迟钝,则可以适当的设置虚拟内存的大小,来补偿内存的不足,加快系统的反应速度.其具体的做法如下: 在 “我的电脑’上鼠标右键单击,选择 ”属性“ . 2. 在 ”属性“ 弹出的页面中选择 “ 高级”,在 “性能” 区域中单击 “设置” 按钮. 3.在性能选项卡中选择高级,在 虚拟内存区域中 单击更改按钮 4. 选择一个空闲空间大的分区用来存放虚拟内存 Pagefile.sys  文件. 5. 在自定义大小区域中设置虚拟内存的大小为物理内存的1.

TQ2440开发板学习纪实(3)--- 设置时钟频率,让CPU运行的更快

0 原理 0.1 时钟源自哪里 所谓的时钟,就是电压高低的变化,只有不断的0,1交替变化,CPU才能被驱动运行.S3C2440支持多种时钟源,这通过CPU针脚OM3和OM3来选择.对于QT2440板子来说,OM3和OM2均直接接地,这就意味着时钟源来自针脚XTIpll和XTOpll,这两个针脚在TQ2440的核心板上被连接上了一个12MHz的晶振. 0.2 S3C2440的时钟原理与设置 CPU.RAM.UART等不同的设备运行时需要不同的时钟频率,这些不同的频率需要通过变频电路来提供,在电子行