Skip to content

crypto/tls: figure out why/how buffer size affects crypto/tls performance on windows #15899

Description

@adg

It looks like a recent change to crypto/tls increased the duration of the throughput benchmarks beyond 10 minutes on the windows race builder.

https://build.golang.org/log/1217fb6191fad2bf98dc54b61cfbe51e33af21e6

BenchmarkThroughput/MaxPacket/1MB-4                    1    2226420000 ns/op       0.47 MB/s
BenchmarkThroughput/MaxPacket/2MB-4                    1    3995838000 ns/op       0.52 MB/s
BenchmarkThroughput/MaxPacket/4MB-4                    1    6992716500 ns/op       0.60 MB/s
BenchmarkThroughput/MaxPacket/8MB-4                    1    12010950000 ns/op      0.70 MB/s
BenchmarkThroughput/MaxPacket/16MB-4                   1    18002754000 ns/op      0.93 MB/s
BenchmarkThroughput/MaxPacket/32MB-4                   1    34987995000 ns/op      0.96 MB/s
BenchmarkThroughput/MaxPacket/64MB-4                   1    69017067000 ns/op      0.97 MB/s
*** Test killed: ran too long (10m0s).
FAIL    crypto/tls  600.061s

The benchmarks are run with -benchtime .1s, but many of the benchmarks take longer than 100 milliseconds.

One simple fix would be to increase the timeout, currently 10 minutes for all standard library benchmarks combined. But I'm hesitant to make builds take longer.

I will investigate why -benchtime doesn't appear to have the desired effect.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions