1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
{
"cloud9": {
"allocation_evidence": "no allocator or allocation calls in codec",
"bytes_in": 369117,
"bytes_out": 369117,
"codec_allocations": 0,
"codec_ns": 1327036,
"implementation": "cloud9",
"operations": 54000,
"read_calls": 369118,
"write_calls": 369117
},
"configuration": {
"chunk": 1,
"frames": 2700,
"go": "go1.26.5-X:nodwarf5",
"platform": "linux/amd64",
"repeats": 20,
"rounds": 100,
"seed": 4201
},
"correctness": "all generated base-9P2000 frames agree byte-for-byte",
"measurement_notes": [
"Cloud9 codec timer excludes pipe I/O; Go timers include in-memory stream parsing and byte comparison. Do not treat these as equivalent throughput benchmarks.",
"Go allocations use runtime.MemStats deltas on a single-process run; cloud9 codec has no allocation API.",
"Cloud9 I/O counters are actual stdin/stdout syscalls; Go read counters are io.Reader calls, not syscalls.",
"These are wire-conformance probes, not differential filesystem-server semantics."
],
"references": [
{
"implementation": "9fans v0.0.7",
"operations": 54000,
"codec_ns": 48042988,
"codec_allocations": 250519,
"allocated_bytes": 48088256,
"read_calls": 7382340,
"bytes": 7382340
},
{
"implementation": "go9p v1.18.0",
"operations": 54000,
"codec_ns": 43224680,
"codec_allocations": 312801,
"allocated_bytes": 28165920,
"read_calls": 7382340,
"bytes": 7382340
}
],
"session": {
"bytes_read": 282585,
"bytes_written": 63853,
"checks": "walk/open/write/read/stat/EOF/clunk, content oracle, fragmented requests and replies",
"read_calls": 40697,
"requests": 703,
"rounds": 100,
"seed": 4201,
"server": "go9p v1.18.0 StaticFile",
"write_calls": 21488
}
}
|