|
|
@@ -139,97 +139,149 @@ func TestLocalDeleted(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func BenchmarkSetLocal10k(b *testing.B) {
|
|
|
- m := NewSet()
|
|
|
-
|
|
|
+func Benchmark10kReplace(b *testing.B) {
|
|
|
var local []scanner.File
|
|
|
for i := 0; i < 10000; i++ {
|
|
|
- local = append(local, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
}
|
|
|
|
|
|
+ b.ResetTimer()
|
|
|
+ for i := 0; i < b.N; i++ {
|
|
|
+ m := NewSet()
|
|
|
+ m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func Benchmark10kUpdateChg(b *testing.B) {
|
|
|
var remote []scanner.File
|
|
|
for i := 0; i < 10000; i++ {
|
|
|
- remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
}
|
|
|
|
|
|
+ m := NewSet()
|
|
|
m.Replace(1, remote)
|
|
|
|
|
|
+ var local []scanner.File
|
|
|
+ for i := 0; i < 10000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+
|
|
|
+ m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
+
|
|
|
b.ResetTimer()
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
- m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
+ b.StopTimer()
|
|
|
+ for j := range local {
|
|
|
+ local[j].Version++
|
|
|
+ }
|
|
|
+ b.StartTimer()
|
|
|
+ m.Update(cid.LocalID, local)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func BenchmarkSetLocal10(b *testing.B) {
|
|
|
+func Benchmark10kUpdateSme(b *testing.B) {
|
|
|
+ var remote []scanner.File
|
|
|
+ for i := 0; i < 10000; i++ {
|
|
|
+ remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+
|
|
|
m := NewSet()
|
|
|
+ m.Replace(1, remote)
|
|
|
|
|
|
var local []scanner.File
|
|
|
- for i := 0; i < 10; i++ {
|
|
|
- local = append(local, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
- }
|
|
|
-
|
|
|
- var remote []scanner.File
|
|
|
for i := 0; i < 10000; i++ {
|
|
|
- remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
}
|
|
|
|
|
|
- m.Replace(1, remote)
|
|
|
+ m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
|
|
|
b.ResetTimer()
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
- m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
+ m.Update(cid.LocalID, local)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func BenchmarkAddLocal10k(b *testing.B) {
|
|
|
+func Benchmark10kNeed2k(b *testing.B) {
|
|
|
+ var remote []scanner.File
|
|
|
+ for i := 0; i < 10000; i++ {
|
|
|
+ remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+
|
|
|
m := NewSet()
|
|
|
+ m.Replace(cid.LocalID+1, remote)
|
|
|
|
|
|
var local []scanner.File
|
|
|
- for i := 0; i < 10000; i++ {
|
|
|
- local = append(local, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ for i := 0; i < 8000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
}
|
|
|
-
|
|
|
- var remote []scanner.File
|
|
|
- for i := 0; i < 10000; i++ {
|
|
|
- remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ for i := 8000; i < 10000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 980})
|
|
|
}
|
|
|
|
|
|
- m.Replace(1, remote)
|
|
|
m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
|
|
|
b.ResetTimer()
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
- b.StopTimer()
|
|
|
- for j := range local {
|
|
|
- local[j].Version++
|
|
|
+ fs := m.Need(cid.LocalID)
|
|
|
+ if l := len(fs); l != 2000 {
|
|
|
+ b.Errorf("wrong length %d != 2k", l)
|
|
|
}
|
|
|
- b.StartTimer()
|
|
|
- m.Update(cid.LocalID, local)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func BenchmarkAddLocal10(b *testing.B) {
|
|
|
+func Benchmark10kHave(b *testing.B) {
|
|
|
+ var remote []scanner.File
|
|
|
+ for i := 0; i < 10000; i++ {
|
|
|
+ remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+
|
|
|
m := NewSet()
|
|
|
+ m.Replace(cid.LocalID+1, remote)
|
|
|
|
|
|
var local []scanner.File
|
|
|
- for i := 0; i < 10; i++ {
|
|
|
- local = append(local, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ for i := 0; i < 2000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+ for i := 2000; i < 10000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 980})
|
|
|
}
|
|
|
|
|
|
+ m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
+
|
|
|
+ b.ResetTimer()
|
|
|
+ for i := 0; i < b.N; i++ {
|
|
|
+ fs := m.Have(cid.LocalID)
|
|
|
+ if l := len(fs); l != 10000 {
|
|
|
+ b.Errorf("wrong length %d != 10k", l)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func Benchmark10kGlobal(b *testing.B) {
|
|
|
var remote []scanner.File
|
|
|
for i := 0; i < 10000; i++ {
|
|
|
- remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d"), Version: 1000})
|
|
|
+ remote = append(remote, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+
|
|
|
+ m := NewSet()
|
|
|
+ m.Replace(cid.LocalID+1, remote)
|
|
|
+
|
|
|
+ var local []scanner.File
|
|
|
+ for i := 0; i < 2000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 1000})
|
|
|
+ }
|
|
|
+ for i := 2000; i < 10000; i++ {
|
|
|
+ local = append(local, scanner.File{Name: fmt.Sprintf("file%d", i), Version: 980})
|
|
|
}
|
|
|
|
|
|
- m.Replace(1, remote)
|
|
|
m.ReplaceWithDelete(cid.LocalID, local)
|
|
|
|
|
|
b.ResetTimer()
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
- for j := range local {
|
|
|
- local[j].Version++
|
|
|
+ fs := m.Global()
|
|
|
+ if l := len(fs); l != 10000 {
|
|
|
+ b.Errorf("wrong length %d != 10k", l)
|
|
|
}
|
|
|
- m.Update(cid.LocalID, local)
|
|
|
}
|
|
|
}
|
|
|
|