Optimize readTxOut.
Before: BenchmarkReadTxOut 500000 4576 ns/op After: BenchmarkReadTxOut 2000000 871 ns/op This is part ef the ongoing effort to optimize serialization as noted in conformal/btcd#27.
This commit is contained in:
parent
0228508172
commit
cece305f78
1 changed files with 4 additions and 2 deletions
6
msgtx.go
6
msgtx.go
|
@ -519,7 +519,9 @@ func writeTxIn(w io.Writer, pver uint32, version uint32, ti *TxIn) error {
|
|||
// readTxOut reads the next sequence of bytes from r as a transaction output
|
||||
// (TxOut).
|
||||
func readTxOut(r io.Reader, pver uint32, version uint32, to *TxOut) error {
|
||||
err := readElement(r, &to.Value)
|
||||
buf := make([]byte, 8)
|
||||
_, err := io.ReadFull(r, buf)
|
||||
to.Value = int64(binary.LittleEndian.Uint64(buf))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -540,7 +542,7 @@ func readTxOut(r io.Reader, pver uint32, version uint32, to *TxOut) error {
|
|||
}
|
||||
|
||||
b := make([]byte, count)
|
||||
err = readElement(r, b)
|
||||
_, err = io.ReadFull(r, b)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue