Erros, bugs, perguntas - página 2202

 
Комбинатор:
O que é tão difícil? Fique de olho no ficheiro de resultados + o sono nativo resolve o problema.

A propósito, sim. Mais fácil )))

 
Um objecto de sincronização com uma sobrecarga maior do que o ficheiro não poderia oferecer? Tretas.
 
Alexey Navoykov:

Sim, existe tal problema. Ao passar um ponteiro por referência a um operador sobrecarregado ocorre um erro. Isto apareceu nas últimas construções, tudo estava bem antes. Enviei um pedido ao balcão de atendimento durante alguns meses, mas está silencioso como de costume. Sem resposta ou adeus.

Isto é especialmente crítico para a matriz de apontadores, uma vez que não há outra forma de os enviar, excepto por referência:

Por isso, ainda estou sentado na construção de 1554.

Enfrentei o mesmo com indicações nas últimas construções, anteriormente era possível passar o vazio sem problemas, agora por referência não funciona, tive de corrigir o código em várias das minhas bibliotecas

 
Sergey Dzyublik:
Um objecto de sincronização com uma sobrecarga maior do que o ficheiro não poderia oferecer? Tretas.

É mesmo necessário escrever para um ficheiro durante os testes? O que há de errado com a memória?

 
Alexey Navoykov:

Obrigado pela dica sobre Sleep() da Kernel!

 
Комбинатор:
Porque é tão difícil fazer isso? Fique atento ao ficheiro de resultados + o sono nativo resolve o problema.

MQL Sleep() durante os testes salta o tempo virtual (ou seja, o tempo de ticks em 0,6 segundos) enquanto o tempo real salta menos de um milissegundo e o programa externo executa o tempo real.

Mas com Sleep from Kernel vou tentar ).

 
Konstantin:

é mesmo necessário escrever para um ficheiro durante os testes? o que há de errado com a memória?

Sim, utilizar a memória em vez de escrever para arquivar durante os testes irá poupar algum tempo (não estimo exactamente, mas suponho até 30 milissegundos no máximo por ciclo), mas ainda assim é o programa externo que leva mais tempo.

Assim, por agora o essencial é suspender os testes enquanto o programa externo está em execução.

 
romachandr:

Sim, utilizar a memória em vez de escrever para arquivar durante os testes irá poupar algum tempo (não estimo exactamente, mas presumo até 30 milissegundos, no máximo, por ciclo), mas a maior parte do tempo ainda é gasto na execução do programa externo.

Assim, por agora o essencial é suspender os testes enquanto o programa externo está em execução.

Em geral, a velocidade de escrita para arquivo e memória difere por um factor de dois.

 
romachandr, pareço ter entendido mal a tarefa. Eu não uso um testador, e não tenho a certeza se parar a EA irá parar a geração de carraças. Sou incompetente aqui.
 

E agora (construir 1809) vice versa

https://www.mql5.com/ru/forum/1111/page2181#comment_6765277

A 3ª linha (em OnStart) compila, mas a 4ª linha não.

Por outras palavras

typedef int (*fn)( uint ); 
#import "Test1.ex5"
        void f( fn );
#import "Test2.ex5"
        int g(  int ); //(1)
        int g( uint ); //(2)
#import
void OnStart()
{
        f( g ); //Error: 'g' - cannot resolve function address
}

E se trocar linhas (1) e (2), não há problema. Qual é a diferença?

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.03.09
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы