![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
O único constrangimento é o segundo deslize. O resto está bem.
Aparentemente, o perfilador não é adequado para o propósito de acelerar pedaços de código que correm mais rápido do que alguns milissegundos.
O EA está em um deslize de 30ms e o perfilador mostra que estava em uma função com três adições e duas multiplicações por até 13%!
E isto é o que mostra o b2593.
Lá não tem nada! Porque, de fato, aí não há zero. Além disso, no segundo relatório, tudo está muito claro.
Vamos resolver isso para que possamos melhorar, não praguejar.
O perfilador mostra que até 13% dele estava em uma função com três adições e duas multiplicações!
É por isso que me perguntei por que a EA cujo passe completo OnTick leva em média 3 ms (está cheia de cálculos e trabalhando com ambiente comercial) quando o perfil supostamente 60% está em "três acréscimos e duas multiplicações". Apresentamos estes exemplos sucintos.
Quero usar um antigo profiler no MT5, mas tenho que fazer tais danças com builds. Eu ainda não consegui administrá-lo.
Por favor, ajude-me a interpretar os dados do profiler com um exemplo simples.
Parece um monte de disparates.
Tentando realmente apanhar o jeito, sem sorte ainda.
Também tentou substituir o sono.
Ainda não estão claros os valores dos perfis.
O que está no relatório de chamada?
Tenho a impressão de que este código não corresponde ao relatório de captura de tela.
Você tem certeza de que não consertou o código enquanto o profiler estava trabalhando?
O que está no relatório de chamada?
A impressão é que o código dado não corresponde ao relatório na captura de tela.
Você tem certeza de que não consertou o código enquanto o perfilador estava funcionando?
Não, eu não fiz isso.
Eu preciso de ajuda para decifrar os resultados do perfilador.
Por favor, ajude-me a decifrar os resultados do perfilador.
O que não está claro?
Eu normalmente ordeno por CPU Total, e vejo o que torna o programa mais lento em geral. Pode ser útil.
Tenho 5700 pedidos em minha história, e na primeira vez que o faço, recebo quase um relatório em branco, e depois recebo algo assim:
HistoryDealGetInteger (todas as ligações tomaram 36%) e HistorySelect (27%) são as que mais comem. Depois vem a HistoryOrderGetInteger (18%) e a global_initialization (9%).
Os 10% restantes foram gastos com o restante do código.
Mas não faz sentido olhar para os resultados durante uma execução única tão rápida, imho.
O que não está claro?
Um problema de interpretação. Não há compreensão do que, onde e como está diminuindo a velocidade.
Eu normalmente ordeno por CPU Total, e vejo o que está retardando o programa mais em geral. Pode ser útil.
Tenho quase um relatório em branco na primeira corrida com 5700 pedidos na história, e depois tenho isto:
HistoryDealGetInteger (todas as ligações tomaram 36%) e HistorySelect (27%) são as que mais comem. Depois vem a HistoryOrderGetInteger (18%) e a global_initialization (9%).
Os 10% restantes foram para o restante do código.
Obrigado por sua resposta detalhada. Eu simplesmente não entendo porque os 45% de fio e o resto não foram levados em conta?
Mas não adianta olhar para os resultados em um único, imho tão rápido.
Acrescentei uma repetição de 20x em uma longa história.
29,41% (não está claro por que) é devido a um parêntese de fechamento após o retorno. É difícil de interpretar.