Update benchmarks to run against both peerstores

This commit is contained in:
Cole Brown 2018-06-26 20:10:17 -04:00
parent 4972b40efd
commit 6a9cba0e1b
2 changed files with 24 additions and 15 deletions

View File

@ -53,7 +53,7 @@ func testHas(t *testing.T, exp, act []ma.Multiaddr) {
}
}
func setupBadgerDatastore(t *testing.T) (datastore.Batching, func()) {
func setupBadgerDatastore(t testing.TB) (datastore.Batching, func()) {
dataPath, err := ioutil.TempDir(os.TempDir(), "badger")
if err != nil {
t.Fatal(err)

View File

@ -38,7 +38,7 @@ func runTestWithPeerstores(t *testing.T, testFunc func(*testing.T, Peerstore)) {
testFunc(t, ps2)
}
func setupDatastorePeerstore(t *testing.T) (Peerstore, func()) {
func setupDatastorePeerstore(t testing.TB) (Peerstore, func()) {
ds, closeDB := setupBadgerDatastore(t)
ctx, cancel := context.WithCancel(context.Background())
ps, err := NewPeerstoreDatastore(ctx, ds)
@ -326,21 +326,30 @@ func BenchmarkBasicPeerstore(b *testing.B) {
}
}
func BenchmarkBasicPeerstoreRateLimited(b *testing.B) {
ps := NewPeerstore()
func benchmarkPeerstoreRateLimited(ps Peerstore) func(*testing.B) {
return func(b *testing.B) {
producer := make(chan *peerpair, 100)
addrs := make(chan *peerpair, 100)
producer := make(chan *peerpair, 100)
addrs := make(chan *peerpair, 100)
go rateLimitedAddressProducer(b, addrs, producer, 10000, time.Millisecond, 500*time.Microsecond)
go rateLimitedAddressProducer(b, addrs, producer, 5000, time.Millisecond, 500*time.Microsecond)
b.ResetTimer()
for {
pp, ok := <-addrs
if !ok {
break
b.ResetTimer()
for {
pp, ok := <-addrs
if !ok {
break
}
pid := peer.ID(pp.ID)
ps.AddAddr(pid, pp.Addr, PermanentAddrTTL)
}
pid := peer.ID(pp.ID)
ps.AddAddr(pid, pp.Addr, PermanentAddrTTL)
}
}
func BenchmarkBasicPeerstoreRateLimited(b *testing.B) {
ps := NewPeerstore()
b.Run("PeerstoreBasic", benchmarkPeerstoreRateLimited(ps))
dsps, closer := setupDatastorePeerstore(b)
defer closer()
b.Run("PeerstoreDatastore", benchmarkPeerstoreRateLimited(dsps))
}