github.com/aavshr/aws-sdk-go@v1.41.3/awstesting/integration/performance/s3GetObject/client.go (about)

     1  //go:build integration && perftest
     2  // +build integration,perftest
     3  
     4  package main
     5  
     6  import (
     7  	"net"
     8  	"net/http"
     9  	"time"
    10  )
    11  
    12  func NewClient(cfg ClientConfig) *http.Client {
    13  	tr := &http.Transport{
    14  		Proxy: http.ProxyFromEnvironment,
    15  		DialContext: (&net.Dialer{
    16  			Timeout:   cfg.Timeouts.Connect,
    17  			KeepAlive: 30 * time.Second,
    18  			DualStack: true,
    19  		}).DialContext,
    20  		MaxIdleConns:    100,
    21  		IdleConnTimeout: 90 * time.Second,
    22  
    23  		DisableKeepAlives:     !cfg.KeepAlive,
    24  		TLSHandshakeTimeout:   cfg.Timeouts.TLSHandshake,
    25  		ExpectContinueTimeout: cfg.Timeouts.ExpectContinue,
    26  		ResponseHeaderTimeout: cfg.Timeouts.ResponseHeader,
    27  	}
    28  
    29  	return &http.Client{
    30  		Transport: tr,
    31  	}
    32  }