图书介绍
高性能Python 英文PDF|Epub|txt|kindle电子书版本网盘下载
![高性能Python 英文](https://www.shukui.net/cover/5/34406932.jpg)
- (美)戈雷利克(MichaGorelick),(英)欧日沃尔德(IanOzsvald)著 著
- 出版社: 南京:东南大学出版社
- ISBN:9787564153854
- 出版时间:2015
- 标注页数:354页
- 文件大小:58MB
- 文件页数:370页
- 主题词:软件工具-程序设计-英文
PDF下载
下载说明
高性能Python 英文PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1.Understanding Performant Python1
The Fundamental Computer System1
Computing Units2
Memory Units5
Communications Layers7
Putting the Fundamental Elements Together9
Idealized Computing Versus the Python Virtual Machine10
So Why Use Python?13
2.Profilingto Find Bottlenecks17
Profiling Efficiently18
Introducing the Julia Set19
Calculating the Full Julia Set23
Simple Approaches to Timing—print and a Decorator26
Simple Timing Using the Unix time Command29
Using the cProfile Module31
Using runsnakerun to Visualize cProfile Output36
Using line_profiler for Line-by-Line Measurements37
Using memory_profiler to Diagnose Memory Usage42
Inspecting Objects on the Heap with heapy48
Using dowser for Live Graphing of Instantiated Variables50
Using the dis Module to Examine Cpython Bytecode52
Different Approaches,Different Complexity54
Unit Testing During Optimization to Maintain Correctness56
No-op @profile Decorator57
Strategies to Profile Your Code Successfully59
Wrap-Up60
3.Lists and Tuples61
A More Efficient Search64
Lists Versus Tuples66
Lists as Dynamic Arrays67
Tuples As Static Arrays70
Wrap-Up72
4.Dictionaries and Sets73
How Do Dictionaries and Sets Work?77
Inserting and Retrieving77
Deletion80
Resizing81
Hash Functions and Entropy81
Dictionaries and Namespaces85
Wrap-Up88
5.Iterators and Generators89
Iterators for Infinite Series92
Lazy Generator Evaluation94
Wrap-Up98
6.Matrix and Vector Computation99
Introduction to the Problem100
Aren't python Lists Good Enough?105
Problems with Allocating Too Much106
Memory Fragmentation109
Understanding perf111
Making Decisions with perf's Output113
Enter numpy114
Applying numpy to the Diffusion Problem117
Memory Allocations and In-Place Operations120
Selective Optimizations:Finding What Needs to Be Fixed124
numexpr:Making In-Place Operations Faster and Easier127
A Cautionary Tale:Verify"Optimizations"(scipy)129
Wrap-Up130
7.Compiling to C135
What Sort of Speed Gains Are Possible?136
JIT Versus AOT Compilers138
Why Does Type Information Help the Code Run Faster?138
Using a C Compiler139
Reviewing the Julia Set Example140
Cython140
Compiling a Pure-Python Version Using Cython141
Cython Annotations to Analyze a Block of Code143
Adding Some Type Annotations145
Shed Skin150
Building an Extension Module151
The Cost of the Memory Copies153
Cython and numpy154
Parallelizing the Solution with OpenMP on One Machine155
Numba157
Pythran159
PyPy160
Garbage Collection Differences161
Running PyPy and Installing Modules162
When to Use Each Technology164
Other Upcoming Projects165
A Note on Graphics Processing Units(GPUs)166
A Wish for a Future Compiler Project166
Foreign Function Interfaces167
ctypes167
cffi170
f2py173
CPython Module175
Wrap-Up179
8.Concurrency181
Introduction to Asynchronous Programming182
Serial Crawler185
gevent187
tornado192
AsyncIO196
Database Example198
Wrap-Up201
9.ThemultiprocessingModule203
An Overview of the Multiprocessing Module206
Estimating Pi Using the Monte Carlo Method208
Estimating Pi Using Processes and Threads210
Using Python Objects210
Random Numbers in Parallel Systems217
Using numpy218
Finding Prime Numbers221
Queues of Work227
Verifying Primes Using Interprocess Communication232
Serial Solution236
Naive Pool Solution236
A Less Naive Pool Solution238
Using Manager.Value as a Flag239
Using Redis as a Flag241
Using RawValue as a Flag243
Using mmap as a Flag244
Using mmap as a Flag Redux245
Sharing numpy Data with multiprocessing248
Synchronizing File and Variable Access254
File Locking255
Locking a Value258
Wrap-Up261
10.Clustersand JobQueues263
Benefits of Clustering264
Drawbacks of Clustering265
$462 Million Wall Street Loss Through Poor Cluster Upgrade Strategy266
Skypes 24-Hour Global Outage267
Common Cluster Designs268
How to Start a Clustered Solution268
Ways to Avoid Pain When Using Clusters269
Three Clustering Solutions270
Using the Parallel Python Module for Simple Local Clusters271
Using IPython Parallel to Support Research273
NSQ for Robust Production Clustering277
Queues277
Pub/sub278
Distributed Prime Calculation280
Other Clustering Tools to Look At284
Wrap-Up285
11.Using Less RAM287
Objects for Primitivas Are Expensive288
The Array Module Stores Many Primitive Objects Cheaply289
Understanding the RAM Used in a Collection292
Bytes Versus Unicode294
Efficiently Storing Lots of Text in RAM295
Trying These Approaches on 8 Million Tokens296
Tips for Using Less RAM304
Probabilistic Data Structures305
Very Approximate Counting with a l-byte Morris Counter306
K-Minimum Values308
Bloom Filters312
LogLog Counter317
Real-World Example321
12.Lessonsfromthe Field325
Adaptive Lab's Social Media Analytics(SoMA)325
Python at Adaptive Lab326
SoMA's Design326
Our Development Methodology327
Maintaining SoMA327
Advice for Fellow Engineers328
Making Deep Learning Fly with RadimRehurek.com328
The Sweet Spot328
Lessons in Optimizing330
Wrap-Up332
Large-Scale productionized Machine Learning at Lyst.com333
Python's Place at Lyst333
Cluster Design333
Code Evolution in a Fast-Moving Start-Up333
Building the Recommendation Engine334
Reporting and Monitoring334
Some Advice335
Large-Scale Social Media Analysis at Smesh335
Python's Role at Smesh335
The Platform336
High Performance Real-Time String Matching336
Reporting,Monitoring,Debugging,and Deployment338
PyPy for Successful Web and Data Processing Systems339
Prerequisites339
The Database340
The Web Application340
OCR and Translation341
Task Distribution and Workers341
Conclusion341
Task Queues at Lanyrd.com342
Python's Role at Lanyrd342
Making the Task Queue Performant343
Reporting,Monitoring,Debugging,and Deployment343
Advice to a Fellow Developer343
Index345