天天看點

《Python高性能程式設計》——導讀

《Python高性能程式設計》——導讀

python很容易學。你之是以閱讀本書可能是因為你的代碼現在能夠正确運作,而你希望它能跑得更快。你可以很輕松地修改代碼,反複地實作你的想法,你對這一點很滿意。但能夠輕松實作和代碼跑得夠快之間的取舍卻是一個世人皆知且令人惋惜的現象。而這個問題其實是可以解決的。

有些人想要讓順序執行的過程跑得更快。有些人需要利用多核架構、叢集,或者圖形處理單元的優勢來解決他們的問題。有些人需要可伸縮系統在保證可靠性的前提下酌情或根據資金多少處理更多或更少的工作。有些人意識到他們的程式設計技巧,通常是來自其他語言,可能不如别人的自然。

我們會在本書中覆寫所有這些主題,給出明智的指導去了解瓶頸并提出效率更高、伸縮性更好的解決方案。我們也會在本書中包含那些來自前人的戰場故事,讓你可以避免重蹈覆轍。

python很适合快速開發、生産環境部署,以及可伸縮系統。python的生态系統裡到處都是幫你解決伸縮性的人,讓你有更多時間處理那些更有挑戰性的工作。

[第1章 了解高性能python

1.1.1 計算單元

1.1.2 存儲單元

1.1.3 通信層

<a href="https://yq.aliyun.com/articles/96731/">1.2 将基本的元素組裝到一起</a>

<a href="https://yq.aliyun.com/articles/96737/">1.3 為什麼使用python</a>

[第2章 通過性能分析找到瓶頸

<a href="https://yq.aliyun.com/articles/96756/">2.2 julia集合的介紹</a>

<a href="https://yq.aliyun.com/articles/96780/">2.3 計算完整的julia集合</a>

<a href="https://yq.aliyun.com/articles/96793/">2.4 計時的簡單方法——列印和修飾</a>

<a href="https://yq.aliyun.com/articles/96798/">2.5 用unix的time指令進行簡單的計時</a>

<a href="https://yq.aliyun.com/articles/96808/">2.6 使用cprofile子產品</a>

<a href="https://yq.aliyun.com/articles/96814/">2.7 用runsnakerun對cprofile的輸出進行可視化</a>

<a href="https://yq.aliyun.com/articles/96827/">2.8 用line_profiler進行逐行分析</a>

<a href="https://yq.aliyun.com/articles/96841/">2.9 用memory_profiler診斷記憶體的用量</a>

<a href="https://yq.aliyun.com/articles/96855/">2.10 用heapy調查堆上的對象</a>

<a href="https://yq.aliyun.com/articles/96879/">2.11 用dowser實時畫出變量的執行個體</a>

<a href="https://yq.aliyun.com/articles/96890/">2.12 用dis子產品檢查cpython位元組碼</a>

<a href="https://yq.aliyun.com/articles/96894/">2.13 在優化期間進行單元測試保持代碼的正确性</a>

<a href="https://yq.aliyun.com/articles/96900/">2.14 確定性能分析成功的政策</a>

<a href="https://yq.aliyun.com/articles/96904/">2.15 小結</a>

第3章 清單和元組

第4章 字典和集合

第5章 疊代器和生成器

第6章 矩陣和矢量計算

第7章 編譯成c

第8章 并發

第9章 multiprocessing子產品

第10章 叢集和工作隊列

第11章 使用更少的ram

第12章 現場教訓