成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

開源的 Web 框架哪個快?我在 GitHub 找到了答案

開源
在開源這片自由的土地上,孕育了太多開源 Web 框架。我在 GitHub 上搜了一下“web framework”關鍵字顯示有 56000+ 匹配的開源項目,它們百花齊放各有特色,覆蓋多種語言。

[[422513]]

本文轉載自微信公眾號「HelloGitHub」,作者HelloGitHub。轉載本文請聯系HelloGitHub公眾號。

在開源這片自由的土地上,孕育了太多開源 Web 框架。我在 GitHub 上搜了一下“web framework”關鍵字顯示有 56000+ 匹配的開源項目,它們百花齊放各有特色,覆蓋多種語言。

相信做過 Web 開發的程序員,都能說出好幾個 Web 框架,如數家珍般地說出它們的好。比如我用過的 Python Web 框架有:Django、Tornado、Flask、FastAPI。這些 Web 框架各有特色:

  • Django 的大而全
  • Flask 的微小上手快
  • 專門開發接口的 FastAPI

不同的 Web 框架,在應對不同場景和需求時各有千秋,所以很難片面的說那個 Web 框架就是最好的,但如果單從速度方面比較的話,還是可以比出個高低的! 今天介紹的開源項目,就試圖找出最快的開源 Web 框架。

項目地址:https://github.com/the-benchmarker/web-frameworks

介紹

web-frameworks 定時發布多種開源 Web 框架性能測試報告的項目,告訴你誰是最快的 Web 框架!

它采用 Ruby 語言編寫,首先通過 Docker 啟動待壓測的 Web 框架,啟動后通過 wrk 壓測服務,最后把測試報告發布到網站上,結果支持搜索和排序功能,整個過程完全自動化。

具體的測試參數和機器配置:

wrk:HTTP 基準測試工具,支持壓測和輸出測試報告。

wrk 的相關參數:8 線程(-t),壓 15 秒(-d),分別采用并發(-c) 64、256、512 模式壓測了三次。我在本機用 wrk 對掘金網站做了壓測,用來講解報告的相關數據。

  1. 命令:wrk -t8 -d15s -c64 --latency https://juejin.cn 

結果及名詞解釋:

機器配置:

  • CPU: 8 Cores (AMD FX-8320E Eight-Core Processor)
  • RAM: 16 GB
  • OS: Linux

項目中涉及的所有測試,用的都是相同配置的機器,相關的所有代碼均已開源。盡可能公平公正,完全透明。測試結果還會隨著 Web 框架的版本迭代而更新,

下面來看看 web-frameworks 最新一期的測試報告。

最快的框架

web-frameworks 測出來的平均延遲,從低到高排序:

1、nickel

Star 數:2.9k|語言:Rust

https://github.com/nickel-org/nickel.rs

