I have virtual machines for many uses. How ever, I wouldn't call this an "efficient" way to bot, because you'd have to keep your computer running unless you placed your virtual machine in a virtual server. The reason it isn't efficient is because you still need to allocate RAM to your vm from your host computer which totally defeats the purpose of botting on one.
I go to college and have a class specifically on Virtual machines.