HyperV on Domain Controller or DC on HyperV?
Solution 1:
Put it on the hardware. This way you ahve full DC functionality. I run a couple of those - 16gb, dc and file serving from hardware, as well as hyper-v role. 4gb ram are taxing it, though. Get at least 8gb like a normal workstation should have ;)
Solution 2:
We run all our DCs as VMs on Hyper-V. The only caveat to be aware of is 'clusters will not start without at least one domain controller'; if you have a cluster, make absolutely sure at least one DC is not on the cluster or the cluster will not start the next time you lose power.
Solution 3:
I believe a DC should be a DC and nothing else, so I would make that the guest. Just be aware that the DC and anything it serves will not be available to the host when it boots.