浏览代码

x/build/blob: lock in zero allocs for ParseRef

Blake Mizerany 1 年之前
父节点
当前提交
4ea3e9efa6
共有 1 个文件被更改,包括 18 次插入0 次删除
  1. 18 0
      x/build/blob/ref_test.go

+ 18 - 0
x/build/blob/ref_test.go

@@ -78,3 +78,21 @@ func TestRefFull(t *testing.T) {
 		})
 	}
 }
+
+func TestParseRefAllocs(t *testing.T) {
+	// test allocations
+	allocs := testing.AllocsPerRun(1000, func() {
+		ParseRef("example.com/mistral:7b+Q4_0")
+	})
+	if allocs > 0 {
+		t.Errorf("ParseRef allocs = %v; want 0", allocs)
+	}
+}
+
+func BenchmarkParseRef(b *testing.B) {
+	var r Ref
+	for i := 0; i < b.N; i++ {
+		r = ParseRef("example.com/mistral:7b+Q4_0")
+	}
+	_ = r
+}