Teste o novo compilador MQL5 para plataformas x64 - cálculos 2 a 10 vezes mais rápidos! - página 18

 
Alexey Sarmin:

Pergunta: o compilador MT5 x64 agora (última versão) é compilado com Optimize ativado por padrão? (Otimizar=1)


Parece que sim.

 

Como posso reduzir o tempo de compilação, mesmo com o custo de redução do desempenho do código resultante?

Preciso compilar um arquivo de 500 megabytes - estou cansado de esperar...

 
Aleksey Vyazmikin:

Como posso reduzir o tempo de compilação, mesmo com o custo de redução do desempenho do código resultante?

Preciso compilar um arquivo de 500 megabytes - estou cansado de esperar...

Pensei que você tivesse dado um exemplo de código similar há algum tempo. você pode fazer isso novamente?

 
Alexey Kozitsyn:

Acho que uma vez você deu um exemplo de código similar... você pode fazer isso novamente?

Sim, aqui está um link para a EA.

Já se passaram dois dias - a compilação é de 7%...

 
Aleksey Vyazmikin:

Sim, há aqui um link para a EA.

Já se passaram dois dias - a compilação é de 7%...

Deu uma olhada no arquivo... Apenas alguns casearmageddon :-)

 
Denis Kirichenko:

Eu dei uma olhada no arquivo... Apenas algum tipo de casearmageddon :-)

O que fazer, você precisa passar por muitas combinações diferentes de conjuntos variáveis.

 
Aleksey Vyazmikin:

O que fazer, há muitas combinações diferentes de conjuntos de variáveis a serem atravessadas.

O objetivo é um objetivo nobre. Mas por que usar meios tão bárbaros? Há vários testes unitários no MetaEditor padrão. Ainda não vi arquivos de 35 Mb lá. Meu editor até congelou :-)))

 
Denis Kirichenko:

O objetivo é nobre. Mas por que usar meios tão bárbaros? Há vários testes unitários no pacote MetaEditor padrão. Eu não vi arquivos de 35 Mb ali. Meu editor até congelou :-)))

Que outras ferramentas você sugere? Esta é a opção mais rápida que encontrei até agora.

O arquivo é compilado dessa forma normalmente, não mais do que uma hora para esperar... mas para 500 megabytes já é difícil.

Na verdade, nem está claro o que o compilador está fazendo lá, tudo está muito claro no código - não há nada a ser otimizado, por assim dizer...
 

Para acelerar a compilação (fase de otimização), reduzir drasticamente o tamanho das funções.

Quanto mais funções tiverem centenas ou milhares de linhas de comprimento, mais lenta será a otimização cíclica. O código pode ser infinitamente melhorado com funções longas.

 
Renat Fatkhullin:

Para acelerar a compilação (fase de otimização), reduzir drasticamente o tamanho das funções.

Quanto mais funções tiverem centenas ou milhares de linhas de comprimento, mais lenta será a otimização cíclica. Você pode melhorar infinitamente o código em funções longas.

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, não sou capaz de enviar 500 megabytes para cada agente, enquanto o código EA é enviado para um agente (ou não?) e compartilhado entre eles.

Outra pergunta, meu código é facilmente comprimido por 7zip de 500 a 15 megabytes, mas após a compilação o arquivo ficará em torno de 500 - por que é assim - sem chance de fazer compressão primitiva (mesmo a 100 megabytes)?