This commit is contained in:
Sad Pencil 2019-02-23 06:29:07 +08:00
parent ffa825809b
commit 523c390082
2 changed files with 11 additions and 14 deletions

View file

@ -17,6 +17,7 @@
package core package core
import ( import (
"encoding/hex"
"errors" "errors"
"go-ethereum-timing/log2" "go-ethereum-timing/log2"
"math" "math"
@ -208,7 +209,7 @@ func (st *StateTransition) TransitionDb() (ret []byte, usedGas uint64, failed bo
vmerr error vmerr error
) )
startTime:=time.Now() startTime := time.Now()
if contractCreation { if contractCreation {
ret, _, st.gas, vmerr = evm.Create(sender, st.data, st.gas, st.value) ret, _, st.gas, vmerr = evm.Create(sender, st.data, st.gas, st.value)
@ -218,9 +219,15 @@ func (st *StateTransition) TransitionDb() (ret []byte, usedGas uint64, failed bo
ret, st.gas, vmerr = evm.Call(sender, st.to(), st.data, st.gas, st.value) ret, st.gas, vmerr = evm.Call(sender, st.to(), st.data, st.gas, st.value)
} }
endTime:=time.Now() endTime := time.Now()
executionTime := endTime.Sub(startTime) executionTime := endTime.Sub(startTime)
log2.Record(st.msg,executionTime) log2.Record(log2.TimingLog{
From: st.msg.From().String(),
To: st.msg.From().String(),
TimeCost: executionTime.Nanoseconds(),
DataFirst4ByteHex: hex.EncodeToString(st.msg.Data()[0:4]),
Timestamp: time.Now().Unix(),
})
if vmerr != nil { if vmerr != nil {
log.Debug("VM returned with error", "err", vmerr) log.Debug("VM returned with error", "err", vmerr)

View file

@ -1,12 +1,9 @@
package log2 package log2
import ( import (
"encoding/hex"
"encoding/json" "encoding/json"
"go-ethereum-timing/core"
"log" "log"
"os" "os"
"time"
) )
var file *os.File var file *os.File
@ -26,14 +23,7 @@ func InitOutputFile(outputFile string) {
log.Fatalln("Fail to create log file for timing.") log.Fatalln("Fail to create log file for timing.")
} }
} }
func Record(message core.Message, timeCost time.Duration) error { func Record(timingLog TimingLog) error {
timingLog := TimingLog{
From: message.From().String(),
To: message.From().String(),
TimeCost: timeCost.Nanoseconds(),
DataFirst4ByteHex: hex.EncodeToString(message.Data()[0:4]),
Timestamp: time.Now().Unix(),
}
b, err := json.Marshal(timingLog) b, err := json.Marshal(timingLog)
if err != nil { if err != nil {
return err return err