Explorar o código

lib/model: Add benchmark for model.Request()

Jakob Borg %!s(int64=9) %!d(string=hai) anos
pai
achega
5070d52f2f
Modificáronse 1 ficheiros con 27 adicións e 1 borrados
  1. 27 1
      lib/model/model_test.go

+ 27 - 1
lib/model/model_test.go

@@ -336,7 +336,7 @@ func (f *fakeConnection) sendIndexUpdate() {
 	f.model.IndexUpdate(f.id, f.folder, f.files)
 }
 
-func BenchmarkRequest(b *testing.B) {
+func BenchmarkRequestOut(b *testing.B) {
 	db := db.OpenMemory()
 	m := NewModel(defaultConfig, protocol.LocalDeviceID, "device", "syncthing", "dev", db, nil)
 	m.AddFolder(defaultFolderConfig)
@@ -366,6 +366,32 @@ func BenchmarkRequest(b *testing.B) {
 	}
 }
 
+func BenchmarkRequestInSingleFile(b *testing.B) {
+	db := db.OpenMemory()
+	m := NewModel(defaultConfig, protocol.LocalDeviceID, "device", "syncthing", "dev", db, nil)
+	m.AddFolder(defaultFolderConfig)
+	m.ServeBackground()
+	defer m.Stop()
+	m.ScanFolder("default")
+
+	buf := make([]byte, 128<<10)
+	rand.Read(buf)
+	os.RemoveAll("testdata/request")
+	defer os.RemoveAll("testdata/request")
+	os.MkdirAll("testdata/request/for/a/file/in/a/couple/of/dirs", 0755)
+	ioutil.WriteFile("testdata/request/for/a/file/in/a/couple/of/dirs/128k", buf, 0644)
+
+	b.ResetTimer()
+
+	for i := 0; i < b.N; i++ {
+		if err := m.Request(device1, "default", "request/for/a/file/in/a/couple/of/dirs/128k", 0, nil, false, buf); err != nil {
+			b.Error(err)
+		}
+	}
+
+	b.SetBytes(128 << 10)
+}
+
 func TestDeviceRename(t *testing.T) {
 	hello := protocol.HelloResult{
 		ClientName:    "syncthing",