Plano de fundo e resumo da solução
Isto é um pouco longo, mas o ponto é educar através da seção de Instruções Detalhadas. Se você já for educado, leia esta seção e possivelmente a conclusão; -)
Tenho usado o Synergy no Linux e no Windows em suas diversas formas desde os anos 90, e essa questão aparece com frequência. Existem duas causas comuns, e eu lido aqui apenas com o primeiro.
Geralmente, é um problema no nível do sistema operacional, sendo a prioridade do agendador do cliente, portanto, a solução é simplesmente aumentar a prioridade do cliente. Isso melhorará as coisas, mas a experiência geral ainda será baseada nas visões do agendador sobre como é importante atualizar a tela, etc. Veja no final mais sobre isso.
Às vezes, há outro motivo: um ou ambos os processos do servidor ou do cliente são interrompidos e reiniciados. Nesse caso, você deve habilitar o log de nível de depuração no servidor e cliente Synergy e executá-lo a partir daí. Uma vez que você tenha resolvido isso , implemente o acima.
Instruções detalhadas
Aumentando a prioridade do agendador de clientes do Windows
Usando o Windows 7, não conheço os atalhos em versões mais recentes.
-
Abra o Gerenciador de tarefas (Ctrl-Alt-Esc) e clique na guia Processos.
-
Clique com o botão direito do mouse em synergy.exe, clique em "Definir prioridade" e escolha Alta ou Tempo real.
-
Repita para synergyc.exe.
-
Se o servidor Synergy estiver muito lento, seu processo será synergys.exe.
Aumentando a prioridade do agendador de clientes Linux
Algo semelhante deve funcionar no Mac. Você pode saber como fazer isso na GUI, mas eu uso a linha de comando. A menos que você faça o seguinte como root ( sudo su -
), você terá que brincar (como root) com visudo
e configurar os direitos relevantes para usar renice
.
ps -eo pid,ni,cmd |\
grep synergy |\
grep -v grep |\
cut -d" " -f2 |\
while read pid; do echo -n $pid" "; done |\
xargs renice -19
Você pode copiar & cole o acima ou coloque-o em uma linha removendo todos os caracteres \
e quebra de linha. Se você quiser ver o que será executado sem realmente fazer isso, altere o último comando para xargs echo renice -19
.
Como dito acima, isso ainda está à disposição da visão do planejador sobre a importância de muitos outros processos. Se você quiser aprender um pouco, você pode fazer o seguinte.
Ver processos do Windows
Abra o Gerenciador de Tarefas. Na aba Processos, clique no botão "Mostrar processos de todos os usuários". Em seguida, clique no menu Exibir e em "Selecionar colunas ...". Certifique-se de que apenas os itens a seguir estejam marcados: Nome de usuário, Uso da CPU, Tempo de CPU, Prioridade de Base, Linha de Comando. Você também pode clicar em Descrição, se desejar.
Você pode arrastar a janela e colunas maiores para facilitar a leitura. Clique no cabeçalho de uma coluna para classificar por ele. Você também pode clicar com o botão direito do mouse em um nome de imagem e, por exemplo, ir para os serviços associados. Isso é útil para esses nomes de imagem branda como svchost.exe. Se você quer uma ferramenta muito poderosa para brincar (tenha cuidado!), Tente ProcessHacker .
Ver processos do Linux
Execute ps -eo pid,ni,cmd | less
para ver todos os processos em execução. Cada linha representa um status do processo e as colunas são: o ID do processo, sua prioridade e a linha de comando em questão. Uma pegadinha é que no Unix, quanto menor o valor legal, maior a prioridade.
Conclusão
O fato é que o Synergy depende de muitos outros processos para fazer parte do seu trabalho (como lidar com o SSL no Pro), e cada um desses processos tem uma prioridade atribuída a ele pelo agendador do SO. Portanto, não há realmente uma solução simples.
Mesmo depois de aplicar a "correção" mencionada acima, as coisas geralmente ficam lentas depois de entrar na tela do cliente onde você não estava há algum tempo, e isso se deve a toda essa família de processos colocados no backburner do agendador , por assim dizer. Atualmente, a maioria dos programadores é adaptável e diminui a prioridade dos processos do usuário que ficaram ociosos por algum tempo. Para que o agendador os veja como importantes novamente, é necessário continuar usando por algum tempo, como mover muito o mouse depois de entrar na tela. É uma dor, mas é assim que os agendadores do sistema operacional funcionam em sistemas operacionais não em tempo real.
Existem maneiras de ajustar isso, mas elas são muito específicas para cada sistema operacional (até mesmo versões diferentes) e frágeis (leia-se: quebra facilmente em patches do sistema operacional). Sem olhar o código, espero que Nick & equipe só iria realmente resolver isso, empurrando o Synergy para baixo para o nível do driver do kernel, o que tornaria muito mais frágil e causaria um salto de preço significativo.