The general rule of thumb is no more than N-1 virtual cores per guest (where N is the number of physical cores - not virtual/hyperthreaded) in the host, with a minimum of 2 for OSX guests. OSX needs a minimum of 4GB of ram to run well (on both the host/guest, so balance it out).
Keep in mind that there is no 3d acceleration for OSX guests, so they will always run slower, and have UI glitches.
Last, if you use a Fusion drive, using a single virtual disk file (rather that split into 2GB chunks) can improve performance, as the OS will continually move the 2GB chunks from the SSD to the spinning disk.