这篇文章翻译自《Dive in Python》18章性能调优,相当于一个学习笔记。
代码1
allChars = string.uppercase + string.lowercase
if not re.search('^[%s]+$' % allChars, source):
return "0000"
测试性能
C:\samples\soundex\stage1>python soundex1a.py
Woo W000 19.3356647283
Pilgrim P426 24.0772053431
Flingjingwaller F452 35.0463220884
注:这个性能时间是整个代码的测试时间,代码功能自己看书
优化代码2
if not re.search('^[A-Za-z]+$', source):
return "0000"
测试性能
C:\samples\soundex\stage1>python soundex1b.py
Woo W000 17.1361133887
Pilgrim P426 21.8201693232
Flingjingwaller F452 32.7262294509
优化代码3
isOnlyChars = re.compile('^[A-Za-z]+$').search
def soundex(source):
if not isOnlyChars(source):
return "0000"
测试性能
C:\samples\soundex\stage1>python soundex1c.py
Woo W000 14.5348347346
Pilgrim P426 19.2784703084
Flingjingwaller F452 30.0893873383
原因: 上面的正则表达式可以被编译以获得更好的性能。因为在函数调用过程中表达式没有改变。
可知如果你的表达式不变的话,用compile可以比search获得更好的性能
优化代码4
if not source:
return "0000"
for c in source:
if not ('A' <= c <= 'Z') and not ('a' <= c <= 'z'):
return "0000"
测试性能
C:\samples\soundex\stage1>python soundex1d.py
Woo W000 15.4065058548
Pilgrim P426 22.2753567842
Flingjingwaller F452 37.5845122774
时间反而增加了。原因:
正则表达式的引擎是用c写的,直接运行在本地。而循环是用python写的,需要被python解释器运行。即使这个循环很简单,还是不能弥补编译的开销。
优化代码5
if (not source) and (not source.isalpha()):
return "0000"
测试性能
C:\samples\soundex\stage1>python soundex1e.py
Woo W000 13.5069504644
Pilgrim P426 18.2199394057
Flingjingwaller F452 28.9975225902
最快的!!
分享到:
相关推荐
- 正则表达式 - 错误处理 - 日志记录 3. **自动化运维任务** - 自动化备份 - 自动化部署 - 自动化测试 - 自动化更新与维护 4. **网络监控与故障排查** - 网络流量分析 - 故障检测与诊断 - 性能监控 - ...
#### 性能调优技巧 ##### 优化代码 - **内置数据类型**:合理使用Python的内置数据类型可以显著提高程序效率。例如,检查元素是否存在于集合中比在列表中查找快得多。 - **算法优化**:选择正确的算法至关重要。...
11. **性能调优**: Python的性能分析和优化是开发过程中不可或缺的一环。这部分会讲解如何使用cProfile和timeit模块进行性能测试,以及一些常见的优化技巧。 12. **Python与其他语言交互**: 如何通过ctypes或...
2. **性能调优**:通过对日志数据的深入分析,可以发现并优化慢查询,提高数据库性能。 3. **监控与报警**:结合其他自动化工具,`mtools`的数据可以触发报警,提前预警潜在的问题。 4. **日常运维**:定期生成...
`pspy`库对于系统管理员、性能调优专家和开发者来说都是一把利器,它可以帮助你深入了解系统的运行状态,定位问题,优化性能,或者只是为了学习和了解系统的工作方式。在日常开发和运维工作中,掌握`pspy`的使用能够...
9. **性能优化**:Python 2.6.4虽然较旧,但仍有一些性能调优技巧,如使用`map()`和`filter()`的列表推导式、避免全局查找、以及正确使用数据结构等。 10. **调试和测试**:使用Python 2.6.4进行开发时,可以借助`...
PCRE(Perl Compatible Regular Expressions)是一个功能强大的正则表达式库,它被设计成与Perl 5的正则表达式语法和语义相兼容。这个库广泛应用于各种编程语言和软件项目中,因为它提供了灵活、高效且强大的文本...
10. **性能优化**:提供了许多针对Python性能调优的技巧,如使用Cython或Numba进行性能提升,以及如何分析和优化代码性能。 通过阅读《Python Cookbook》第三版中文版,读者不仅可以提升自己的编程技能,还能了解到...
在书中,每个章节(如ch01至ch05)都围绕一个或多个特定主题展开,这些主题通常涉及数据结构的优化、函数式编程、错误处理、模块化设计以及性能调优等方面。下面,我们将深入探讨这些章节可能包含的知识点: 1. **...
- **性能优化**:提供Python程序性能调优的最佳实践。 #### 六、数据库操作 - **SQL与NoSQL数据库**:介绍如何使用Python连接并操作关系型数据库(如MySQL、PostgreSQL)和非关系型数据库。 - **数据库API**:讲解...
- 性能调优的最佳实践。 ### 结论 《Python Cookbook》第二版是一本非常适合有一定Python基础的读者使用的参考书。它不仅涵盖了Python语言本身的各种特性和技巧,还引入了大量的第三方库和工具,帮助读者解决实际...
7. **性能优化**:提供了很多关于性能调优的策略,包括使用Cython等工具将Python代码编译为C扩展,以及使用timeit模块来度量代码性能。 8. **字符串和文本处理**:详细介绍了Python的字符串操作,如正则表达式、...
13. **第13章:自动MySQL数据库性能调优** - **知识点**:开发Python脚本来自动分析MySQL数据库的性能问题,并尝试优化。 - **应用场景**:数据库优化是提升系统整体性能的关键。 - **关键技术点**: - MySQL...
【课程内容列表】 .gitignore PEP8风格指南.md Python编程惯例.md Python参考书籍.md Python之禅.md README.md 更新日志.md 玩转PyCharm.md Day01-15\01.初识Python.md ...项目部署上线和性能调优.md
9. **性能优化**:提供了针对Python代码的性能分析和调优策略,包括内存管理和Cython等加速Python的方法。 10. **元编程**:探讨了如何利用Python的动态特性进行元编程,例如通过操作类字典和动态创建类。 ...
5. **性能优化**:利用Tornado的特点进行性能调优。 6. **部署与运维**:部署应用到生产环境、监控应用状态等。 #### 五、实战项目 理论知识结合实践才能更好地理解和掌握。这部分将通过具体的项目案例来巩固前面...
- 性能调优是搭建过程中另一个重要环节,可能包括Nginx的性能优化、uWSGI的参数调优、Django设置的优化等。 ### 结论 搭建高性能的Web服务器涉及到多个组件的协同工作,每一步都要细心配置以保证系统的稳定性和...
- **数据库设计与优化**:掌握关系型数据库基础知识,了解SQL语句编写技巧及性能调优策略。 - **Web开发框架**:熟悉Django框架的核心概念与应用场景,包括模型定义、视图函数、模板渲染等。 - **异步编程**:运用...
9. **性能优化**:提供了各种性能调优技巧,包括代码剖析、内存管理、C扩展和Python的`ctypes`库,帮助读者写出更快的Python代码。 10. **系统交互**:讲解了如何使用Python与操作系统进行交互,包括系统调用、文件...