Erros, bugs, perguntas - página 1433

 

Olá.

Eis uma pergunta - ontem, antes da actualização do MT5, o meu guião compilado em literalmente 2 segundos. Hoje, após a actualização, demorou quase 5 minutos a compilar... Será sempre assim? :(

 
alexandr_trader:

Olá.

Tal pergunta - ontem, antes da actualização do MT5, o meu guião compilado em literalmente 2 segundos. Hoje, após a actualização, demorou quase 5 minutos a compilar... Será sempre assim? :(

Qual é a taxa de bits do terminal?

De que edifício para que edifício foi actualizado?

Esqueceu-se de anexar o código fonte do guião?

 
alexandr_trader:

Olá.

Tal pergunta - ontem antes da actualização do MT5, o meu guião compilado em literalmente 2 segundos. Hoje, após a actualização, demorou quase 5 minutos a compilar... Será sempre assim? :(

Sim, 5 minutos é um tempo muito longo.
Em alternativa, tente simplificar o código (talvez tenha funções grandes (multi-linhas)).

Pode criar um pedido para serviricedesk e anexar o seu código, verificaremos porquê um tempo de compilação tão longo.
 
Ilyas:
Sim, 5 minutos é muito.
Como opção, tente simplificar o código (talvez tenha uma função grande (multi-linhas)).

Pode criar um pedido de servicedesk e anexar o seu código, verificaremos porque é que demora tanto tempo a compilar.
Alexey Da:

Qual é a taxa de bits do terminal?

De que edifício para que edifício actualizou?

Esqueceu-se de anexar o código fonte do guião?

Win7 64

MT5 Alfa-Forex 5.00 construído 1210 30 okt 2015

Não sei de que construção actualizei.

O código do guião é realmente complicado e incómodo. Mas mesmo uma escrita primitiva que costumava compilar instantaneamente, agora compila em 0,5 segundos.

Vou ajustar-me, claro, mas tenha em mente que a compilação é agora oooo lenta. Espero que o consiga arranjar no futuro.

Cumprimentos.


 
alexandr_trader:

O código de script é de facto complexo e incómodo. Mas mesmo um guião primitivo, que costumava compilar instantaneamente, compila agora em 0,5 segundos.

Vou ajustar-me, claro, mas tenha em mente que a compilação é agora muito lenta. Espero que o conserte no futuro.

As últimas construções têm um novo mecanismo de optimização activado por defeito durante a compilação. Como resultado, a velocidade de execução dos programas escritos em MQL aumentou várias vezes.

O preço a pagar por isto é um aumento do tempo de compilação, e em casos "pesados" (funções grandes e multi-linhas) aumentou por ordem (de 3 seg. para 16 min.).

A simplificação do algoritmo é a única forma de acelerar a compilação até agora.

 
Alexey Da:

As últimas compilações incluem um novo mecanismo de optimização por defeito aquando da compilação. Como resultado, a velocidade de execução dos programas escritos em MQL aumentou várias vezes.

O preço a pagar por isto é um aumento do tempo de compilação, e em casos "pesados" (grandes, funções de múltiplas linhas) aumentadas por ordem (de 3 seg. para 16 min.).

A simplificação do algoritmo é até agora a única forma de acelerar a compilação.

Acredito que qualquer programador sacrificará o tempo de compilação em prol de uma execução mais rápida do programa :)

Muito bem, rapazes...

 
Alexey Da:

As últimas compilações incluem um novo mecanismo de optimização por defeito aquando da compilação. Como resultado, a velocidade de execução dos programas escritos em MQL aumentou várias vezes.

O preço a pagar por isto é um aumento do tempo de compilação, e em casos "pesados" (grandes, funções de múltiplas linhas) aumentadas por ordem (de 3 seg. para 16 min.).

A simplificação do algoritmo é até agora a única forma de acelerar a compilação.

Afinal de contas, não estamos a programar estações espaciais. Talvez dê aos utilizadores a escolha entre optimizar o tempo de execução ou a velocidade de compilação?

Embora eu pessoalmente não tenha encontrado este problema até agora porque não quero passar 16 minutos à espera de cada vez em mudanças de 1 linha de código.

Mas só se pode compilar o produto final uma única vez quando este estiver completamente construído e depurado. Será que faz sentido?

 

Erro de compilação: operação de fundição inválida

class A {};
class B {
        bool A() { return true; }
        bool f() {        A(); return true; } //нормально
        bool g() { return A(); }              //'A' - invalid cast operation
};
 
MT4: Chamo o especialista em OnDeinit ao EventChartCustom, enviando uma mensagem para outro gráfico, mas o evento não chega. Quase não há código no OnDeinit, pelo que o limite de 2,5 segundos não é executado. Pergunta: é mesmo possível gerar eventos personalizados a partir do OnDeinit ou é proibido? Não consegui encontrar qualquer documentação sobre este tópico.
 
A100:

Erro de compilação: operação de fundição inválida

Primeira vez violou kosher, depois não tanto depois?