Cgo overhead was made 5-30x faster in go1.21, and it was already within noise levels in this article, so i'd use that.
As an aside, that sure feels like a lot of time to parse a single-digit integer. Not catastrophic by any means, but still, 100 to 200 cycles is a sign the program is definitely Doing Something. Perhaps that’s the memory allocator?