摘要:前言測(cè)試異步與同步下對(duì)于數(shù)據(jù)庫(kù)操作的性能通過(guò)測(cè)試同步以及異步下對(duì)于數(shù)據(jù)庫(kù)的增加和查找操作,以進(jìn)行性能評(píng)估。所以異步架構(gòu)在用于單純的數(shù)據(jù)庫(kù)操作時(shí),并不能取得非常良好的性能優(yōu)化,數(shù)據(jù)庫(kù)操作本身的優(yōu)化還是依賴于操作本身以及數(shù)據(jù)庫(kù)結(jié)構(gòu)的優(yōu)化。
前言
測(cè)試異步與同步下Python對(duì)于PostgreSQL數(shù)據(jù)庫(kù)操作的性能
通過(guò)測(cè)試同步以及異步下對(duì)于數(shù)據(jù)庫(kù)的增加和查找操作,以進(jìn)行性能評(píng)估。更直觀的以及量化地感受同步以及異步下的性能差距。
環(huán)境初始化代碼地址
需要安裝pipenv,詳細(xì)內(nèi)容可參考
pip3.6 install pipenv git clone https://github.com/GuangTianLi/python-sql-performance.git cd python-sql-performance pipenv sync pipenv shellSQL操作性能評(píng)估
python postgresql_speed_test.py DBAPI: psycopg2 11004 function calls in 2.235 seconds DBAPI: asyncpg 471973 function calls in 2.436 seconds DBAPI: uvloop 206945 function calls in 0.794 seconds DBAPI: psycopg2, total seconds 2.558364 DBAPI: asyncpg, total seconds 2.309759 DBAPI: uvloop, total seconds 2.032303結(jié)論
從結(jié)果上看,對(duì)于數(shù)據(jù)庫(kù)操作本身,異步對(duì)于其性能本身只能算是錦上添花。而異步操作本身則也需要添加對(duì)事件循環(huán)的處理,等于是變相的增加了運(yùn)行時(shí)間,而如果每個(gè)數(shù)據(jù)庫(kù)操作本身所需要的時(shí)間小于事件循環(huán)處理的時(shí)間,則其總時(shí)間就是增加的。
所以異步架構(gòu)在用于單純的數(shù)據(jù)庫(kù)操作時(shí),并不能取得非常良好的性能優(yōu)化,數(shù)據(jù)庫(kù)操作本身的優(yōu)化還是依賴于操作本身以及數(shù)據(jù)庫(kù)結(jié)構(gòu)的優(yōu)化。
WebServer性能評(píng)估 flaskpython flask_server_speed_test.py
wrk -d 60 -c 100 -t 12 --timeout 8 http://127.0.0.1:8080/db Running 1m test @ http://127.0.0.1:8080/db 12 threads and 100 connections Thread Stats Avg Stdev Max +/- Stdev Latency 331.47ms 221.85ms 2.01s 89.71% Req/Sec 30.95 17.90 80.00 63.85% 18597 requests in 1.00m, 3.10MB read Requests/sec: 309.41 Transfer/sec: 52.88KBsanic
python sanic_server_speed_test.py
wrk -d 60 -c 100 -t 12 --timeout 8 http://127.0.0.1:8080/db Running 1m test @ http://127.0.0.1:8080/db 12 threads and 100 connections Thread Stats Avg Stdev Max +/- Stdev Latency 162.95ms 99.56ms 1.89s 87.88% Req/Sec 52.26 23.73 148.00 61.57% 36702 requests in 1.00m, 4.83MB read Requests/sec: 610.64 Transfer/sec: 82.29KB結(jié)論
從中等量級(jí)的壓測(cè)的結(jié)果上看,對(duì)于異步架構(gòu)的網(wǎng)絡(luò)服務(wù)器,在性能上有了很大的提升。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42348.html
摘要:前言測(cè)試異步與同步下對(duì)于數(shù)據(jù)庫(kù)操作的性能通過(guò)測(cè)試同步以及異步下對(duì)于數(shù)據(jù)庫(kù)的增加和查找操作,以進(jìn)行性能評(píng)估。所以異步架構(gòu)在用于單純的數(shù)據(jù)庫(kù)操作時(shí),并不能取得非常良好的性能優(yōu)化,數(shù)據(jù)庫(kù)操作本身的優(yōu)化還是依賴于操作本身以及數(shù)據(jù)庫(kù)結(jié)構(gòu)的優(yōu)化。 前言 測(cè)試異步與同步下Python對(duì)于PostgreSQL數(shù)據(jù)庫(kù)操作的性能 通過(guò)測(cè)試同步以及異步下對(duì)于數(shù)據(jù)庫(kù)的增加和查找操作,以進(jìn)行性能評(píng)估。更直觀的以...
摘要:核心的幾個(gè)組件模板引擎,框架,請(qǐng)求和應(yīng)答的處理還是有一些難度,但是經(jīng)過(guò)一步步的分析和編碼還是能夠完成功能。模板引擎模板引擎是另外一個(gè)比較大和的模塊。 前前后后,大概兩個(gè)月的時(shí)間,lunar這個(gè)項(xiàng)目終于達(dá)到了一個(gè)很高的完整度。 Lunar是一個(gè)Python語(yǔ)言的網(wǎng)絡(luò)框架,類似于Django,F(xiàn)lask,Tornado等當(dāng)下流行的web framework。最初有這個(gè)想法是在大二下學(xué)期,...
摘要:雖然我們可以在網(wǎng)上參照各種模板項(xiàng)目文章博客等創(chuàng)建一個(gè)數(shù)據(jù)科學(xué)項(xiàng)目,但是目前也沒(méi)有教科書對(duì)這些知識(shí)做一個(gè)統(tǒng)一的回答。舉個(gè)例子來(lái)說(shuō),數(shù)據(jù)科學(xué)分析項(xiàng)目通常就不需要部署和監(jiān)控這兩個(gè)過(guò)程。創(chuàng)建文件描述源數(shù)據(jù)及位置。進(jìn)一步探索和報(bào)告在整個(gè)數(shù)據(jù)科學(xué)項(xiàng)目中 摘要:?在一個(gè)新的數(shù)據(jù)科學(xué)項(xiàng)目,你應(yīng)該如何組織你的項(xiàng)目流程?數(shù)據(jù)和代碼要放在那里?應(yīng)該使用什么工具?在對(duì)數(shù)據(jù)處理之前,需要考慮哪些方面?讀完本文...
摘要:在這個(gè)階段,學(xué)習(xí)工具什么的,重點(diǎn)在于接口測(cè)試的學(xué)習(xí),所有的工具的學(xué)習(xí),都是在為了接口測(cè)試的學(xué)習(xí)做鋪墊。接口測(cè)試工具的使用。 很多朋友想要入行軟件測(cè)試,但是都不知道該怎么學(xué)。 抽個(gè)時(shí)間簡(jiǎn)單的給大家說(shuō)下,對(duì)于0基礎(chǔ)的朋友,應(yīng)該怎么去學(xué)習(xí)軟件測(cè)試。 學(xué)習(xí)軟件測(cè)試有2條路可以選。 最省事的當(dāng)然是找個(gè)...
摘要:所以要想做好中級(jí)軟件測(cè)試工程師,第一步就是能夠完成接口測(cè)試。通常情況下,接口測(cè)試最多還是使用工具來(lái)完成原因無(wú)他,高效。 想來(lái)我26歲才正式投身進(jìn)入軟件測(cè)試行業(yè);通過(guò)...
閱讀 2506·2021-09-28 09:36
閱讀 1508·2021-09-22 15:33
閱讀 3646·2019-08-30 15:44
閱讀 1754·2019-08-29 13:14
閱讀 3141·2019-08-29 11:17
閱讀 1455·2019-08-29 11:03
閱讀 2916·2019-08-26 17:10
閱讀 691·2019-08-26 12:13