Having modified the instructions.go file in geth I'm able to see the execution time of individual opcodes, it looks like this:

My interpretation of that output is that it represents the execution of all the contracts that my running node hears about, so then- all the transactions of the entire network (ropsten testnet).

The changes I made to the geth client are here:

func opAdd(pc *uint64, evm *EVM, contract *Contract, memory *Memory, stack *Stack) ([]byte, error) { // begin execution time tracking var startTime = time.Now().UnixNano(); x, y := stack.pop(), stack.pop() stack.push(math.U256(x.Add(x, y))) evm.interpreter.intPool.put(y) // log ellapsed execution time fmt.Println("execute opAdd consume = ",(time.Now().UnixNano() - startTime)) return nil, nil }

What I'd like to do is somehow restrict that output so that it only displays for contracts/functions that I deploy from my local node, i.e. the ones that I call myself.

What I'm looking for now is, some thoughts about how to do that- not even necessarily a solution- although that would be great- but even, places to start- e.g. some code that corresponds to a similar filter/flag of sorts, all that kind of stuff, all those type of ideas would be very cool and helpful!