日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...

發布時間:2025/1/21 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:騰訊十年Python開發老司機推薦的入門書籍,你確定不看嗎?

稍微關心編程語言的使用趨勢的人都知道,最近幾年,國內最火的兩種語言非 Python 與 Go 莫屬,于是,隔三差五就會有人問:這兩種語言誰更厲害/好找工作/高工資……

對于編程語言的爭論,就是猿界的生理周期,每個月都要鬧上一回。到了年末,各類榜單也是特別抓人眼球,鬧得更兇。

其實,它們各有對方所無法比擬的優勢以及用武之地,很多爭論都是沒有必要的。身為一個正在努力學習 Python 的(準)中年程序員,我覺得吧,先把一門語言精進了再說。沒有差勁的語言,只有差勁的程序員,等真的把語言學好了,必定是“山重水復疑無路,柳暗花明又一村”。

Python高性能編程

Python高性能編程電子書籍下載: 鏈接:

https://pan.baidu.com/s/1xwF5dEYIbDmQOnZpy5amQA

提取碼:2d0d

(百度云盤提供)

本書適合已入門 Python、還想要進階和提高的讀者閱讀。

所有計算機語言說到底都是在硬件層面的數據操作,所以高性能編程的一個終極目標可以說是“高性能硬件編程”。然而,Python 是一門高度抽象的計算機語言,它的一大優勢是開發團隊的高效,不可否認地存在這樣或那樣的設計缺陷,以及由于開發者的水平而造成的人為的性能缺陷。

本書的一大目的就是通過介紹各種模塊和原理,來促成在快速開發 Python 的同時避免很多性能局限,既減低開發及維護成本,又收獲系統的高效。

1、性能分析是基礎

首先的一個關鍵就是性能分析,借此可以找到性能的瓶頸,使得性能調優做到事半功倍。

性能調優能夠讓你的代碼能夠跑得“足夠快”以及“足夠瘦”。性能分析能夠讓你用最小的代價做出最實用的決定。

書中介紹了幾種性能分析的工具:

(1)基本技術如 IPython 的 %timeit 魔法函數、time.time()、以及一個計時修飾器,使用這些技術來了解語句和函數的行為。

(2)內置工具如 cProfile,了解代碼中哪些函數耗時最長,并用 runsnake 進行可視化。

(3)line_profiler 工具,對選定的函數進行逐行分析,其結果包含每行被調用的次數以及每行花費的時間百分比。

(4)memory_profiler 工具,以圖的形式展示RAM的使用情況隨時間的變化,解釋為什么某個函數占用了比預期更多的 RAM。

(5)Guppy 項目的 heapy 工具,查看 Python 堆中對象的數量以及每個對象的大小,這對于消滅奇怪的內存泄漏特別有用。

(6)dowser 工具,通過Web瀏覽器界面審查一個持續運行的進程中的實時對象。

(7)dis 模塊,查看 CPython 的字節碼,了解基于棧的 Python 虛擬機如何運行。

(8)單元測試,在性能分析時要避免由優化手段帶來的破壞性后果。

作者強調了性能分析的重要性,同時也對如何確保性能分析的成功提了醒,例如,將測試代碼與主體代碼分離、避免硬件條件的干擾(如在BIOS上禁用了TurboBoost、禁用了操作系統改寫SpeedStep、只使用主電源等)、運行實驗時禁用后臺工具如備份和Dropbox、多次實驗、重啟并重跑實驗來二次驗證結果,等等。

性能分析對于高性能編程的作用,就好比復雜度分析對于算法的作用,它本身不是高性能編程的一部分,但卻是最終有效的一種評判標準。

2、數據結構的影響

高性能編程最重要的事情是了解數據結構所能提供的性能保證。

高性能編程的很大一部分是了解你查詢數據的方式,并選擇一個能夠迅速響應這個查詢的數據結構。

書中主要分析了 4 種數據結構:列表和元組就類似于其它編程語言的數組,主要用于存儲具有內在次序的數據;而字典和集合就類似其它編程語言的哈希表/散列集,主要用于存儲無序的數據。

本書在介紹相關內容的時候很克制,所介紹的都是些影響“速度更快、開銷更低”的內容,例如:內置的 Tim 排序算法、列表的 resize 操作帶來的超額分配的開銷、元組的內存滯留(intern機制)帶來的資源優化、散列函數與嗅探函數的工作原理、散列碰撞帶來的麻煩與應對、Python 命名空間的管理,等等。

散列碰撞的結果

理解了這些內容,就能更加了解在什么情況下使用什么數據結構,以及如何優化這些數據結構的性能。

另外,關于這 4 種數據結構,書中還得出了一些有趣的結論:對于一個擁有100 000 000個元素的大列表,實際分配的可能是112 500 007個元素;初始化一個列表比初始化一個元組慢5.1 倍;字典或集合默認的最小長度是8(也就是說,即使你只保存3個值,Python仍然會分配 8 個元素)、對于有限大小的字典不存在一個最佳的散列函數。

