摘要:前言測試異步與同步下對于數據庫操作的性能通過測試同步以及異步下對于數據庫的增加和查找操作,以進行性能評估。所以異步架構在用于單純的數據庫操作時,并不能取得非常良好的性能優化,數據庫操作本身的優化還是依賴于操作本身以及數據庫結構的優化。
前言
測試異步與同步下Python對于PostgreSQL數據庫操作的性能
通過測試同步以及異步下對于數據庫的增加和查找操作,以進行性能評估。更直觀的以及量化地感受同步以及異步下的性能差距。
環境初始化代碼地址
需要安裝pipenv,詳細內容可參考
pip3.6 install pipenv git clone https://github.com/GuangTianLi/python-sql-performance.git cd python-sql-performance pipenv sync pipenv shellSQL操作性能評估
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結論
從結果上看,對于數據庫操作本身,異步對于其性能本身只能算是錦上添花。而異步操作本身則也需要添加對事件循環的處理,等于是變相的增加了運行時間,而如果每個數據庫操作本身所需要的時間小于事件循環處理的時間,則其總時間就是增加的。
所以異步架構在用于單純的數據庫操作時,并不能取得非常良好的性能優化,數據庫操作本身的優化還是依賴于操作本身以及數據庫結構的優化。
WebServer性能評估 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結論
從中等量級的壓測的結果上看,對于異步架構的網絡服務器,在性能上有了很大的提升。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38997.html
摘要:前言測試異步與同步下對于數據庫操作的性能通過測試同步以及異步下對于數據庫的增加和查找操作,以進行性能評估。所以異步架構在用于單純的數據庫操作時,并不能取得非常良好的性能優化,數據庫操作本身的優化還是依賴于操作本身以及數據庫結構的優化。 前言 測試異步與同步下Python對于PostgreSQL數據庫操作的性能 通過測試同步以及異步下對于數據庫的增加和查找操作,以進行性能評估。更直觀的以...
摘要:核心的幾個組件模板引擎,框架,請求和應答的處理還是有一些難度,但是經過一步步的分析和編碼還是能夠完成功能。模板引擎模板引擎是另外一個比較大和的模塊。 前前后后,大概兩個月的時間,lunar這個項目終于達到了一個很高的完整度。 Lunar是一個Python語言的網絡框架,類似于Django,Flask,Tornado等當下流行的web framework。最初有這個想法是在大二下學期,...
摘要:雖然我們可以在網上參照各種模板項目文章博客等創建一個數據科學項目,但是目前也沒有教科書對這些知識做一個統一的回答。舉個例子來說,數據科學分析項目通常就不需要部署和監控這兩個過程。創建文件描述源數據及位置。進一步探索和報告在整個數據科學項目中 摘要:?在一個新的數據科學項目,你應該如何組織你的項目流程?數據和代碼要放在那里?應該使用什么工具?在對數據處理之前,需要考慮哪些方面?讀完本文...
摘要:在這個階段,學習工具什么的,重點在于接口測試的學習,所有的工具的學習,都是在為了接口測試的學習做鋪墊。接口測試工具的使用。 很多朋友想要入行軟件測試,但是都不知道該怎么學。 抽個時間簡單的給大家說下,對于0基礎的朋友,應該怎么去學習軟件測試。 學習軟件測試有2條路可以選。 最省事的當然是找個...
摘要:所以要想做好中級軟件測試工程師,第一步就是能夠完成接口測試。通常情況下,接口測試最多還是使用工具來完成原因無他,高效。 想來我26歲才正式投身進入軟件測試行業;通過...
閱讀 995·2023-04-25 19:35
閱讀 2634·2021-11-22 09:34
閱讀 3681·2021-10-09 09:44
閱讀 1713·2021-09-22 15:25
閱讀 2932·2019-08-29 14:00
閱讀 3372·2019-08-29 11:01
閱讀 2596·2019-08-26 13:26
閱讀 1735·2019-08-23 18:08