| | | 高性能Python(影印版) | 該商品所屬分類:其他分類 -> 圖書新品 | 【市場價】 | 680-985元 | 【優惠價】 | 425-616元 | 【介質】 | book | 【ISBN】 | 9787564153854 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
![](https://bnmppic.bookuu.com/goods/09/29/43/3164105-fm.jpg)
-
出版社:東南大學
-
ISBN:9787564153854
-
作者:(美)戈雷利克//(英)歐日沃爾德
-
頁數:351
-
出版日期:2015-02-01
-
印刷日期:2015-02-01
-
包裝:平裝
-
開本:16開
-
版次:1
-
印次:1
-
字數:455千字
-
你的Python代碼也許運行正確,但是你需要運行 得更快速。通過探討隱藏在設計備選方案中的基礎理 論,戈雷利克和歐日沃爾德編著的《高性能Python》 將幫助你更深入地理解Python的實現。你將了解如何 定位性能瓶頸,從而顯著提升高數據流量程序中的代 碼執行效率。 你該如何利用多核架構和集群?或者你該如何搭 建一個可以自由伸縮而不會影響可靠性的繫統?有經 驗的Python程序員將會學習到這類問題的具體解決方 案,以及來自於各個公司的如何把高性能Python用於 社交媒體分析、產品機器學習和其他場景中去的曲折 故事。
-
Preface 1. Understanding Performant Python The Fundamental Computer System Computing Units Memory Units Communications Layers Putting the Fundamental Elements Together Idealized Computing Versus the Python Virtual Machine So Why Use Python? 2. Profiling to Find Bottlenecks Profiling Efficiently Introducing the Julia Set Calculating the Full Julia Set Simple Approaches to Timing--print and a Decorator Simple Timing Using the Unix time Command Using the cProfile Module Using runsnakerun to Visualize cProfile Output Using line_profiler for Line-by-Line Measurements Using memory_profiler to Diagnose Memory Usage Inspecting Objects on the Heap with heapy Using dowser for Live Graphing of Instantiated Variables Using the dis Module to Examine CPython Bytecode Different Approaches, Different Complexity Unit Testing During Optimization to Maintain Correctness No-op @profile Decorator Strategies to Profile Your Code Successfully Wrap-Up 3. Lists and Tuples A More Efficient Search Lists Versus Tuples Lists as Dynamic Arrays Tuples As Static Arrays Wrap-Up 4. Dictionaries and Sets How Do Dictionaries and Sets Work? Inserting and Retrieving Deletion Resizing Hash Functions and Entropy Dictionaries and Namespaces Wrap-Up 5. Iterators and Generators Iterators for Infinite Series Lazy Generator Evaluation Wrap-Up 6. Matrix and Vector Computation Introduction to the Problem Aren't Python Lists Good Enough? Problems with Allocating Too Much Memory Fragmentation Understanding perf Making Decisions with perf's Output Enter numpy Applying numpy to the Diffusion Problem Memory Allocations and In-Place Operations Selective Optimizations: Finding What Needs to Be Fixed numexpr: Making In-Place Operations Faster and Easier A Cautionary Tale: Verify "Optimizations" (scipy) Wrap-Up 7. Compiling to C What Sort of Speed Gains Are Possible? JIT Versus AOT Compilers Why Does Type Information Help the Code Run Faster? Using a C Compiler Reviewing the Julia Set Example Cvthon Compiling a Pure-Python Version Using Cython Cython Annotations to Analyze a Block of Code Adding Some Type Annotations Shed Skin Building an Extension Module The Cost of the Memory Copies Cython and numpy ParaUelizing the Solution with OpenMP on One Machine Numba Pythran PyPy Garbage Collection Differences Running PyPy and Installing Modules When to Use Each Technology Other Upcoming Projects A Note on Graphics Processing Units (GPUs) A Wish for a Future Compiler Project Foreign Function Interfaces ctypes cffi f2py CPython Module Wrap-Up 8. Concurrency Introduction to Asynchronous Programming Serial Crawler gevent tornado AsyncIO Database Example Wrap-Up 9. lhe multiprocessing Module An Overview of the Multiprocessing Module Estimating Pi Using the Monte Carlo Method Estimating Pi Using Processes and Threads Using Python Objects Random Numbers in Parallel Systems Using numpy Finding Prime Numbers Queues of Work Verifying Primes Using Interprocess Communication Serial Solution Naive Pool Solution A Less Naive Pool Solution Using Manager.Value as a Flag Using Redis as a Flag Using RawValue as a Flag Using mmap as a Flag Using mmap as a Flag Redux Sharing numpy Data with multiprocessing Synchronizing File and Variable Access File Locking Locking a Value Wrap-Up 10. Clusters and Job Queues Benefits of Clustering Drawbacks of Clustering $462 Million Wall Street Loss Through Poor Cluster Upgrade Strategy Skype's 24-Hour Global Outage Common Cluster Designs How to Start a Clustered Solution Ways to Avoid Pain When Using Clusters Three Clustering Solutions Using the Parallel Python Module for Simple Local Clusters Using IPython Parallel to Support Research NSQ for Robust Production Clustering Queues Pub/sub Distributed Prime Calculation Other Clustering Tools to Look At Wrap-Up 11. Using Less RAM Objects for Primitives Are Expensive The Array Module Stores Many Primitive Objects Cheaply Understanding the RAM Used in a Collection Bytes Versus Unicode Efficiently Storing Lots of Text in RAM Trying These Approaches on 8 Million Tokens Tips for Using Less RAM Probabilistic Data Structures Very Approximate Counting with a 1-byte Morris Counter K-Minimum Values Bloom Filters LogLog Counter Real-World Example 12. Lessons from the Field Adaptive Lab's Social Media Analytics (SOMA) Python at Adaptive Lab SoMA's Design Our Development Methodology Maintaining SoMA Advice for Fellow Engineers Making Deep Learning Fly with RadimRehurek.com The Sweet Spot Lessons in Optimizing Wrap-Up Large-Scale Productionized Machine Learning at Lyst.com Pythons Place at Lyst Cluster Design Code Evolution in a Fast-Moving Start-Up Building the Recommendation Engine Reporting and Monitoring Some Advice Large-Scale Social Media Analysis at Smesh Pythons Role at Smesh The Platform High Performance Real-Time String Matching Reporting, Monitoring, Debugging, and Deployment PyPy for Successful Web and Data Processing Systems Prerequisites The Database The Web Application OCR and Translation Task Distribution and Workers Conclusion Task Queues at Lanyrd.com Python's Role at Lanyrd Making the Task Queue Performant Reporting, Monitoring, Debugging, and Deployment Advice to a Fellow Developer Index
| | | | | |