3、矩陣和矢量計算

矢量計算是計算機工作原理不可或缺的部分,也是在芯片層次上對程序進行加速所必須了解的部分。

然而,原生 Python 并不支持矢量操作,因為 Python 列表存儲的不是實際的數據,而是對實際數據的引用。在矢量和矩陣操作時,這種存儲結構會造成極大的性能下降。比如,grid[5][2] 中的兩個數字其實是索引值,程序需要根據索引值進行兩次查找,才能獲得實際的數據。

同時,因為數據被分片存儲,我們只能分別對每一片進行傳輸,而不是一次性傳輸整個塊,因此,內存傳輸的開銷也很大。

減少瓶頸最好的方法是讓代碼知道如何分配我們的內存以及如何使用我們的數據進行計算。

Numpy 能夠將數據連續存儲在內存中并支持數據的矢量操作,在數據處理方面,它是高性能編程的最佳解決方案之一。

Numpy 帶來性能提升的關鍵在于,它使用了高度優化且特殊構建的對象,取代通用的列表結構來處理數組,由此減少了內存碎片;此外,自動矢量化的數學操作使得矩陣計算非常高效。

Numpy 在矢量操作上的缺陷是一次只能處理一個操作。例如,當我們做 A * B + C 這樣的矢量操作時,先要等待 A * B 操作完成,并保存數據在一個臨時矢量中,然后再將這個新的矢量和 C 相加。

Numexpr 模塊可以將矢量表達式編譯成非常高效的代碼,可以將緩存失效以及臨時變量的數量最小化。另外,它還能利用多核 CPU 以及 Intel 芯片專用的指令集來將速度最大化。

書中嘗試了多種優化方法的組合,通過詳細的分析,展示了高性能編程所能帶來的提升效果。

4、編譯器

書中提出一個觀點:讓你的代碼運行更快的最簡單的辦法就是讓它做更少的工作。

編譯器把代碼編譯成機器碼,是提高性能的關鍵組成部分。

不同的編譯器有什么優勢呢,它們對于性能提升會帶來多少好處呢?書中主要介紹了如下編譯工具:

Cython ——這是編譯成C最通用的工具,覆蓋了Numpy和普通的Python代碼(需要一些C語言的知識)。

Shed Skin —— 一個用于非Numpy代碼的,自動把Python轉換成C的轉換器。

Numba —— 一個專用于Numpy的新編譯器。

Pythran —— 一個用于Numpy和非numpy代碼的新編譯器。

PyPy —— 一個用于非Numpy代碼的,取代常規Python可執行程序的穩定的即時編譯器。

書中分析了這幾種編譯器的工作原理、優化范圍、以及適用場景等,是不錯的入門介紹。此外,作者還提到了其它的編譯工具,如Theano、Parakeet、PyViennaCL、ViennaCL、Nuitka 與 Pyston 等,它們各有取舍,在不同領域提供了支撐之力。

5、密集型任務

高性能編程的一個改進方向是提高密集型任務的處理效率,而這樣的任務無非兩大類:I/O 密集型與 CPU 密集型。

I/O 密集型任務主要是磁盤讀寫與網絡通信任務,占用較多 I/O 時間,而對 CPU 要求較少;CPU 密集型任務恰恰相反,它們要消耗較多的 CPU 時間,進行大量的復雜的計算,例如計算圓周率與解析視頻等。

改善 I/O 密集型任務的技術是異步編程 ,它使得程序在 I/O 阻塞時,并發執行其它任務,并通過“事件循環”機制來管理各項任務的運行時機,從而提升程序的執行效率。

書中介紹了三種異步編程的庫:Gevent、Tornado 和 Asyncio,對三種模塊的區別做了較多分析。

改善 CPU 密集型任務的主要方法是利用多核 CPU 進行多進程的運算。

Multiprocessing 模塊基于進程和基于線程的并行處理,在隊列上共享任務,以及在進程間共享數據,是處理CPU密集型任務的重要技術。

書中沒有隱瞞它的局限性:Amdahl 定律揭示的優化限度、適應于單機多核而多機則有其它選擇、全局解釋鎖 GIL 的束縛、以及進程間通信(同步數據和檢查共享數據)的開銷。針對進程間通信問題,書中還分析了多種解決方案,例如 Less Na?ve Pool、Manager、Redis、RawValue、MMap 等。

6、集群與現場教訓

集群是一種多服務器運行相同任務的結構,也就是說,集群中的各節點提供相同的服務,其優點是系統擴展容易、具備容災恢復能力。

集群需要克服的挑戰有:機器間信息同步的延遲、機器間配置與性能的差異、機器的損耗與維護、其它難以預料的問題。書中列舉了兩個慘痛的教訓:華爾街公司騎士資本由于軟件升級引入的錯誤,損失4.62億美元;Skype 公司 24 小時全球中斷的嚴重事故。

