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
OK, deixe-me reformular a frase. Dentro de mql é aproximadamente possível, dependendo da freqüência do relógio do processador.
E quanto ao PWM? -Um sinal de pulso de freqüência constante e ciclo de trabalho variável.
Isso não estabelece uma constante?
Primeiro, leia qual é a função do WinAPI Sleep, e o que ele realmente faz
O PS Windows não é um sistema em tempo real
Primeiro, leia sobre qual é a função do WinAPI Sleep e o que ele realmente faz
O PS Windows não é um sistema em tempo real
O que a WinAPI Sleep tem a ver com isso?
Quando falamos de deslizamento de microssegundos
Individualmente, para seu processador você pode determinar a freqüência do temporizador e calcular o número de repetições.
Então, você pode escrever seu próprio MicrosecondCount em mql, mas qual é o objetivo? O padrão é suficiente.
Ahem, tenho vergonha de perguntar, o que o WinAPI Sleep tem a ver com isso?
Quando falamos de deslizamento de microssegundos
Individualmente, para seu processador, você pode definir a freqüência do temporizador e calcular o número de repetições.
Então, você pode escrever seu próprio MicrosecondCount em mql, mas qual é o objetivo? O padrão é suficiente.
Seu próprio deslizamento pendente sem mudança de contexto irá consumir seu núcleo 100%.
Este é um método de programação assustador. Deus proíba que tal código vaze para o mercado.
Seu deslizamento de espera sem mudança de contexto irá consumir seu núcleo 100%.
É um método de programação horrível. Deus proíba que tal código vaze para o mercado.
E ninguém negou isso hardcore ))
Se você mostrar um exemplo de mudança de contexto, talvez você possa melhorar?
Aqui está a carga de CPU para µsSLEEP (µsRange), no VirtualBox com apenas 2 núcleos, 4 roscas.
Os mineiros fazem pior do que isso ))
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Bibliotecas: Sequência
fxsaber, 2020.10.13 12:54
Um exemplo de um EA que irá matar a maioria dos VPS.Estou executando-o em poucos gráficos de símbolos diferentes. Usei este roteiro com inAmount = 5 para automatizar esta ação.
Resultado.
O Terminal requer mais de 4 Gb de memória para operar estes seis Conselheiros Especializados. Por favor, note que é necessário apenas para inicialização, não para a operação destes EAs. Imagine que você inicia o terminal com os Expert Advisors pendurados nele. Se você não tem 4 Gb de RAM disponíveis - é quase um desastre.
Agora vamos remover o comentário desta linha no código fonte.
Assim, possibilitamos a inicialização seqüencial de Expert Advisors.
Vejamos o resultado (após a recompilação).
No início do Expert Advisors, conseguimos reduzir o consumo de memória do Terminal em mais de 2,5 Gb. A probabilidade de falhas de VPS (e computadores domésticos fracos) diminuiu significativamente.
Esta é a aparência de ambas as corridas na dinâmica.
O lançamento sequencial esticou a inicialização geral a tempo, mas conseguiu evitar que o Terminal consumisse enormes quantidades de RAM.
Osgráficos superior e inferior mostram claramente o processo de inicialização paralela (pico alto esquerdo) e seis inicializações consecutivas (seis picos médios).
ZZY Durante os experimentos, uma nuance desagradável com Sleep veio à tona - veja o código fonte.
Peço para, de alguma forma, permitir a liberação da memória pela força após o uso de CopyTicks. Não criar tais muletas para dormir.
Por favor, recomende a maneira mais barata de solicitar o histórico de carrapatos em um determinado intervalo.
parece-me que você não está procurando um barato, mas uma maneira de liberar a memória rapidamente
como uma opção a ser verificada:
- envolva a matriz dinâmica MqlTick Ticks[] na classe e crie um objeto com novo (isto é, também objeto dinâmico), apague-o quando você não precisar dele
- o mesmo, mas com estrutura, mas em âmbito local ( ou função ou bloco local { } - ou loop com uma iteração ? ), as estruturas não funcionam tão bem quanto as classes - eu reescrevi a maioria do meu código EA afastando-me das classes e substituindo-as por estruturas de dados, a velocidade de otimização aumentou significativamente - talvez seja um efeito subjetivo - talvez novas construções sejam mais rápidas
- tente adicionar ArrayFree() ao destruidor
Eu não acho que você esteja procurando um barato, mas uma maneira de liberar a memória rapidamente
O Terminal não libera a memória. As variáveis MQL não têm nada a ver com isso.
O terminal não está liberando a memória. As variáveis MQL não têm nada a ver com isso.
e se você forçar o tamanho = 1 ?
e se você fizer^
e se
Depois de chamar o CopyTicks, o terminal retém todos os dados na memória por alguns segundos. Só no caso de alguém querer reler um pedaço da história do tick.
Ou seja, a quantidade de memória assim consumida pelo terminal não depende do tamanho das variáveis MQL.
A tarefa é forçar o Terminal a liberar a memória.