Skip to content

Commit 0d3ae7f

Browse files
committed
optimize: Avoid allocations for printing hex
105 ns/op
1 parent dce3bca commit 0d3ae7f

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

xxd.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ func XXD(r io.Reader, w io.Writer) error {
3737

3838
r = bufio.NewReader(r)
3939
buf := make([]byte, 16)
40+
hexChar := make([]byte, 2)
4041
for {
4142
n, err := io.ReadFull(r, buf)
4243
if n == 0 || err == io.EOF {
@@ -49,7 +50,8 @@ func XXD(r io.Reader, w io.Writer) error {
4950

5051
// Hex values
5152
for i := 0; i < n; i++ {
52-
io.WriteString(w, hex.EncodeToString(buf[i:i+1]))
53+
hex.Encode(hexChar, buf[i:i+1])
54+
w.Write(hexChar)
5355

5456
if i%2 == 1 {
5557
io.WriteString(w, " ")

0 commit comments

Comments
 (0)