38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
// Copyright 2014 The Go Authors. All rights reserved.
 | 
						|
// Use of this source code is governed by a BSD-style
 | 
						|
// license that can be found in the LICENSE file.
 | 
						|
 | 
						|
/*
 | 
						|
 | 
						|
The benchcmp command displays performance changes between benchmarks.
 | 
						|
 | 
						|
Benchcmp parses the output of two 'go test' benchmark runs,
 | 
						|
correlates the results per benchmark, and displays the deltas.
 | 
						|
 | 
						|
To measure the performance impact of a change, use 'go test'
 | 
						|
to run benchmarks before and after the change:
 | 
						|
 | 
						|
	go test -run=NONE -bench=. ./... > old.txt
 | 
						|
	# make changes
 | 
						|
	go test -run=NONE -bench=. ./... > new.txt
 | 
						|
 | 
						|
Then feed the benchmark results to benchcmp:
 | 
						|
 | 
						|
	benchcmp old.txt new.txt
 | 
						|
 | 
						|
Benchcmp will summarize and display the performance changes,
 | 
						|
in a format like this:
 | 
						|
 | 
						|
	$ benchcmp old.txt new.txt
 | 
						|
	benchmark           old ns/op     new ns/op     delta
 | 
						|
	BenchmarkConcat     523           68.6          -86.88%
 | 
						|
 | 
						|
	benchmark           old allocs     new allocs     delta
 | 
						|
	BenchmarkConcat     3              1              -66.67%
 | 
						|
 | 
						|
	benchmark           old bytes     new bytes     delta
 | 
						|
	BenchmarkConcat     80            48            -40.00%
 | 
						|
 | 
						|
*/
 | 
						|
package main // import "golang.org/x/tools/cmd/benchcmp"
 |