util/deephash: add a benchmark and some benchmark data
No code changes.
@@ -75,6 +75,56 @@ func getVal() []interface{} {
{2: 3}: true,
{3: 4}: false,
},
+ &tailcfg.MapResponse{
+ DERPMap: &tailcfg.DERPMap{
+ Regions: map[int]*tailcfg.DERPRegion{
+ 1: &tailcfg.DERPRegion{
+ RegionID: 1,
+ RegionCode: "foo",
+ Nodes: []*tailcfg.DERPNode{
+ {
+ Name: "n1",
+ RegionID: 1,
+ HostName: "foo.com",
+ },
+ {
+ Name: "n2",
+ RegionID: 1,
+ HostName: "bar.com",
+ },
+ },
+ },
+ },
+ },
+ DNSConfig: &tailcfg.DNSConfig{
+ Resolvers: []tailcfg.DNSResolver{
+ {Addr: "10.0.0.1"},
+ },
+ },
+ PacketFilter: []tailcfg.FilterRule{
+ {
+ SrcIPs: []string{"1.2.3.4"},
+ DstPorts: []tailcfg.NetPortRange{
+ {
+ IP: "1.2.3.4/32",
+ Ports: tailcfg.PortRange{1, 2},
+ },
+ },
+ },
+ },
+ Peers: []*tailcfg.Node{
+ {
+ ID: 1,
+ },
+ {
+ ID: 2,
+ },
+ },
+ UserProfiles: []tailcfg.UserProfile{
+ {ID: 1, LoginName: "foo@bar.com"},
+ {ID: 2, LoginName: "bar@foo.com"},
+ },
+ },
}
}
@@ -139,6 +189,15 @@ func BenchmarkHashMapAcyclic(b *testing.B) {
}
}
+func BenchmarkTailcfgNode(b *testing.B) {
+ b.ReportAllocs()
+
+ node := new(tailcfg.Node)
+ for i := 0; i < b.N; i++ {
+ sink = Hash(node)
+ }
+}
+
func TestExhaustive(t *testing.T) {
seen := make(map[[sha256.Size]byte]bool)
for i := 0; i < 100000; i++ {
