diff --git a/binary.go b/binary.go
index 4c4d0dc..3352129 100644
--- a/binary.go
+++ b/binary.go
@@ -19,6 +19,7 @@
 )
 
 import (
+	gxbytes "github.com/dubbogo/gost/bytes"
 	perrors "github.com/pkg/errors"
 )
 
@@ -129,8 +130,12 @@
 		return []byte(""), nil
 	}
 
-	data := make([]byte, 0)
-	buf := make([]byte, 65536)
+	data := make([]byte, 0, 128)
+	bufp := gxbytes.GetBytes(65546)
+	buf := *bufp
+
+	defer gxbytes.PutBytes(bufp)
+
 	for {
 		length, err = d.getBinaryLength(tag)
 		if err != nil {
diff --git a/string.go b/string.go
index 0196d78..60dfb6d 100644
--- a/string.go
+++ b/string.go
@@ -15,7 +15,6 @@
 package hessian
 
 import (
-	"bufio"
 	"bytes"
 	"io"
 	"reflect"
@@ -134,32 +133,6 @@
 	}
 }
 
-func getRune(reader io.Reader) (rune, int, error) {
-	var (
-		runeNil rune
-		typ     reflect.Type
-	)
-
-	typ = reflect.TypeOf(reader.(interface{}))
-
-	switch {
-	case typ == reflect.TypeOf(&bufio.Reader{}):
-		byteReader := reader.(interface{}).(*bufio.Reader)
-		return byteReader.ReadRune()
-
-	case typ == reflect.TypeOf(&bytes.Buffer{}):
-		byteReader := reader.(interface{}).(*bytes.Buffer)
-		return byteReader.ReadRune()
-
-	case typ == reflect.TypeOf(&bytes.Reader{}):
-		byteReader := reader.(interface{}).(*bytes.Reader)
-		return byteReader.ReadRune()
-
-	default:
-		return runeNil, 0, nil
-	}
-}
-
 // hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/Hessian2Input.java : readString
 func (d *Decoder) decString(flag int32) (string, error) {
 	var (
