Obter o número de casas decimais de quaisquer números (não apenas citações) contornando Dígitos() em MQL4 e MQL5 - página 14
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
Posso fazer um brainstorming sobre uma rápida implementação da tradução de uma série de estruturas (comprimento múltiplo de tamanho do(int)) de e para uma série int[]?
A aplicação prática é a troca rápida de dados através de recursos. Minha variante é muito universal, por isso é mais lenta.
Estas funções apareceram no MT5
Eles não existem no MT4 e provavelmente não existirão. Portanto, temos que resolver o problema com e sem estas funções (se elas forem úteis).
O resultado será útil para um grande número de usuários do fórum aqui.
Escrevi um modelo muito simples de brainstorming com minha solução para este problema.
Resultado
Resultado
Algo consideravelmente mais rápido do que a segunda opção. Provavelmente não há como acelerar o processo.
umarápida implementação da tradução de um conjunto de estruturas (comprimento múltiplo de tamanho do(int)) de e para um conjunto int[]?
Algo como isto
Algo parecido com isto.
Muito bem feito! Vou entrar no código, obrigado.
Parece que o ArrayCopy é um verdadeiro slowpoke.
ZY De corrida em corrida, eu obtenho resultados muito diferentes. Por exemplo, se eu mudar a ordem dos Testes, tudo quase se inverte. Aparentemente, eu preciso de uma medição de velocidade mais objetiva.
ZZZ, ArrayCopy parece ser um pouco arrasador.
Lembro-me de medir em alguma tarefa local, onde eu tinha que copiar um pequeno número de elementos. Até 16 elementos o para loop era muito mais rápido que o ArrayCopy, quando o número de elementos era maior, o ArrayCopy era mais rápido. É claro, a variante mais rápida sem loops (como minhas funções na página anterior)
A maneira mais rápida é fazê-lo sem nenhum laço (como minhas funções na página anterior).
Eu não entendo.
Eu não entendo.
Meu ponto é que para(int i=0; i<5; i++) dst[i]=src[i]; funciona mais lentamente que dst[0]=src[0];dst[1]=src[1];dst[2]=src[2];dst[3]=src[3];dst[4]=src[4];
o que é bastante óbvio em vista de operações adicionais relacionadas ao controle de loop)
E CopyArray funciona muito mais rápido do que ambos, como verifiquei agora. Talvez dependa da situação, é claro.
Sim, isto funcionará muito mais rápido (substituído, quando possível, pelo ArrayCopy, o resto é o mesmo):
Eu lhe disse, escrevi a primeira coisa que me veio à mente sem testes))
E a CopyArray, como eu verifiquei agora, funciona muito mais rápido do que as duas opções, ao que parece. Talvez dependa da situação, é claro.
Se ArrayCopy() é feito com base no princípio de Cish memmove(),
Eu acho que a velocidade do ArrayCopy() depende da velocidade de alocação de memória, se a memória intermediária do buffer estiver pronta para copiar, o ArrayCopy() será executado muito rapidamente, se a memória não for alocada, você iniciará solicitações ao sistema operacional para alocar memória
você pode tentar testar - fazer uma chamada para o ArrayCopy() com um grande volume de dados, preparando assim a memória buffer para troca, e então fazer um loop com o ArrayCopy() com um volume de dados menor para cópia e com a medição da velocidade