Skip to content

Commit 21e0290

Browse files
committed
add encoder nosplit
1 parent 26461ed commit 21e0290

File tree

6 files changed

+9
-2
lines changed

6 files changed

+9
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ data, err := bencode.Unmarshal(value)
4343

4444
| Library | Time | Bytes Allocated | Objects Allocated |
4545
| :--------------------------- | :---------: | :-------------: | :---------------: |
46-
| IncSW/go-bencode [MarshalTo] | 590.8 ns/op | 112 B/op | 2 allocs/op |
47-
| IncSW/go-bencode [Marshal] | 676.1 ns/op | 624 B/op | 3 allocs/op |
46+
| IncSW/go-bencode [MarshalTo] | 581.0 ns/op | 112 B/op | 2 allocs/op |
47+
| IncSW/go-bencode [Marshal] | 662.6 ns/op | 624 B/op | 3 allocs/op |
4848
| marksamman/bencode | 820.3 ns/op | 384 B/op | 8 allocs/op |
4949
| cristalhq/bencode | 994.2 ns/op | 928 B/op | 4 allocs/op |
5050
| aleksatr/go-bencode | 1061 ns/op | 736 B/op | 9 allocs/op |

internal/encoder/bytes.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package encoder
22

3+
//go:nosplit
34
func (e *Encoder) encodeBytes(data []byte) {
45
dataLength := len(data)
56
e.grow(dataLength + 23)

internal/encoder/dictionary.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package encoder
22

33
import "github.com/IncSW/go-bencode/internal"
44

5+
//go:nosplit
56
func (e *Encoder) encodeDictionary(data map[string]interface{}) error {
67
e.grow(1)
78
e.writeByte('d')

internal/encoder/encoder.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ func (e *Encoder) writeByte(data byte) {
6767
e.offset++
6868
}
6969

70+
//go:nosplit
7071
func (e *Encoder) EncodeTo(dst []byte, data interface{}) ([]byte, error) {
7172
if cap(dst) > len(dst) {
7273
dst = dst[:cap(dst)]
@@ -82,6 +83,7 @@ func (e *Encoder) EncodeTo(dst []byte, data interface{}) ([]byte, error) {
8283
return e.buffer[:e.offset], nil
8384
}
8485

86+
//go:nosplit
8587
func (e *Encoder) encode(data interface{}) error {
8688
switch value := data.(type) {
8789
case int64:

internal/encoder/int.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ func init() {
4444
}
4545
}
4646

47+
//go:nosplit
4748
func (e *Encoder) writeInt(data int64) {
4849
u64 := uint64(data)
4950
n := u64 & intMask
@@ -86,6 +87,7 @@ func (e *Encoder) writeInt(data int64) {
8687
e.write(b[i:])
8788
}
8889

90+
//go:nosplit
8991
func (e *Encoder) encodeInt(data int64) {
9092
e.grow(24)
9193
e.writeByte('i')

internal/encoder/list.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package encoder
22

3+
//go:nosplit
34
func (e *Encoder) encodeList(data []interface{}) error {
45
e.grow(1)
56
e.writeByte('l')

0 commit comments

Comments
 (0)