bench_test.go 857 Bytes
Newer Older
Brian Tiger Chow's avatar
Brian Tiger Chow committed
1 2 3
package decision

import (
4
	"fmt"
Brian Tiger Chow's avatar
Brian Tiger Chow committed
5 6 7
	"math"
	"testing"

8
	"github.com/ipfs/go-ipfs/exchange/bitswap/wantlist"
Steven Allen's avatar
Steven Allen committed
9
	u "gx/ipfs/QmNiJuT8Ja3hMVpBHXv3Q6dwmperaQ6JjLtpMQgMCD7xvx/go-ipfs-util"
Steven Allen's avatar
Steven Allen committed
10 11
	"gx/ipfs/QmUJzxQQ2kzwQubsMqBTr1NGDpLfh7pGA2E1oaJULcKDPq/go-testutil"
	"gx/ipfs/QmcJukH2sAFjY3HdBKq35WDzWoL3UUu2gt9wdfqZTUyM74/go-libp2p-peer"
Steven Allen's avatar
Steven Allen committed
12
	cid "gx/ipfs/QmcZfnkapfECQGcLZaf9B79NRg7cRa9EnZh4LSbkCzwNvY/go-cid"
Brian Tiger Chow's avatar
Brian Tiger Chow committed
13 14 15 16 17
)

// FWIW: At the time of this commit, including a timestamp in task increases
// time cost of Push by 3%.
func BenchmarkTaskQueuePush(b *testing.B) {
Brian Tiger Chow's avatar
Brian Tiger Chow committed
18
	q := newPRQ()
Brian Tiger Chow's avatar
Brian Tiger Chow committed
19 20 21 22 23
	peers := []peer.ID{
		testutil.RandPeerIDFatal(b),
		testutil.RandPeerIDFatal(b),
		testutil.RandPeerIDFatal(b),
	}
Brian Tiger Chow's avatar
Brian Tiger Chow committed
24
	b.ResetTimer()
Brian Tiger Chow's avatar
Brian Tiger Chow committed
25
	for i := 0; i < b.N; i++ {
26 27 28
		c := cid.NewCidV0(u.Hash([]byte(fmt.Sprint(i))))

		q.Push(&wantlist.Entry{Cid: c, Priority: math.MaxInt32}, peers[i%len(peers)])
Brian Tiger Chow's avatar
Brian Tiger Chow committed
29 30
	}
}