I'm afraid there're more specific items than CPU and memory to address with regards to your question. For memory, it depends on how many VMs you plan to build and how much memory you want to allocate to each VM. As in your example, if you want to have two VMs, then you can't give each 4GB memory for both, otherwise you'd probably have a non-working environment in your laptop/host and VMs.