图书介绍

高性能Python 英文PDF|Epub|txt|kindle电子书版本网盘下载

高性能Python 英文
  • (美)戈雷利克(MichaGorelick),(英)欧日沃尔德(IanOzsvald)著 著
  • 出版社: 南京:东南大学出版社
  • ISBN:9787564153854
  • 出版时间:2015
  • 标注页数:354页
  • 文件大小:58MB
  • 文件页数:370页
  • 主题词:软件工具-程序设计-英文

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

高性能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

热门推荐