Skip to content

Add Benchmarks for URLs

Hayley Swimelar requested to merge router-benchmarks into master

This MR adds a benchmark for NewURLBuilderFromRequest as well as one for the URLs built from the url builder returned from that function.

This will allow us to help evaluate improvements made to routing and pathing #226.

Sample Output:

go test -test.bench=. github.com/docker/distribution/registry/api/v2/

goos: linux
goarch: amd64
pkg: github.com/docker/distribution/registry/api/v2
BenchmarkBuilderFromRequest/relative-16         	    1423	   1399143 ns/op	  699724 B/op	    5371 allocs/op
BenchmarkBuilderFromRequest/absolute-16         	    1100	    933586 ns/op	  699751 B/op	    5372 allocs/op
BenchmarkBuilderFromRequestURLs/test_base_url_relative-16         	 1789004	       844 ns/op	     208 B/op	       4 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_relative-16         	  473587	      3408 ns/op	     712 B/op	      11 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_with_n_query_parameter_relative-16         	  436351	      4453 ns/op	    1133 B/op	      16 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_with_last_query_parameter_relative-16      	  195354	      6048 ns/op	    1214 B/op	      18 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_with_n_and_last_query_parameters_relative-16         	  243248	      5567 ns/op	    1295 B/op	      21 allocs/op
BenchmarkBuilderFromRequestURLs/test_manifest_url_tagged_ref_relative-16                           	  290748	      3891 ns/op	     761 B/op	      12 allocs/op
BenchmarkBuilderFromRequestURLs/test_manifest_url_bare_ref_relative-16                             	 5872947	       204 ns/op	      64 B/op	       2 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_url_relative-16                                         	  216915	      5475 ns/op	     891 B/op	      12 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_url_relative-16                                  	  441688	      3521 ns/op	     711 B/op	      11 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_url_with_digest_and_size_relative-16             	  287694	      6569 ns/op	    1724 B/op	      23 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_chunk_url_relative-16                            	  256227	      4389 ns/op	     807 B/op	      12 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_chunk_url_with_digest_and_size_relative-16       	  180902	      8427 ns/op	    1819 B/op	      24 allocs/op
BenchmarkBuilderFromRequestURLs/test_base_url_absolute-16                                          	  708855	      1818 ns/op	     456 B/op	      10 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_absolute-16                                          	  290497	      4505 ns/op	    1166 B/op	      18 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_with_n_query_parameter_absolute-16                   	  356442	      6739 ns/op	    1586 B/op	      23 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_with_last_query_parameter_absolute-16                	  189338	      6611 ns/op	    1603 B/op	      24 allocs/op
BenchmarkBuilderFromRequestURLs/test_tags_url_with_n_and_last_query_parameters_absolute-16         	  173907	      7410 ns/op	    1683 B/op	      27 allocs/op
BenchmarkBuilderFromRequestURLs/test_manifest_url_tagged_ref_absolute-16                           	  324921	      5093 ns/op	    1216 B/op	      19 allocs/op
BenchmarkBuilderFromRequestURLs/test_manifest_url_bare_ref_absolute-16                             	 3813212	       266 ns/op	      64 B/op	       2 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_url_absolute-16                                         	  188948	      7868 ns/op	    1459 B/op	      19 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_url_absolute-16                                  	  301761	      5281 ns/op	    1197 B/op	      18 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_url_with_digest_and_size_absolute-16             	  191409	      9771 ns/op	    2222 B/op	      30 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_chunk_url_absolute-16                            	  249175	      6124 ns/op	    1313 B/op	      19 allocs/op
BenchmarkBuilderFromRequestURLs/build_blob_upload_chunk_url_with_digest_and_size_absolute-16       	  133707	     10680 ns/op	    2354 B/op	      31 allocs/op
PASS
ok  	github.com/docker/distribution/registry/api/v2	48.250s
Edited by Hayley Swimelar

Merge request reports

Loading