一個受 Express.js 啟發的 Rust Web 框架。示例代碼:

  1. #[macro_use] extern crate nickel; 
  2.  
  3. use nickel::{Nickel, HttpRouter}; 
  4.  
  5. fn main() { 
  6.     let mut server = Nickel::new(); 
  7.     server.get("**", middleware!("Hello World")); 
  8.     server.listen("127.0.0.1:6767"); 

2、iron

Star 數:5.9k|語言:Rust

https://github.com/iron/iron

示例代碼:

  1. extern crate iron; 
  2. extern crate time
  3.  
  4. use iron::prelude::*; 
  5. use iron::{typemap, AfterMiddleware, BeforeMiddleware}; 
  6. use time::precise_time_ns; 
  7.  
  8. struct ResponseTime; 
  9.  
  10. impl typemap::Key for ResponseTime { type Value = u64; } 
  11.  
  12. impl BeforeMiddleware for ResponseTime { 
  13.     fn before(&self, req: &mut Request) -> IronResult<()> { 
  14.         req.extensions.insert::<ResponseTime>(precise_time_ns()); 
  15.         Ok(()) 
  16.     } 
  17.  
  18. impl AfterMiddleware for ResponseTime { 
  19.     fn after(&self, req: &mut Request, res: Response) -> IronResult<Response> { 
  20.         let delta = precise_time_ns() - *req.extensions.get::<ResponseTime>().unwrap(); 
  21.         println!("Request took: {} ms", (delta as f64) / 1000000.0); 
  22.         Ok(res) 
  23.     } 
  24.  
  25. fn hello_world(_: &mut Request) -> IronResult<Response> { 
  26.     Ok(Response::with((iron::StatusCode::OK, "Hello World"))) 
  27.  
  28. fn main() { 
  29.     let mut chain = Chain::new(hello_world); 
  30.     chain.link_before(ResponseTime); 
  31.     chain.link_after(ResponseTime); 
  32.     Iron::new(chain).http("localhost:3000"); 

由于篇幅問題,這里僅介紹報告中前 2 名的框架。

最能扛的框架

web-frameworks 測出來的平均每秒處理請求數,從高到低排序:

1、activej

Star 數:286|語言:Java

https://github.com/activej/activej

適用于 Web、高負載和微服務的 Java 框架。示例代碼:

  1. class Main extends HttpServerLauncher { 
  2.   @Provides 
  3.   AsyncServlet servlet() { 
  4.     return request -> HttpResponse.ok200() 
  5.       .withPlainText("Hello World"); 
  6.   } 
  7.    
  8.   public static void main(String[] args) throws Exception { 
  9.     Launcher launcher = new HttpHelloWorldExample(); 
  10.     launcher.launch(args); 
  11.   } 

2、httpbeast

Star 數:239|語言:Nim

https://github.com/dom96/httpbeast

示例代碼:

  1. import options, asyncdispatch 
  2.  
  3. import httpbeast 
  4.  
  5. proc onRequest(req: Request): Future[void] = 
  6.   if req.httpMethod == some(HttpGet): 
  7.     case req.path.get() 
  8.     of "/"
  9.       req.send("Hello World"
  10.     else
  11.       req.send(Http404) 
  12.  
  13. run(onRequest) 

由于篇幅問題,這里僅介紹報告中前 2 名的框架。

感受

看完這份 Web 框架測試報告,我發現 Rust 寫的 Web 框架在不同的性能指標的測試結果中都名列前茅,看來 Rust 在性能方面真的是名不虛傳。

當然性能不是評判一個 Web 框架的唯一標準,今天寫這個項目也是希望可以給大家在選擇 Web 的時候提供一個參考。而且報告中有冷門但具有特點的 Web 框架,可作為玩具項目玩一玩,如果哪天突然火起來的時候,你可能已經搶占先機、輕車熟路了。

最后,web-frameworks 的測試結果共包含 237 個 Web 框架,雖然不多但是這個數字還在不斷增加...而且 issues 里還有很多 Web 框架申請“出戰”,開源社區的力量正在讓這個項目越來越好,看到這里我就放心了。

 

以上就是本文的全部內容,希望通過這個開源項目可以讓你找到最快、最能扛的 Web 框架,性能上快人一步。

 

責任編輯:武曉燕 來源: HelloGitHub
相關推薦

2021-06-03 10:34:43

GitHub停車系統項目

2020-03-02 19:51:40

戴爾

2020-07-17 11:30:39

密鑰Github數據安全

2019-06-11 12:29:57

Android框架開源

2021-03-23 18:01:14

SQL數據庫前端

2021-05-17 10:32:10

命令行工具GitHub代碼

2017-07-28 09:00:59

2024-10-18 11:48:00

2020-12-08 10:33:56

DDoS攻擊開源安全安全工具

2020-01-07 14:44:09

GitHub代碼開發者

2021-02-04 11:11:08

開發技能工具

2021-02-04 11:46:49

GithubSQL工具Franchise

2019-07-10 10:55:32

DeepNudeGitHub軟件

2021-03-27 10:47:11

數據泄露攻擊信息安全

2018-07-24 08:21:35

長生生物疫苗國內

2022-09-20 10:41:32

接口優化網絡

2024-03-07 09:40:37

2020-09-25 06:32:25

前端

2021-10-25 05:43:40

前端技術編程

2025-02-11 15:53:29

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲午夜精品一区二区三区他趣 | 日韩久久中文字幕 | 国产成人精品免高潮在线观看 | 日本网站免费观看 | 亚洲一区精品视频 | 久久久精品网 | 欧美日韩国产中文字幕 | av国产精品毛片一区二区小说 | 日本特黄a级高清免费大片 成年人黄色小视频 | 国产精品一区在线观看 | 久久一区二区精品 | 久久精品亚洲 | 欧美激情一区二区三级高清视频 | 欧美日韩亚洲视频 | 国产精品久久久久久久久久久久久久 | 91在线资源| 精品视频www | 手机看片169 | 青青草av | 一本一道久久a久久精品综合 | 亚洲国产精品视频一区 | 久久精品国产久精国产 | 国产精品视频网 | 手机在线观看av | 91九色网站 | 免费a国产 | 日韩一区在线播放 | 国产日韩欧美二区 | 91av在线不卡| av喷水| www.蜜桃av | 亚洲日本三级 | 欧产日产国产精品视频 | 7777精品伊人久久精品影视 | 欧美日韩国产一区二区三区不卡 | 精品视频一区二区 | 亚洲精品综合 | 狠狠色狠狠色综合系列 | 精品久久一 | 亚洲精品www | 欧美日一区二区 |