net/speedtest: retune to meet iperf on localhost in a VM
- removed some in-flow time calls - increase buffer size to 2MB to overcome syscall cost - move relative time computation from record to report time Signed-off-by: James Tucker <james@tailscale.com>
This commit is contained in:
committed by
James Tucker
parent
146f51ce76
commit
f7cb535693
@@ -11,11 +11,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
blockSize = 32000 // size of the block of data to send
|
||||
blockSize = 2 * 1024 * 1024 // size of the block of data to send
|
||||
MinDuration = 5 * time.Second // minimum duration for a test
|
||||
DefaultDuration = MinDuration // default duration for a test
|
||||
MaxDuration = 30 * time.Second // maximum duration for a test
|
||||
version = 1 // value used when comparing client and server versions
|
||||
version = 2 // value used when comparing client and server versions
|
||||
increment = time.Second // increment to display results for, in seconds
|
||||
minInterval = 10 * time.Millisecond // minimum interval length for a result to be included
|
||||
DefaultPort = 20333
|
||||
@@ -37,14 +37,14 @@ type configResponse struct {
|
||||
|
||||
// This represents the Result of a speedtest within a specific interval
|
||||
type Result struct {
|
||||
Bytes int // number of bytes sent/received during the interval
|
||||
IntervalStart time.Duration // duration between the start of the interval and the start of the test
|
||||
IntervalEnd time.Duration // duration between the end of the interval and the start of the test
|
||||
Total bool // if true, this result struct represents the entire test, rather than a segment of the test
|
||||
Bytes int // number of bytes sent/received during the interval
|
||||
IntervalStart time.Time // start of the interval
|
||||
IntervalEnd time.Time // end of the interval
|
||||
Total bool // if true, this result struct represents the entire test, rather than a segment of the test
|
||||
}
|
||||
|
||||
func (r Result) MBitsPerSecond() float64 {
|
||||
return r.MegaBits() / (r.IntervalEnd - r.IntervalStart).Seconds()
|
||||
return r.MegaBits() / r.IntervalEnd.Sub(r.IntervalStart).Seconds()
|
||||
}
|
||||
|
||||
func (r Result) MegaBytes() float64 {
|
||||
@@ -56,7 +56,7 @@ func (r Result) MegaBits() float64 {
|
||||
}
|
||||
|
||||
func (r Result) Interval() time.Duration {
|
||||
return r.IntervalEnd - r.IntervalStart
|
||||
return r.IntervalEnd.Sub(r.IntervalStart)
|
||||
}
|
||||
|
||||
type Direction int
|
||||
|
||||
Reference in New Issue
Block a user