溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DropBox使用Python的經(jīng)驗(yàn)有哪些

發(fā)布時(shí)間:2021-10-26 16:52:01 來源:億速云 閱讀:134 作者:柒染 欄目:編程語言

DropBox使用Python的經(jīng)驗(yàn)有哪些,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

DropBox 使用 Python 的經(jīng)驗(yàn)分享:

1.1 Use Python

Dropbox 的 99.9% 的代碼是用 Python 寫的。 Python 使用在服務(wù)器端、桌面的客戶端、網(wǎng)站控制邏輯,后端的 API 和分析

在 Android 平臺(tái),由于內(nèi)存的限制不能使用 Python

使用 Python 語言運(yùn)行單一的代碼。通過使用 PyObjs , WxPython , types , py2exe , py2ap , PyWin32 等工具,讓 Dropbox 運(yùn)行在 Windows , Mac 和 Linux 系統(tǒng)

優(yōu)點(diǎn):

開發(fā)人員通過 Python 互相溝通和表達(dá)思想

簡(jiǎn)單易學(xué),易于閱讀,易于編寫,新人容易上手

缺點(diǎn):

別傻了

它消耗太多的內(nèi)存并且運(yùn)行的太慢。在服務(wù)器端不是大問題,只要買大的機(jī)器就行。但在客戶端,你別指望讓老的 Power PC 用戶升級(jí)設(shè)備

Python 和 C 混合編程會(huì)產(chǎn)生問題,因?yàn)樗茈y跨越語言邊界輪廓想象你使用固定內(nèi)存和 CPU 想干什么( Coding in a mixed environment of Python and C creates problems because it's hard to profile across the language boundaries like you want to do when fixing memory and CPU problems. )

內(nèi)存碎片問題是腳本語言可能不是一個(gè)長期運(yùn)行進(jìn)程的好主意

1.2 從開始就讓它工作 (Just Work Baby)

如果不管你是什么文件系統(tǒng),是什么操作系統(tǒng),什么應(yīng)用程序所使用。該產(chǎn)品應(yīng)始終只是要能工作。

在所支持的種類繁多的平臺(tái)上,分析遇到的各種錯(cuò)誤, Python 幫助他們進(jìn)行快速的迭代。

1.3 早發(fā)布 (Release Early)

在一天內(nèi)進(jìn)行編碼并發(fā)布它,使用 Python 很容易做到

1.4 在循環(huán)內(nèi)使用 C ,優(yōu)化 CPU 是容易的 (Use C for Inner Loops, Optimizing CPU is easy)

是一種解決速度太慢的問題的方法。

優(yōu)化內(nèi)部循環(huán),以減少 CPU 時(shí)間。

在 Python 中循環(huán)與 C 中相比,多消耗 44% 時(shí)間

Python 的虛擬機(jī)字節(jié)碼調(diào)度是很慢。

有許多工具調(diào)優(yōu) CPU 。

CPU 優(yōu)化通常限于小代碼段

1.5 輪詢不容易擴(kuò)展 (Polling 30 million clients all over the world doesn’t scale)

建立一個(gè) HTTP 通知結(jié)構(gòu),以避免客戶端輪詢服務(wù)器。

1.6 自定義內(nèi)存分配器,優(yōu)化內(nèi)存很困難

曾經(jīng)有一段時(shí)間***的問題??梢允褂玫拇罅?jī)?nèi)存但內(nèi)存永遠(yuǎn)不會(huì)被釋放。對(duì)于大型同步他們可以使用最多 1.5GB 的,現(xiàn)在他們很少使用超過 100MB 的。

很難,因?yàn)椋?/p>

很少有工具為 Python 和 C 優(yōu)化內(nèi)存

內(nèi)存膨脹有很多的原因:在 Python 和 C 代碼內(nèi)存泄漏,內(nèi)存碎片,內(nèi)存使用效率不高。

固定內(nèi)存的低效率沒有明顯的幫助。他們認(rèn)為有一個(gè)內(nèi)存泄漏,但沒有。

問題變成了內(nèi)存碎片。內(nèi)存碎片是發(fā)生在不同大小的內(nèi)存塊是不斷被刪除和分配。什么情況是連續(xù)的內(nèi)存塊可以不再進(jìn)行分配。 CPython 沒有一個(gè)垃圾收集器,所以所有的內(nèi)存根本無法分配和堆內(nèi)存不斷增長

解決辦法是建立一個(gè)自定義分配器。該文件的元數(shù)據(jù)對(duì)象時(shí),做了很多的增長轉(zhuǎn)移,所以明顯的成果是在 C 中使用 mmap 創(chuàng)建自定義分配器。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI