Teste o novo compilador MQL5 para plataformas x64 - cálculos 2 a 10 vezes mais rápidos! - página 19
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 profiler já foi sugerido?
Opção nº 2. Pegue cada linha de tipo:
em uma função separada. Tente acreditar em Renate:)
Isto é, o resultado deve ser assim no final:
etc.Sim, há aqui um link para a EA.
Já se passaram dois dias - a compilação é de 7%...
Nesta máquina.
O profiler já foi oferecido?
Não, não tem - o que exatamente eu devo ver nele? Eu não sei realmente como usá-lo.
Opção 2. Para colocar cada fio do tipo:
em uma função separada. Tente acreditar em Renat:)
Isto é, o resultado deve ser assim no final:
etc.É a variante "case :" e não a variante "se" que dá um ganho significativo de velocidade. Se você fizer isso assim
O código vai ficar ainda maior. Mas você pode comparar o tempo de compilação e o desempenho, é claro...
Neste carro.
Sim, esse código não é grande, eu não postei um código de 500 megabytes - se você precisar dele eu posso...
Que outros meios você sugere? Esta é a opção mais rápida que encontrei até agora...
Otimizar a lógica. Por exemplo, trabalhar com arrays e loops. Tente embalar os valores dos critérios em uma matriz. E fazer verificações em loop. Talvez então não haja necessidade em 74 mil casos...
1. Não, não fizeram - o que exatamente eu deveria ver nele? Eu não sei realmente como usá-lo.
2. É a variante "case :" e não a variante "se" que dá um impulso significativo de velocidade. Se você até faz isso como
O código vai ficar ainda mais rápido... Mas certamente você pode comparar o tempo de compilação e o desempenho...
1. você verá as partes mais lentas do código lá. Embora... Outra questão é se isso afeta a compilação...
2. Como você quiser: você pode usar o case. Você foi aconselhado a dividi-lo em funções menores. Separar e testar. Sim, é claro, o código vai ficar maior. Mas o que fazer.
Eu transferiria esta enumeração, digamos, para um arquivo CSV externo, mas então surge outro problema - perda de tempo para ler o arquivo, e além disso, ao distribuir tarefas aos agentes eu não sou capaz de enviar 500 megabytes para cada agente, enquanto o código EA é enviado para um agente (ou não?) e dividido entre eles.
E outra pergunta, meu código é facilmente comprimido por 7zip de 500 a 15 megabytes, mas após a compressão, o arquivo ficará em torno de 500 - por que é assim - não há como fazer compressão primitiva (pelo menos até 100 megabytes)?
Comprimir o arquivo por zip. Ler zip, descomprimir por dentro. Será mais rápido do que transferir 500 Mb de EA (também é transferido para cada agente).
@Renat Fatkhullin, você poderia esclarecer, o profiler pode ajudar a revelar os gargalos da compilação? Ou usá-la apenas para verificar a velocidade do código em tempo real?
O perfilador não tem nada a ver com a compilação.