1. A method, comprising: scheduling a virtual machine on a processor; incrementing a first virtual performance counter in response to an occurrence of a speculative event during direct execution of first guest instructions by the virtual machine on the processor; incrementing a second virtual performance counter in response to an occurrence of a non-speculative event during direct execution of the first guest instructions by the virtual machine on the processor; executing emulated instructions on behalf of the virtual machine on the processor using a hypervisor, the second virtual performance counter not being incremented in response to an occurrence of the non-speculative event during the execution of the emulated instructions; and incrementing the first virtual performance counter in response to an occurrence of the speculative event during the execution of the emulated instructions by the hypervisor.