adjust out code
add proto_test.go
add benchmark