热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python高性能第二版_Python高性能第2版

第1章基准测试与剖析11.1设计应用程序21.2编写测试和基准测试程序71.3使用pytest-benchmark编写更佳的测试和基准测试程序101.4使用cProf

第 1 章 基准测试与剖析 1

1.1 设计应用程序 2

1.2 编写测试和基准测试程序 7

1.3 使用pytest-benchmark 编写更佳的测试和基准测试程序 10

1.4 使用cProfile 找出瓶颈 12

1.5 使用line_profiler 逐行进行剖析 16

1.6 优化代码 17

1.7 模块dis 19

1.8 使用memory_profiler 剖析内存使用情况 19

1.9 小结 21

第 2 章 纯粹的Python 优化 22

2.1 有用的算法和数据结构 22

2.1.1 列表和双端队列 23

2.1.2 字典 25

2.1.3 集 28

2.1.4 堆 29

2.1.5 字典树 30

2.2 缓存和memoization 32

2.3 推导和生成器 34

2.4 小结 36

第3 章 使用NumPy 和Pandas 快速执行数组操作 37

3.1 NumPy 基础 37

3.1.1 创建数组 38

3.1.2 访问数组 39

3.1.3 广播 43

3.1.4 数学运算 45

3.1.5 计算范数 46

3.2 使用NumPy 重写粒子模拟器 47

3.3 使用numexpr zui大限度地提高性能 49

3.4 Pandas 51

3.4.1 Pandas 基础 51

3.4.2 使用Pandas 执行数据库式操作 55

3.5 小结 59

第4 章 使用Cython 获得C 语言性能 60

4.1 编译Cython 扩展 60

4.2 添加静态类型 62

4.2.1 变量 63

4.2.2 函数 64

4.2.3 类 65

4.3 共享声明 66

4.4 使用数组 67

4.4.1 C 语言数组和指针 67

4.4.2 NumPy 数组 69

4.4.3 类型化内存视图 70

4.5 使用Cython 编写粒子模拟器 72

4.6 剖析Cython 代码 75

4.7 在Jupyter 中使用Cython 78

4.8 小结 80

第5 章 探索编译器 82

5.1 Numba 82

5.1.1 Numba 入门 83

5.1.2 类型特殊化 84

5.1.3 对象模式和原生模式 85

5.1.4 Numba 和NumPy 88

5.1.5 JIT 类 91

5.1.6 Numba 的局限性 94

5.2 PyPy 项目 95

5.2.1 安装PyPy 95

5.2.2 在PyPy 中运行粒子模拟器 96

5.3 其他有趣的项目 97

5.4 小结 97

第6 章 实现并发性 98

6.1 异步编程 98

6.1.1 等待I/O 99

6.1.2 并发 99

6.1.3 回调函数 101

6.1.4 future 104

6.1.5 事件循环 105

6.2 asyncio 框架 108

6.2.1 协程 108

6.2.2 将阻塞代码转换为非阻塞代码 111

6.3 响应式编程 113

6.3.1 被观察者 113

6.3.2 很有用的运算符 115

6.3.3 hot 被观察者和cold 被观察者 118

6.3.4 打造CPU 监视器 121

6.4 小结 123

第7 章 并行处理 124

7.1 并行编程简介 124

7.2 使用多个进程 127

7.2.1 Process 和Pool 类 127

7.2.2 接口Executor 129

7.2.3 使用蒙特卡洛方法计算pi 的近似值 130

7.2.4 同步和锁 132

7.3 使用OpenMP 编写并行的Cython代码 134

7.4 并行自动化 136

7.4.1 Theano 初步 137

7.4.2 Tensorflow 142

7.4.3 在GPU 中运行代码 144

7.5 小结 146

第8 章 分布式处理 148

8.1 分布式计算简介 148

8.2 Dask 151

8.2.1 有向无环图 151

8.2.2 Dask 数组 152

8.2.3 Dask Bag 和DataFrame 154

8.2.4 Dask distributed 158

8.3 使用PySpark 161

8.3.1 搭建Spark 和PySpark 环境 161

8.3.2 Spark 架构 162

8.3.3 弹性分布式数据集 164

8.3.4 Spark DataFrame 168

8.4 使用mpi4py 执行科学计算 169

8.5 小结 171

第9 章 高性能设计 173

9.1 选择合适的策略 173

9.1.1 普通应用程序 174

9.1.2 数值计算代码 174

9.1.3 大数据 176

9.2 组织代码 176

9.3 隔离、虚拟环境和容器 178

9.3.1 使用conda 环境 178

9.3.2 虚拟化和容器 179

9.4 持续集成 183

9.5 小结 184



推荐阅读
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • 深入解析 Synchronized 锁的升级机制及其在并发编程中的应用
    深入解析 Synchronized 锁的升级机制及其在并发编程中的应用 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 摩尔线程新款国产显卡曝光:8GB显存,性能超越GTX 660,售价预计超千元 ... [详细]
  • 通过使用CIFAR-10数据集,本文详细介绍了如何快速掌握Mixup数据增强技术,并展示了该方法在图像分类任务中的显著效果。实验结果表明,Mixup能够有效提高模型的泛化能力和分类精度,为图像识别领域的研究提供了有价值的参考。 ... [详细]
  • 在Python网络编程中,多线程技术的应用与优化是提升系统性能的关键。线程作为操作系统调度的基本单位,其主要功能是在进程内共享内存空间和资源,实现并行处理任务。当一个进程启动时,操作系统会为其分配内存空间,加载必要的资源和数据,并调度CPU进行执行。每个进程都拥有独立的地址空间,而线程则在此基础上进一步细化了任务的并行处理能力。通过合理设计和优化多线程程序,可以显著提高网络应用的响应速度和处理效率。 ... [详细]
  • 本文详细探讨了Zebra路由软件中的线程机制及其实际应用。通过对Zebra线程模型的深入分析,揭示了其在高效处理网络路由任务中的关键作用。文章还介绍了线程同步与通信机制,以及如何通过优化线程管理提升系统性能。此外,结合具体应用场景,展示了Zebra线程机制在复杂网络环境下的优势和灵活性。 ... [详细]
  • CAS 机制下的无锁队列设计与实现 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
author-avatar
只属于我一个人的秘密
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有