[]时间管理很重要:Python代码的优化之道
全文共2198字 , 预计学习时长8分钟
本文插图
图源:unsplash
时间管理可是一门大学问 , 如何在有限的时间更快地运行代码 , 并且拥有更优秀的性能 , 是我们应该去思考的事情 。 毕竟 , 成为伟大程序员之路就是要不断超越自己 , 寻找最优解 。 本文就将给大家提供一些时间管理的小tips 。
本文插图
1.优化代码和算法
首先 , 要仔细阅读你的代码和算法 。 通过执行更优算法或添加缓存可以解决很多速度问题 。 具体的准则能写整本书 , 但要遵循的一些通用准则是:
· 测试 , 不要猜测 。 测试代码哪些部分的运行耗费最长时间 , 首先关注这些部分 。
· 减少内存使用量 。 通常情况下 , 请尝试减少内存使用量 。 例如:逐行分析一个大型文件 , 而不先将其存储到内存中 。
· 执行缓存 。 如果你从磁盘 , 网络和数据库中执行许多重复的搜索 , 那么执行缓存可能是一个很大的优化 。
· 尽可能减少代码中的迭代次数 , 尤其减少迭代内部操作的次数 。
· 避免(深度)递归 。 对Python解释器而言 , 这需要大量内存和内务处理 , 改用生成器和迭代等 。
· 重用对象 , 而不是在每次迭代中创建新对象 。 Python必须清理已经创建的每个对象才能释放内存 。 这被称作垃圾回收 。 许多未使用对象的垃圾回收过程会大大降低软件速度 。
· 不要这样做 。 你真的需要执行该操作吗?它可以被放在之后完成吗?或是该操作可被一次完成 , 并可以存储其结果而不进行一遍又一遍地计算?
本文插图
图源:unsplash
本文插图
2.使用PyPy
你可能正在使用Python的参考实现——CPython , 它之所以被称作CPython , 是因为它由C语言编写而成 。 很多人都在用它 。
但如果确定自己的代码为计算密集型 , PyPy会是一个更好的选择 。 它有可能是一种快速解决方案 , 且无需更改单行代码 。
【[]时间管理很重要:Python代码的优化之道】PyPy声称:它比CPython平均快4.4倍 。 它通过使用一种叫作即时编译(JIT)的技术加快代码执行速度 , 其他的JIT还包括Java和.NET框架 。 而CPython使用解释器执行代码 , 尽管这提供了很大程度的灵活性 , 速度却非常慢 。
使用JIT , 可以在运行程序的同时编译代码 。 它结合了提前编译(由C和C ++等语言使用)的速度优势和解释器的灵活性 。 此外 , JIT编译器还可以在代码运行时继续将其优化 。 代码运行时间越长 , 就越优化 。
PyPy在近几年里发展很快 , 通常可以被用作Python 2和3的直接替代 。 它也可以与Pipenv等工具完美配合使用 。
本文插图
3.使用Asyncio
Asyncio是Python中一个相对较新的核心库 。 它与线程解决了相同的问题:即加速了I/O密集型软件系统 , 但Asyncio实现方式不同 。
笔者其实并不喜欢在Python中使用asyncio 。 Asyncio相当复杂 , 特别是对于初学者 。 而且由于asyncio库在过去的几年中发展了很多 , 网络上的教程和示例代码通常已经过时 。
本文插图
图源:unsplash
- 「俄罗斯」疫情形势严峻之际,俄罗斯公开“重要情报”,耿爽回应令人深思
- 咪儿爱摄影怎么买到合适自己的相机?这7点很重要
- 埃尔法哥哥我学python的一点感受
- 「美国」美国欺骗全世界,加拿大的媒体曝光重要的消息,果然还是被钟南山给说中了
- Python小镇Python必备技能:用pandas读Excel常见操作
- 宏达说关注最重要的三个能力,中国基础软硬件的大市场在行业应用
- 七九数码资讯手机外观设计越来越重要,良好的辨识度可以让一部手机脱颖而出
- 美国▲美国欺骗了全世界,加拿大媒体曝出重要消息,果然被钟南山说中了
- 「教育部」教育部下发重要通知!
- 上海证券报社这一事件将对个股有重要影响,下周