INNER CODE UNIT · Go
main
bhope/hedge · benchmark/simulate/main.go:100
func main() {
var serverHits atomic.Int64
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
serverHits.Add(1)
d := sampleLatency()
select {
case <-time.After(d):
w.WriteHeader(http.StatusOK)
case <-r.Context().Done():
}
}))
defer srv.Close()
// Estimate RPS: concurrency workers each taking avgLatency per request.
avgLatencyMs := baseMeanMs*(1-stragglerP) + baseMeanMs*stragglerMul*stragglerP
estimatedRPS := float64(concurrency) * 1000.0 / avgLatencyMs