Some features of perf will work perfectly in an emulated environment. Perf's kernel tracing uses tracepoints in the kernel (built-in or dynamically patched in), and those will work just fine. However, perf's use of CPU performance counters will only handle those the virtual environment emulates; I don't know if Xen implements those.