A melhor maneira que eu posso tentar responder a essas perguntas é dizer quais são realmente aquelas três.
zRAM
O zRAM nada mais é do que um dispositivo de troca em essência. O gerenciamento de memória enviará as páginas para o dispositivo de troca e o zRAM compactará esses dados, alocando memória conforme necessário.
Zswap
Zswap é um espaço de troca compactado que é alocado internamente pelo kernel e não aparece como um dispositivo de troca. Ele é usado pelo frontswap da mesma forma que um dispositivo de troca pode ser usado, mas de uma maneira mais eficiente.
Zcache
O Zcache é o frontend para o frontswap e cleancache.
O Zcache substitui o zRAM, então você não quer que os dois briguem por recursos, embora haja alguma conversa sobre como os dois podem trabalhar juntos, dadas as circunstâncias certas. Por enquanto, eu não me incomodaria em tentar deixar para os especialistas descobrir isso.
Algumas leituras:
Cleancache vs zram?
link
link
link
Pessoalmente, acabei de desabilitar o zRAM e habilitei o Zcache em todos os meus sistemas que possuem um kernel novo o suficiente (o zRAM ainda está habilitado nos dispositivos Android).
Quanto ao desempenho: isso é algo que você teria que olhar para si mesmo. Todo mundo é diferente. Em teoria, porém, o Zcache deve ter muito mais memória eficiente que o zRAM e funciona em dois níveis (frontswap e cleancache), e pode enviar páginas para um dispositivo de troca conforme necessário (no disco rígido, por exemplo). Você também pode escolher qual algoritmo de compressão usar, caso esteja usando muita CPU (o que eu não consigo imaginar).
Atualização : O Zcache foi removido do kernel 3.11 (por enquanto), então o zRAM tornou-se novamente a única opção nos novos kernels. link link