They rely heavily on look-up tables. There will be a table for each instruction that tells it whether it is a single byte or multi-byte (or multi-word) instruction and how many cycles it takes to complete. The virtual processor model 'runs' the program with the cycles taken for each instruction, including possible different number of cycles for conditional instructions is accumulated. Knowing the clock frequency, the timing is calculated based on how many clock cycles per instruction cycle and how many instruction cycles it takes.
Brian.