• web几个高性能框架的简单测试


    参考的这里

    压测工具

    wrk -t16 -c100 -d30s http://127.0.0.1:8080/rest/hello

    测试代码

    package main
    import (
        "strconv"
        "time"
        "github.com/kataras/iris"
        "github.com/gin-gonic/gin"
        "net/http"
        "os"
        "github.com/labstack/echo"
        "github.com/labstack/echo/engine/standard"
    )
    
    func makeIrisServer(timeDuration int){
        api := iris.New()
    
        api.Party("rest").Get("/hello", func(c *iris.Context) {
        //api.Get("/rest/hello", func(c *iris.Context) {
            if timeDuration > 0 {
                time.Sleep(time.Duration(timeDuration) * time.Millisecond)
            }
            c.Write("Hello world")
        })
    
        api.Listen(":8080")
    }
    
    func makeEchoServer(timeDuration int) {
        api := echo.New()
        api.GET("/rest/hello", func(c echo.Context) error {
            if timeDuration > 0 {
                time.Sleep(time.Duration(timeDuration) * time.Millisecond)
            }
            return c.String(http.StatusOK, "Hello, World")
        })
    
        api.Run(standard.New(":8080"))
    }
    
    func makeGinServer(timeDuration int){
        gin.SetMode(gin.ReleaseMode)
    
        //关闭日志
        //router := gin.Default()
        router := gin.New()
    
        router.GET("/rest/hello", func(c *gin.Context) {
            if timeDuration > 0 {
                time.Sleep(time.Duration(timeDuration) * time.Millisecond)
            }
            c.String(http.StatusOK, "hello world")
        })
    
        router.Run(":8080")
    }
    
    func main() {
    
        sleepTime, _ := strconv.Atoi(os.Args[1])
    
        //makeIrisServer(sleepTime)
        //makeGinServer(sleepTime)
        makeEchoServer(sleepTime)
    }

    iris

    ./server 0
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     1.85ms    1.59ms 104.74ms   95.48%
        Req/Sec     3.50k   421.36     7.09k    83.79%
      1677120 requests in 30.09s, 227.12MB read
    Requests/sec:  55744.97
    Transfer/sec:      7.55MB
    ./server 10
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency    13.07ms    1.46ms  37.15ms   68.94%
        Req/Sec   459.16     39.35   580.00     70.85%
      219622 requests in 30.07s, 29.74MB read
    Requests/sec:   7302.65
    Transfer/sec:      0.99MB
    ./server 100
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   104.20ms    1.84ms 110.79ms   62.15%
        Req/Sec    57.67      5.37   116.00     97.15%
      27634 requests in 30.10s, 3.74MB read
    Requests/sec:    917.96
    Transfer/sec:    127.30KB
    ./server 1000
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     1.01s     1.46ms   1.01s    64.12%
        Req/Sec     5.27      1.58    38.00     99.57%
      2784 requests in 30.09s, 386.06KB read
    Requests/sec:     92.52
    Transfer/sec:     12.83KB

    gin

    ./server 0
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     2.33ms    2.91ms  89.31ms   92.11%
        Req/Sec     3.25k     0.86k   14.52k    81.88%
      1556196 requests in 30.10s, 189.97MB read
    Requests/sec:  51708.60
    Transfer/sec:      6.31MB
    ./server 10
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency    12.83ms    1.96ms  48.34ms   73.74%
        Req/Sec   468.89     44.26   590.00     57.39%
      224533 requests in 30.11s, 27.41MB read
    Requests/sec:   7457.75
    Transfer/sec:      0.91MB
    ./server 100
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   105.77ms    1.82ms 112.78ms   66.52%
        Req/Sec    57.10      5.86   116.00     96.34%
      27180 requests in 30.07s, 3.32MB read
    Requests/sec:    903.81
    Transfer/sec:    112.98KB
    ./server 1000
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     1.00s     2.08ms   1.01s    62.46%
        Req/Sec     5.21      0.41     6.00     79.31%
      2784 requests in 30.09s, 348.00KB read
    Requests/sec:     92.52
    Transfer/sec:     11.57KB

    echo

    ./server 0
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     2.47ms    3.21ms  79.28ms   91.91%
        Req/Sec     3.21k     0.89k   16.60k    82.53%
      1537211 requests in 30.10s, 189.11MB read
    Requests/sec:  51069.64
    Transfer/sec:      6.28MB
    ./server 10
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency    12.62ms    1.86ms  45.19ms   74.89%
        Req/Sec   476.33     41.71   590.00     58.02%
      227976 requests in 30.09s, 28.05MB read
    Requests/sec:   7575.22
    Transfer/sec:      0.93MB
    ./server 100
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency   105.16ms    1.88ms 113.46ms   63.02%
        Req/Sec    57.33      5.38   103.00     96.94%
      27360 requests in 30.09s, 3.37MB read
    Requests/sec:    909.37
    Transfer/sec:    114.56KB
    ./server 1000
    Running 30s test @ http://127.0.0.1:8080/rest/hello
      16 threads and 100 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
        Latency     1.00s     1.99ms   1.01s    62.32%
        Req/Sec     5.29      1.39    30.00     99.14%
      2784 requests in 30.10s, 350.72KB read
    Requests/sec:     92.50
    Transfer/sec:     11.65KB
  • 相关阅读:
    Selenium RC For Python:教程2
    sql server 获取同比或环比
    C#泛型泛型集合Dictionary<K,V>
    C# FileStream
    c# 强命名的作用
    装箱与拆箱的概念及意义
    SQL Server中Rollup关键字使用技巧
    Javascript内存泄露
    几条复杂的SQL语句
    Group by与having理解
  • 原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/5524523.html
Copyright © 2020-2023  润新知