• Brad Fitzpatrick's avatar
    crypto/tls, crypto/aes: remove allocations when Writing & Reading · 5a0d9ef8
    Brad Fitzpatrick authored
    benchmark          old ns/op     new ns/op     delta
    BenchmarkTLS-4     8571          7938          -7.39%
    
    benchmark          old MB/s     new MB/s     speedup
    BenchmarkTLS-4     119.46       128.98       1.08x
    
    benchmark          old allocs     new allocs     delta
    BenchmarkTLS-4     8              0              -100.00%
    
    benchmark          old bytes     new bytes     delta
    BenchmarkTLS-4     128           0             -100.00%
    
    On:
    
    func BenchmarkTLS(b *testing.B) {
            b.ReportAllocs()
            b.SetBytes(1024)
            ts := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
                    io.Copy(ioutil.Discard, r.Body)
            }))
            defer ts.Close()
            buf := make([]byte, 1024)
            for i := range buf {
                    buf[i] = byte(i)
            }
            c, err := tls.Dial("tcp", ts.Listener.Addr().String(), &tls.Config{
                    InsecureSkipVerify: true,
            })
            if err != nil {
                    b.Fatal(err)
            }
            defer c.Close()
            clen := int64(b.N) * 1024
            if _, err := c.Write([]byte(
                "POST / HTTP/1.1\r\nHost: foo\r\nContent-Length: " +
                fmt.Sprint(clen) + "\r\n\r\n")); err != nil {
                    b.Fatal(err)
            }
            b.ResetTimer()
            for i := 0; i < b.N; i++ {
                    if _, err := c.Write(buf); err != nil {
                            b.Fatal(err)
                    }
            }
    }
    
    Change-Id: I206e7e2118b97148f9751b740d8470895634d3f5
    Reviewed-on: https://go-review.googlesource.com/16828Reviewed-by: 's avatarAdam Langley <agl@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    5a0d9ef8
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...