test: Report time per MiB on transfer benchs (#5711)

This commit is contained in:
Simon Frei 2019-05-18 08:46:08 +02:00 committed by Jakob Borg
parent cc36621b11
commit 1df8701c46
3 changed files with 13 additions and 11 deletions

View File

@ -16,7 +16,7 @@ import (
)
func TestBenchmarkTransferManyFiles(t *testing.T) {
benchmarkTransfer(t, 50000, 15)
benchmarkTransfer(t, 10000, 15)
}
func TestBenchmarkTransferLargeFile1G(t *testing.T) {
@ -154,9 +154,9 @@ loop:
t.Fatal(err)
}
log.Println("Result: Wall time:", t1.Sub(t0))
log.Printf("Result: %.1f MiB/s synced", float64(total)/1024/1024/t1.Sub(t0).Seconds())
log.Printf("Result: Wall time: %v / MiB", t1.Sub(t0)/time.Duration(total/1024/1024))
log.Printf("Result: %.3g KiB/s synced", float64(total)/1024/t1.Sub(t0).Seconds())
printUsage("Receiver", recvProc)
printUsage("Sender", sendProc)
printUsage("Receiver", recvProc, total)
printUsage("Sender", sendProc, total)
}

View File

@ -16,10 +16,11 @@ import (
"time"
)
func printUsage(name string, proc *os.ProcessState) {
func printUsage(name string, proc *os.ProcessState, total int64) {
if rusage, ok := proc.SysUsage().(*syscall.Rusage); ok {
log.Printf("%s: Utime: %s", name, time.Duration(rusage.Utime.Nano()))
log.Printf("%s: Stime: %s", name, time.Duration(rusage.Stime.Nano()))
mib := total / 1024 / 1024
log.Printf("%s: Utime: %s / MiB", name, time.Duration(rusage.Utime.Nano()/mib))
log.Printf("%s: Stime: %s / MiB", name, time.Duration(rusage.Stime.Nano()/mib))
if runtime.GOOS == "darwin" {
// Darwin reports in bytes, Linux seems to report in KiB even
// though the manpage says otherwise.

View File

@ -20,9 +20,10 @@ func ftToDuration(ft *syscall.Filetime) time.Duration {
return time.Duration(n*100) * time.Nanosecond
}
func printUsage(name string, proc *os.ProcessState) {
func printUsage(name string, proc *os.ProcessState, total int64) {
if rusage, ok := proc.SysUsage().(*syscall.Rusage); ok {
log.Printf("%s: Utime: %s", name, ftToDuration(&rusage.UserTime))
log.Printf("%s: Stime: %s", name, ftToDuration(&rusage.KernelTime))
mib := total / 1024 / 1024
log.Printf("%s: Utime: %s / MiB", name, time.Duration(&rusage.UserTime/mib))
log.Printf("%s: Stime: %s / MiB", name, time.Duration(&rusage.KernelTime/mib))
}
}