資料介紹
軟件簡介
mongols?是一個 C++ 庫。
依賴:
-
linux
-
pcre-devel
-
hiredis-devel
-
zlib-devel
-
openssl-devel
-
curl-devel
sudo?yum?install?pcre-devel?zlib-devel?openssl-devel?hiredis-devel?libcurl-devel
或者:
sudo?apt-get?install?libpcre3-dev?zlib1g-dev?libssl-dev?libhiredis-dev?libcurl4-openssl-dev
特性:
epoll or epoll + multi-threading
-
tcp sever
-
http server
-
websocket server
-
web server
-
leveldb server
-
lua server
-
sqlite server
-
utils
安裝:
make clean && make -j2 && sudo make install && sudo ldconfig
使用:
pkg-config --libs --cflags mongols
例子:
#include#include #include #include #include #include #include #include/* //websocket?server int?main(int,char**){ int?port=9090; const?char*?; mongols::ws_server?server(host,port,5000,2048,4); auto?f=[](const?std::string&?input ????????????,?bool&?keepalive ????????????,?bool&?send_to_other ????????????,?mongols::tcp_server::client_t&?client ????????????,?mongols::tcp_server::filter_handler_function&?send_to_other_filter){ keepalive?=?KEEPALIVE_CONNECTION; send_to_other=true; if(){ keepalive?=?CLOSE_CONNECTION; send_to_other?=?false; } }; server.run(f); //server.run(); } */ /* //tcp?server?or?tcp?multi-threading?server int?main(int,char**) { auto?f=[](const?std::string&?input ?,?bool?&?keepalive ????????????????,?bool&?send_to_other ????????????????,?mongols::tcp_server::client_t&?client ????????????????,?mongols::tcp_server::filter_handler_function&?send_to_other_filter){ keepalive=?KEEPALIVE_CONNECTION; send_to_other=true; return?input; }; int?port=9090; const?char*?; //mongols::tcp_threading_server mongols::tcp_server server(host,port); server.run(f); } */ //http?server?or?multi-threading?server int?main(int,char**) { auto?f=[](const?mongols::request&){ return?true; }; auto?g=[](const?mongols::request&?req,mongols::response&?res){ //std::unordered_map::const_iterator?i; //if((i=req.session.find("test"))!=req.session.end()){ //long?test=std::stol(i->second)+1; //res.content=std::to_string(test); //res.session["test"]=res.content; //}else{ //res.content=std::to_string(0);; //res.session["test"]=res.content; //} res.content=std::move("hello,world"); res.status=200; }; int?port=9090; const?char*?; mongols::http_server? //server(host,port,5000,1024,4); server(host,port); server.set_enable_session(false); server.set_enable_cache(false); server.run(f,g); } /* //web?server?or?multi-threading?server int?main(int,char**) { auto?f=[](const?mongols::request&){ if(req.&&req.uri.find("..")==std::string::npos){ return?true; } return?false; }; int?port=9090; const?char*?; mongols::web_server? //server(host,port,5000,1024,4); server(host,port); server.set_root_path("html"); server.set_mime_type_file("mime.conf"); server.set_list_directory(true); server.run(f); } */ /* //leveldb_server?or?multi-threading?server int?main(int,char**){ int?port=9090; const?char*?; mongols::leveldb_server? //server(host,port,5000,1024,4); server(host,port); server.run("html/leveldb"); } */
壓力測試:
[centos@localhost?demo]$?uname?-a Linux?localhost?3.10.0-862.9.1.el7.x86_64?#1?SMP?Mon?Jul?16?16:29:36?UTC?2018?x86_64?x86_64?x86_64?GNU/Linux [centos@localhost?demo]$?cat?/proc/cpuinfo|?grep?"processor"|?wc?-l 4 [centos@localhost?demo]$?cat?/proc/cpuinfo|?grep?"cpu?cores"|?uniq cpu?cores:?2 [centos@localhost?demo]$?cat?/proc/cpuinfo|?grep?"physical?id"|?sort|?uniq|?wc?-l 1
ab -c1000 -n100000 http://127.0.0.1:9090/
Server?Software:????????mongols/0.9.0 Server?Hostname:????????127.0.0.1 Server?Port:????????????9090 Document?Path:??????????/ Document?Length:????????13?bytes Concurrency?Level:??????1000 Time?taken?for?tests:???8.180?seconds Complete?requests:??????100000 Failed?requests:????????0 Write?errors:???????????0 Keep-Alive?requests:????0 Total?transferred:??????13300000?bytes HTML?transferred:???????1300000?bytes Requests?per?second:????12225.00?[#/sec]?(mean) Time?per?request:???????81.800?[ms]?(mean) Time?per?request:???????0.082?[ms]?(mean,?across?all?concurrent?requests) Transfer?rate:??????????1587.82?[Kbytes/sec]?received Connection?Times?(ms) ??????????????min??mean[+/-sd]?median???max Connect:????????0???66?263.3??????7????3020 Processing:?????2???11??11.9??????9?????831 Waiting:????????0????8??11.5??????7?????829 Total:??????????6???77?265.8?????16????3033 Percentage?of?the?requests?served?within?a?certain?time?(ms) ??50%?????16 ??66%?????20 ??75%?????22 ??80%?????23 ??90%?????29 ??95%???1017 ??98%???1025 ??99%???1030 ?100%???3033?(longest?request)
ab -kc1000 -n100000 -H'Connection: keep-alive' http://127.0.0.1:9090/
Server?Software:????????mongols/0.9.0 Server?Hostname:????????127.0.0.1 Server?Port:????????????9090 Document?Path:??????????/ Document?Length:????????13?bytes Concurrency?Level:??????1000 Time?taken?for?tests:???1.935?seconds Complete?requests:??????100000 Failed?requests:????????0 Write?errors:???????????0 Keep-Alive?requests:????100000 Total?transferred:??????13800000?bytes HTML?transferred:???????1300000?bytes Requests?per?second:????51671.74?[#/sec]?(mean) Time?per?request:???????19.353?[ms]?(mean) Time?per?request:???????0.019?[ms]?(mean,?across?all?concurrent?requests) Transfer?rate:??????????6963.57?[Kbytes/sec]?received Connection?Times?(ms) ??????????????min??mean[+/-sd]?median???max Connect:????????0????0???3.2??????0??????48 Processing:?????8???19???1.4?????18??????48 Waiting:????????0???19???1.4?????18??????25 Total:??????????8???19???3.1?????18??????64 Percentage?of?the?requests?served?within?a?certain?time?(ms) ??50%?????18 ??66%?????19 ??75%?????19 ??80%?????19 ??90%?????20 ??95%?????21 ??98%?????23 ??99%?????28 ?100%?????64?(longest?request)
- 探索新潮流 — AI服務器引領數據中心的發展 363次下載
- 差分晶振在AI服務器中的應用案例
- C和C++實物精選《C專家編程》 0次下載
- C和C++經典著作《C和指針》 0次下載
- C和C++經典著作-C專家編程.PDF 0次下載
- 基于人工智能驅動的關鍵信息基礎設施防御 4次下載
- 服務器群集服務MSCS v5.1版本資源下載 0次下載
- Visual C++和MFC創建的應用程序基礎知識 0次下載
- 成本優化的太陽能供電公共服務基礎設施
- C++程序設計教程之C++的初步知識的詳細資料說明 31次下載
- MSP430優化C/C++編譯器V 3.2用戶指南 9次下載
- 《Visual C++游戲編程基礎》電子書.pdf 0次下載
- TMS320F28x 優化C/C++編譯器用戶指南 25次下載
- c280x / c2801x C / C++頭文件和外周 實例快速啟動 7次下載
- 服務器和存儲器電源/冷卻趨勢和數據中心最佳實踐 33次下載
- C++簡史:C++是如何開始的 637次閱讀
- 嵌入式軟件架構基礎設施設計方法 899次閱讀
- 基于云解決方案的基礎設施 494次閱讀
- 常見的服務器有哪些?5款常見的應用服務器介紹 1.5w次閱讀
- 如何管理刀片服務器?普通服務器與高防服務器有什么樣的區別 1509次閱讀
- 服務器有什么作用?存儲服務器和普通服務器到底有什么區別 6142次閱讀
- GPU服務器到底是什么?GPU服務器與普通服務器到底有什么區別 7680次閱讀
- 云計算的未來將會是無服務器嗎 2871次閱讀
- 無服務器計算的含義和作用 2705次閱讀
- 基于Java的游戲服務器開發技術體系詳解 7319次閱讀
- 如何在存儲基礎設施中使用NVMe 3825次閱讀
- smtp服務器是什么意思_smtp服務器怎么設置 15.3w次閱讀
- 應用服務器是什么_應用服務器有哪些 3.4w次閱讀
- 高防服務器有些什么配置_高防服務器需要注意哪些內容 1321次閱讀
- 騰訊云首發基于賽靈思FPGA的云服務器 991次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多