摘要:前言項(xiàng)目中開發(fā)的幾個(gè)服務(wù)一直使用作為服務(wù)器,本人也曾提出過疑問,為什么是,得到的答案是比較,,,的并發(fā)性能最好,而且最為輕量級(jí)。的賣點(diǎn)是超高的開發(fā)效率,其性能擴(kuò)展有限的性能表現(xiàn)前兩天有寫一篇的帖子傳送門使用對(duì)鑒權(quán)接口加壓,看的性能表現(xiàn)。
前言
項(xiàng)目中開發(fā)的幾個(gè)服務(wù)一直使用tornado作為http服務(wù)器,本人也曾提出過疑問,為什么是tornado,得到的答案是比較tornado,flask,django,tornado的并發(fā)性能最好,而且最為輕量級(jí)。今天好不容易有點(diǎn)空余時(shí)間,突然強(qiáng)迫癥發(fā)作,想搞清楚tornado真的并發(fā)比django強(qiáng)嗎?為什么django的中間件的優(yōu)勢就被忽略了呢?
整體思路就是列舉收集到的框架優(yōu)缺點(diǎn),然后進(jìn)行驗(yàn)證,從其他帖子收集到的優(yōu)缺點(diǎn)匯總?cè)缦拢?/p>
Tornado:
優(yōu)點(diǎn):輕量、異步非阻塞IO處理方式、出色的抗負(fù)載能力、協(xié)程帶來優(yōu)異的處理性能
缺點(diǎn):沒有ORM,提供的支持和模板少,缺少后臺(tái)支持,對(duì)小型項(xiàng)目來說開發(fā)速度沒有django快
分析:tornado所謂的“缺點(diǎn)”是由它的設(shè)計(jì)理念決定的,設(shè)計(jì)上就決定它是一個(gè)小而精的http服務(wù)器+輕量級(jí)web框架,高并發(fā)處理才是它真正擅長的
Django:
優(yōu)點(diǎn):大而全的框架,全自動(dòng)化的管理后臺(tái)帶來超高的開發(fā)效率,豐富的組件
缺點(diǎn):厚重,與他自己的ORM高耦合
分析:Django提供的方便,也意味著Django內(nèi)置的ORM跟框架內(nèi)的其他模塊耦合程度高。應(yīng)用程序必須使用Django內(nèi)置的ORM,否則就不能享受到框架內(nèi)提供的種種基于其ORM的便利;理論上可以切換掉其ORM模塊,但這就相當(dāng)于要把裝修完畢的房子拆除重新裝修,倒不如一開始就去毛胚房做全新的裝修。Django的賣點(diǎn)是超高的開發(fā)效率,其性能擴(kuò)展有限
前兩天有寫一篇django的帖子:傳送門
使用jmeter對(duì)鑒權(quán)接口加壓,看django的性能表現(xiàn)。
使用的是雙核,8G內(nèi)存的centos機(jī)器,200并發(fā)的測試結(jié)果:
tps只有2.6,最大時(shí)延到了77s
詳情見我另外一個(gè)帖子:傳送門
當(dāng)然,被測環(huán)境資源完全一致,這里只貼結(jié)果:
最大時(shí)延484ms,TPS達(dá)到了126
并發(fā)性能差距這么多,當(dāng)然與django使用默認(rèn)的sqlite也有關(guān)系,但也一定程度上反應(yīng)django的orm+模板的機(jī)制,在提供豐富功能模板的同時(shí),在性能上也做出了犧牲.不過有帖子貼出的性能對(duì)比,django的并發(fā)數(shù)量居然超過了tornado,不知道數(shù)據(jù)是否靠譜.
5. 寫在最后本來還想引入sanic的性能表現(xiàn),但sanic只支持python3.5+版本,手頭的環(huán)境不滿足要求,升級(jí)起來比較麻煩,這里先留一個(gè)坑,后續(xù)有環(huán)境再測試對(duì)比.
看其他帖子的數(shù)據(jù),sanic的 并發(fā)性能可能會(huì)超過tornado,待后續(xù)驗(yàn)證
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/42774.html
摘要:百萬量級(jí)的產(chǎn)品,扛起來并不費(fèi)力。當(dāng)你的網(wǎng)站或者接口有一個(gè)用戶訪問時(shí),能在短時(shí)間內(nèi)返回,那么,當(dāng)用戶量達(dá)到時(shí),是否能在同樣的時(shí)間內(nèi)返回呢這是個(gè)問題。對(duì)于后端來說,把響應(yīng)時(shí)間控制在合理的范圍之內(nèi)是很重要的。其他的也是類似。 分幾點(diǎn)來答: 1. 首先,這其實(shí)是個(gè)技術(shù)選型題。 做技術(shù)選型的時(shí)候不能單純的考慮性能,應(yīng)該優(yōu)先考慮業(yè)務(wù)類型,以及團(tuán)隊(duì)水平。另外的話,框架只是其中一環(huán),還有配套呢。 如果...
摘要:百萬量級(jí)的產(chǎn)品,扛起來并不費(fèi)力。當(dāng)你的網(wǎng)站或者接口有一個(gè)用戶訪問時(shí),能在短時(shí)間內(nèi)返回,那么,當(dāng)用戶量達(dá)到時(shí),是否能在同樣的時(shí)間內(nèi)返回呢這是個(gè)問題。對(duì)于后端來說,把響應(yīng)時(shí)間控制在合理的范圍之內(nèi)是很重要的。其他的也是類似。 分幾點(diǎn)來答: 1. 首先,這其實(shí)是個(gè)技術(shù)選型題。 做技術(shù)選型的時(shí)候不能單純的考慮性能,應(yīng)該優(yōu)先考慮業(yè)務(wù)類型,以及團(tuán)隊(duì)水平。另外的話,框架只是其中一環(huán),還有配套呢。 如果...
摘要:要使用協(xié)議我們不可能自己實(shí)現(xiàn)一個(gè),現(xiàn)在比較流行的解決方案就是使用套接字編程,已經(jīng)幫我們實(shí)現(xiàn)了協(xié)議的細(xì)節(jié),我們可以直接拿來使用不用關(guān)心細(xì)節(jié)。 前幾天寫了 淺談cgi、wsgi、uwsgi 與 uWSGI 等一些 python web 開發(fā)中遇到的一些名詞的理解,今天博主就根據(jù) wsgi 標(biāo)準(zhǔn)實(shí)現(xiàn)一個(gè) web server,并嘗試用它來跑 Django、tornado 框架的 app。 編...
摘要:數(shù)據(jù)科學(xué)項(xiàng)目的完整流程通常是這樣的五步驟需求定義數(shù)據(jù)獲取數(shù)據(jù)治理數(shù)據(jù)分析數(shù)據(jù)可視化一需求定義需求定義是數(shù)據(jù)科學(xué)項(xiàng)目和數(shù)據(jù)科學(xué)比賽的最大不同之處,在真實(shí)情景下,我們往往對(duì)目標(biāo)函數(shù)自變量約束條件都并不清晰。 概述 和那些數(shù)據(jù)科學(xué)比賽不同,在真實(shí)的數(shù)據(jù)科學(xué)中,我們可能更多的時(shí)間不是在做算法的開發(fā),而是對(duì)需求的定義和數(shù)據(jù)的治理。所以,如何更好的結(jié)合現(xiàn)實(shí)業(yè)務(wù),讓數(shù)據(jù)真正產(chǎn)生價(jià)值成了一個(gè)更有意義的...
閱讀 2550·2021-11-22 15:35
閱讀 3826·2021-11-04 16:14
閱讀 2770·2021-10-20 13:47
閱讀 2584·2021-10-13 09:49
閱讀 2136·2019-08-30 14:09
閱讀 2498·2019-08-26 13:49
閱讀 948·2019-08-26 10:45
閱讀 2837·2019-08-23 17:54