Skip to content

Commit 77f3862

Browse files
pelletierclaude
andauthored
Fix benchmark script replacing internal package imports (#1042)
* Fix benchmark script replacing internal package imports The sed command in bench() was replacing all occurrences of the go-toml module path, including sub-package imports like internal/assert. This caused the BurntSushi/toml benchmark to fail because it tried to import github.com/BurntSushi/toml/internal/assert which doesn't exist. Fix by anchoring the sed pattern to only match the import path when followed by a closing quote, preserving internal package imports. Also add a guard in the benchstathtml Python script to give a clear error instead of an IndexError when no benchmark results are available. https://claude.ai/code/session_016JGASo49PeFSfCaDxvrGFE * Update benchmark results in README https://claude.ai/code/session_016JGASo49PeFSfCaDxvrGFE --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 16b1ef5 commit 77f3862

2 files changed

Lines changed: 23 additions & 18 deletions

File tree

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -239,12 +239,12 @@ Execution time speedup compared to other Go TOML libraries:
239239
<tr><th>Benchmark</th><th>go-toml v1</th><th>BurntSushi/toml</th></tr>
240240
</thead>
241241
<tbody>
242-
<tr><td>Marshal/HugoFrontMatter-2</td><td>1.9x</td><td>2.2x</td></tr>
243-
<tr><td>Marshal/ReferenceFile/map-2</td><td>1.7x</td><td>2.1x</td></tr>
244-
<tr><td>Marshal/ReferenceFile/struct-2</td><td>2.2x</td><td>3.0x</td></tr>
245-
<tr><td>Unmarshal/HugoFrontMatter-2</td><td>2.9x</td><td>2.7x</td></tr>
246-
<tr><td>Unmarshal/ReferenceFile/map-2</td><td>2.6x</td><td>2.7x</td></tr>
247-
<tr><td>Unmarshal/ReferenceFile/struct-2</td><td>4.6x</td><td>5.1x</td></tr>
242+
<tr><td>Marshal/HugoFrontMatter-2</td><td>2.1x</td><td>2.0x</td></tr>
243+
<tr><td>Marshal/ReferenceFile/map-2</td><td>1.9x</td><td>2.0x</td></tr>
244+
<tr><td>Marshal/ReferenceFile/struct-2</td><td>2.3x</td><td>2.5x</td></tr>
245+
<tr><td>Unmarshal/HugoFrontMatter-2</td><td>3.4x</td><td>2.8x</td></tr>
246+
<tr><td>Unmarshal/ReferenceFile/map-2</td><td>3.0x</td><td>3.0x</td></tr>
247+
<tr><td>Unmarshal/ReferenceFile/struct-2</td><td>4.9x</td><td>5.1x</td></tr>
248248
</tbody>
249249
</table>
250250
<details><summary>See more</summary>
@@ -257,17 +257,17 @@ provided for completeness.</p>
257257
<tr><th>Benchmark</th><th>go-toml v1</th><th>BurntSushi/toml</th></tr>
258258
</thead>
259259
<tbody>
260-
<tr><td>Marshal/SimpleDocument/map-2</td><td>1.8x</td><td>2.7x</td></tr>
261-
<tr><td>Marshal/SimpleDocument/struct-2</td><td>2.7x</td><td>3.8x</td></tr>
262-
<tr><td>Unmarshal/SimpleDocument/map-2</td><td>3.8x</td><td>3.0x</td></tr>
263-
<tr><td>Unmarshal/SimpleDocument/struct-2</td><td>5.6x</td><td>4.1x</td></tr>
264-
<tr><td>UnmarshalDataset/example-2</td><td>3.0x</td><td>3.2x</td></tr>
265-
<tr><td>UnmarshalDataset/code-2</td><td>2.3x</td><td>2.9x</td></tr>
266-
<tr><td>UnmarshalDataset/twitter-2</td><td>2.6x</td><td>2.7x</td></tr>
267-
<tr><td>UnmarshalDataset/citm_catalog-2</td><td>2.2x</td><td>2.3x</td></tr>
268-
<tr><td>UnmarshalDataset/canada-2</td><td>1.8x</td><td>1.5x</td></tr>
269-
<tr><td>UnmarshalDataset/config-2</td><td>4.1x</td><td>2.9x</td></tr>
270-
<tr><td>geomean</td><td>2.7x</td><td>2.8x</td></tr>
260+
<tr><td>Marshal/SimpleDocument/map-2</td><td>2.0x</td><td>2.9x</td></tr>
261+
<tr><td>Marshal/SimpleDocument/struct-2</td><td>2.5x</td><td>3.5x</td></tr>
262+
<tr><td>Unmarshal/SimpleDocument/map-2</td><td>4.3x</td><td>3.5x</td></tr>
263+
<tr><td>Unmarshal/SimpleDocument/struct-2</td><td>5.9x</td><td>4.5x</td></tr>
264+
<tr><td>UnmarshalDataset/example-2</td><td>3.2x</td><td>2.9x</td></tr>
265+
<tr><td>UnmarshalDataset/code-2</td><td>2.4x</td><td>2.9x</td></tr>
266+
<tr><td>UnmarshalDataset/twitter-2</td><td>2.7x</td><td>2.5x</td></tr>
267+
<tr><td>UnmarshalDataset/citm_catalog-2</td><td>2.1x</td><td>2.1x</td></tr>
268+
<tr><td>UnmarshalDataset/canada-2</td><td>1.9x</td><td>1.5x</td></tr>
269+
<tr><td>UnmarshalDataset/config-2</td><td>5.4x</td><td>3.1x</td></tr>
270+
<tr><td>geomean</td><td>2.9x</td><td>2.8x</td></tr>
271271
</tbody>
272272
</table>
273273
<p>This table can be generated with <code>./ci.sh benchmark -a -html</code>.</p>

ci.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ bench() {
147147
pushd "$dir"
148148

149149
if [ "${replace}" != "" ]; then
150-
find ./benchmark/ -iname '*.go' -exec sed -i -E "s|github.com/pelletier/go-toml/v2|${replace}|g" {} \;
150+
find ./benchmark/ -iname '*.go' -exec sed -i -E "s|github.com/pelletier/go-toml/v2\"|${replace}\"|g" {} \;
151151
go get "${replace}"
152152
fi
153153

@@ -195,6 +195,11 @@ for line in reversed(lines[2:]):
195195
"%.1fx" % (float(line[3])/v2), # v1
196196
"%.1fx" % (float(line[7])/v2), # bs
197197
])
198+
199+
if not results:
200+
print("No benchmark results to display.", file=sys.stderr)
201+
sys.exit(1)
202+
198203
# move geomean to the end
199204
results.append(results[0])
200205
del results[0]

0 commit comments

Comments
 (0)