摘要:注本文的原文地址為這個(gè)是性能快速優(yōu)化的第二部分,第一部分請(qǐng)點(diǎn)擊這里。當(dāng)你寫代碼了,過(guò)一遍數(shù)據(jù)結(jié)構(gòu),迭代結(jié)構(gòu),內(nèi)建和為創(chuàng)建擴(kuò)展,如有必要。更新是在的范圍之外,這意味著你可以使用這個(gè)標(biāo)準(zhǔn)庫(kù)來(lái)運(yùn)行多個(gè)進(jìn)程。看下我的的印度演講
注:本文的原文地址為 Quick Python Performance Optimization: Part II
這個(gè)是 Python 性能快速優(yōu)化的第二部分,第一部分請(qǐng)點(diǎn)擊這里。
使用 Map ,Reduce 和 Filter 代替 for 循環(huán)
校驗(yàn) a in b, 字典 或 set 比 列表 或 元組 更好
當(dāng)數(shù)據(jù)量大的時(shí)候,盡可能使用不可變數(shù)據(jù)類型,他們更快 元組 > 列表
在一個(gè)列表中插入數(shù)據(jù)的復(fù)雜度為 O(n)
如果你需要操作列表的兩端,使用 deque
del - 刪除對(duì)象使用如下
1) python 自己處理它,但確保使用了 gc 模塊
2) 編寫 __del__ 函數(shù)
3) 最簡(jiǎn)單的方式,使用后調(diào)用 del
time.clock()
GIL(http://wiki.python.org/moin/GlobalInterpreterLock) - GIL is a daemon
GIL 僅僅允許一個(gè) Python 的原生線程來(lái)運(yùn)行每個(gè)進(jìn)程。阻止 CPU 級(jí)別的并行,嘗試使用 ctypes 和 原生的 C 庫(kù)來(lái)解決它,當(dāng)你達(dá)到 Python 優(yōu)化的最后,總是存在一個(gè)選項(xiàng),可以使用原生的 C 重寫慢的函數(shù),通過(guò) Python 的 C 綁定使用它,其他的庫(kù)如 gevent 也是致力于解決這個(gè)問(wèn)題,并且獲得了成功。
TL,DR:當(dāng)你寫代碼了,過(guò)一遍數(shù)據(jù)結(jié)構(gòu),迭代結(jié)構(gòu),內(nèi)建和為 GIL 創(chuàng)建 C 擴(kuò)展,如有必要。
更新:multiprocessing 是在 GIL 的范圍之外,這意味著你可以使用 multiprocessing 這個(gè)標(biāo)準(zhǔn)庫(kù)來(lái)運(yùn)行多個(gè)進(jìn)程。
看下我的 2013 的印度 PyCon 演講
www.slideshare.net/atmb4u/faster-python
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/37329.html
摘要:這意味著一級(jí)優(yōu)化,而不是進(jìn)入冗長(zhǎng)的優(yōu)化序列。使用創(chuàng)建生成器以及盡可能使用,它們比正常的列表方式更快。讓我繼續(xù)下一個(gè)層次的第二部分快速優(yōu)化技巧 注: 本文的原文地址 quick-python-performance-optimization-part-i Python可能最容易扼殺你的想法,但不是最好的代碼實(shí)現(xiàn)。盡管強(qiáng)烈反對(duì)過(guò)早優(yōu)化,但在 Python 代碼中一點(diǎn)點(diǎn)的優(yōu)化都可能...
摘要:新聞熱點(diǎn)國(guó)內(nèi)國(guó)外,前端最新動(dòng)態(tài)發(fā)布近日,正式發(fā)布新版本中提供了一系列的特性與問(wèn)題修復(fù)。而近日正式發(fā)布,其能夠幫助開發(fā)者快速構(gòu)建應(yīng)用。 前端每周清單第 10 期:Firefox53、React VR發(fā)布、JS測(cè)試技術(shù)概述、Microsoft Edge現(xiàn)代DOM樹構(gòu)建及性能之道 為InfoQ中文站特供稿件,首發(fā)地址為這里;如需轉(zhuǎn)載,請(qǐng)與InfoQ中文站聯(lián)系。從屬于筆者的 Web 前端入門...
摘要:讓你收獲滿滿碼個(gè)蛋從年月日推送第篇文章一年過(guò)去了已累積推文近篇文章,本文為年度精選,共計(jì)篇,按照類別整理便于讀者主題閱讀。本篇文章是今年的最后一篇技術(shù)文章,為了讓大家在家也能好好學(xué)習(xí),特此花了幾個(gè)小時(shí)整理了這些文章。 showImg(https://segmentfault.com/img/remote/1460000013241596); 讓你收獲滿滿! 碼個(gè)蛋從2017年02月20...
摘要:十開放模式識(shí)別項(xiàng)目開放模式識(shí)別項(xiàng)目,致力于開發(fā)出一套包含圖像處理計(jì)算機(jī)視覺(jué)自然語(yǔ)言處理模式識(shí)別機(jī)器學(xué)習(xí)和相關(guān)領(lǐng)域算法的函數(shù)庫(kù)。 一、開源生物特征識(shí)別庫(kù) OpenBROpenBR 是一個(gè)用來(lái)從照片中識(shí)別人臉的工具。還支持推算性別與年齡。使用方法:$ br -algorithm FaceRecognition -compare me.jpg you.jpg二、計(jì)算機(jī)視覺(jué)庫(kù) OpenCVOpenC...
閱讀 5766·2021-11-24 10:25
閱讀 2702·2021-11-16 11:44
閱讀 3860·2021-10-11 11:09
閱讀 3178·2021-09-02 15:41
閱讀 3261·2019-08-30 14:14
閱讀 2290·2019-08-29 14:10
閱讀 2354·2019-08-29 11:03
閱讀 1131·2019-08-26 13:47