Para liberar ao máximo com OSLIB, teria que substituir todos os Inkey() por MyInkey()
FUNCTION MyInkey( nTempo )
nKey := 0
DO WHILE nKey == 0
nKey := Inkey()
OL_Yeld()
ENDDO
RETURN nKey
Esse é só um exemplo, que só atende Inkey(0), teria que ajustar pra o caso de usar por exemplo Inkey(60), ou até inkey() em alguns casos.
O que isso altera?
Enquanto está esperando por uma tecla, libera a CPU ao máximo, chegando a 0% de consumo no Windows.
Tem as partes normalmente não disponÃveis no fonte, como READ, MENU TO, MemoEdit().
Essas rotinas também usam Inkey(), e teriam que ser modificadas.
E se usa biblioteca pra mouse, é outra a ser modificada.
Talvez seja interessante tentar compilar com o Harbour, de repente pode ser menos trabalhoso.
Nota:
No Windows também dá pra definir uma prioridade para o programa.
Talvez reduzir a prioridade do aplicativo em Clipper ajude um pouco, sem fazer nenhuma outra alteração.
Nota2:
OL_AutoYield(.T.) é pra fazer automático
OL_Yield() libera a cada chamada dessa função, como a rotina acima vai ficar sempre chamando por ela, vai liberar ao máximo.