Skip to content

Performance

Test Script

Test maximum single-threaded throughput for two minutes.

package main

import (
    "fmt"
    "github.com/Netflix/spectator-go/v2/spectator"
    "time"
)

func elapsed(start time.Time) float64 {
    return time.Now().Sub(start).Seconds()
}

func main() {
    location := "udp"
    // location := "unix"
    config, _ := spectator.NewConfig(location, nil, nil)
    registry, _ := spectator.NewRegistry(config)
    defer registry.Close()
    // add tags with some length, to simulate more real-world conditions
    tags := map[string]string{"location": location, "version": "correct-horse-battery-staple"}

    maxDuration := float64(2 * 60)
    start := time.Now()

    fmt.Printf("start spectator-go %s benchmark\n", location)
    iteration := 1
    for elapsed(start) < maxDuration {
        registry.Counter("spectator-go.publish", tags).Increment()
        if iteration % 500000 == 0 {
            fmt.Printf("iterations=%v elapsed=%v\n", iteration, elapsed(start))
        }
        iteration++
    }

    fmt.Printf("iterations=%v rate/sec=%v\n", iteration, float64(iteration) / elapsed(start))
}

Results

See Usage > Performance.