What's the difference between build() and create_executor() in tvm.relay.build_module?

hi,I am new to TVM and I want to ask a q:

when using realy.build a lib and we can use time_evaluator to calculate the time cost; how to calculate the time when using create_executor?

I think

> start = time.time()
> tvm_output = intrp.evaluate()(tvm.nd.array(x.astype(dtype)), **params).asnumpy()
> end = time.time()
> print("Execute over! used time is : {} ".format(end-start))

is not a good method.