Como determinar o consumo de CPU e memória de dentro de um processo?

Uma vez tive a tarefa de determinar os seguintes parâmetros de desempenho dentro de um aplicativo em execução:

Memória virtual total disponívelMemória virtual usada atualmenteMemória virtual atualmente usada pelo meu processoRAM total disponívelRAM usada atualmenteRAM atualmente usada pelo meu processo% De CPU usada atualmente% De CPU usada atualmente pelo meu processo

O código tinha que ser executado no Windows e no Linux. Mesmo que isso pareça ser uma tarefa padrão, encontrar as informações necessárias nos manuais (API do Win32, GNU docs) e na Internet levou vários dias, porque há muitas informações incompletas / incorretas / desatualizadas sobre esse assunto. descobriu lá fora.

Para evitar que outros passassem pelo mesmo problema, achei que seria uma boa ideia coletar todas as informações espalhadas, além do que encontrei por tentativa e erro aqui em um só lugar.

questionAnswers(9)

yourAnswerToTheQuestion