書中給我們重點介紹了三個集群化解決方案:Parallel Python、IPython Parallel 和 NSQ。引申也介紹了一些普遍使用的方案,如 Celery、Gearman、PyRes、SQS。

關于現場教訓,它們不僅僅是一些事故或者故事而已,由成功的公司所總結出來的經驗更是來之不易的智慧。書中單獨用一章內容分享了六篇文章,這些文章出自幾個使用 Python 的公司/大型組織,像是Adaptive Lab、RadimRehurek、Smesh、PyPy 與 Lanyrd ,這些國外組織的一線實踐經驗,應該也能給國內的 Python 社區帶來一些啟示。

7、寫在最后

眾所周知,Python 應用前景大、簡單易學、方便開發與部署,然而與其它編程語言相比,它的性能幾乎總是落于下風。如何解決這個難題呢?本期薦書的書目就是一種回應。

《Python高性能編程》全書從微觀到宏觀對高性能編程的方方面面做了講解,主要包含以下主題:計算機內部結構的背景知識、列表和元組、字典和集合、迭代器和生成器、矩陣和矢量計算、編譯器、并發、集群和工作隊列等。這些內容為編寫更快的 Python 指明了答案。

本篇文章主要以梳理書中的內容要點為主,平均而兼顧地理清了全書脈絡(PS:太面面俱到了,但愿不被指責為一篇流水賬的讀書筆記才好……)。我認為,鑒于書中談及的這些話題,它就足以成為我們薦書欄目的一員了。除去某些句段的糟糕翻譯、成書時間比較早(2014年)而造成的過時外,這本書總體質量不錯,可稱為是一份優秀的高性能編程的指引手冊。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的通信系统设计与python的书_腾讯十年Python开发老司机推荐的入门书籍,你确定不看吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产盗摄一区二区三区 | 人人玩人人干 | 91视频看看 | 日本人妖japanesexxx| 日本免费在线观看 | 美女被变态侵犯 | 日韩三级免费观看 | 黄色免费版 | 在线观看免费人成视频 | 极品美女av | 亚洲区一区 | 国产精品性爱在线 | 国产视频最新 | 日本黄色视| 懂色视频在线观看 | 黄色一级播放 | 国产精品第二页 | 亚洲日本视频在线观看 | 成人在线播放av | 久久久久国产精品一区 | 在线你懂 | 久久久久亚洲色欲AV无码网站 | 日韩av男人的天堂 | 国产欧美一区二区三区鸳鸯浴 | 91精品国产高清91久久久久久 | 亚洲大尺度在线观看 | 午夜资源站 | 蜜桃成人在线 | 亚洲精品男人的天堂 | 激情综合网激情 | 激情小说亚洲图片 | 农村寡妇一区二区三区 | 97自拍视频在线 | 精品久久久久久亚洲 | 老熟妇午夜毛片一区二区三区 | 国产精品porn | 一区二区三区中文字幕 | 中文字幕一区二区久久人妻 | 久久久精品视频网站 | 国产精品久久久久久免费免熟 | www.涩涩爱 | 在线播放不卡 | 永久免费黄色 | 不卡视频国产 | 欧美在线不卡 | 国产一区美女 | 性感美女在线观看 | 欧美成人国产va精品日本一级 | 国产又粗又猛又爽又黄的视频一 | 男人的天堂色 | 亚洲青草 | www.成人在线观看 | 91日韩一区二区 | 久久国产免费观看 | 成人依人 | 少妇15p | 日韩有码一区二区三区 | 看黄色a级片 | 黄色一区二区视频 | 精品免费一区二区 | 成年人在线观看 | 欧美日日夜夜 | 天天干天天操天天 | 日韩欧美三级 | 宅男噜噜噜666在线观看 | 国产福利免费视频 | 好吊色这里只有精品 | www.奇米.com| 偷自在线| 日韩a级大片| 亚洲国产大片 | 欧美日韩成人一区二区三区 | 国产精品二区三区 | 色婷婷av一区二区三 | 天天干狠狠操 | 国产在线播放网站 | av激情影院 | 性爽爽| 女人裸体免费网站 | 91av导航 | 欧美一级鲁丝片 | 黄色的网站在线 | aav在线| 久久黄色一级 | 精品乱人伦一区二区三区 | 色无极亚洲影院 | 侵犯女教师一区二区三区 | 狠狠躁天天躁夜夜躁婷婷 | 国产成人无码av在线播放dvd | 成人首页 | 久久婷五月天 | 国产又大又粗又长 | 伊人久久狼人 | 久久久精品视频免费 | 久久青草热 | 国产成人精品国内自产拍免费看 | 国产成人高清在线 | 日本国产视频 | 老汉av在线 |