a julgar por sua pesquisa, a classe B será mais lenta de executar se você usar campos de estrutura frequentemente nos cálculos?
Então, estávamos discutindo o tempo de atravessar uma série de objetos))))
De acordo com seu exemplo, será o mesmo em pluses, mas em mql há uma nuance, há dois campos implícitos que vão primeiro, portanto, o campo de dados será abordado por turno, ou seja, cálculos adicionais durante o desreferenciamento.
Então, estávamos discutindo o tempo de travessia da matriz de objetos))))
De acordo com seu exemplo, seria o mesmo em pluses, mas em mql há uma nuance, há dois campos implícitos, que vão primeiro, portanto, o campo de dados será acessado por turno, ou seja, cálculos adicionais durante o desreferenciamento.
Então, estávamos discutindo a hora de atravessar a matriz de objetos))))
De acordo com seu exemplo, será o mesmo em pluses, mas em mql há uma nuance: há dois campos implícitos que vão primeiro, portanto o campo de dados será acessado em um offset, ou seja, cálculos adicionais de dereferenciamento serão realizados.
As duas classes são semelhantes. O acesso é por compensação em ambos os casos, apenas não em relação ao início da estrutura, mas em relação ao início da classe. Em outras palavras, a estrutura em si não tem peso. Apenas as classes criam uma sobrecarga.
Então, estávamos discutindo o tempo de travessia da matriz de objetos))))
De acordo com seu exemplo, será o mesmo em pluses, mas há uma nuance em mql - há dois campos implícitos que vão primeiro, portanto o campo de dados será acessado em um offset, ou seja, cálculos adicionais de dereferenciamento serão realizados.
Obrigado a Vladimir pelo estudo do assembler. E, como Alexey sugere, as despesas gerais são criadas por classes. A partir disto, podemos concluir que, se você puder prescindir das aulas, é melhor escrever o código em estilo processual. Isto é, se a tarefa não exigir velocidade, você pode envolvê-la em uma classe, mas se estiver lidando com carrapatos, por exemplo, é melhor usá-la diretamente sem envoltórios. Em princípio, esta é a abordagem que segui, e muitas vezes encontrando um exemplo de uma classe, desmonto seus métodos na abordagem processual.
Obrigado Vladimir pelo estudo da montagem. E, como Alexey sugere, a sobrecarga cria classes. A partir disto, podemos concluir que, se pudermos prescindir das aulas, é melhor escrever o código em estilo processual. Isto é, se a tarefa não exigir velocidade, você pode envolvê-la em uma classe, mas se estiver lidando com carrapatos, por exemplo, é melhor usá-la diretamente sem envoltórios. Em princípio, esta é a abordagem que venho seguindo, e muitas vezes ao encontrar um exemplo de classe, desmonto seus métodos em estilo processual.
Há um troll no fórum... Eu costumava não entender porque alguns usuários pedem a função ignorar, ah como ela está faltando agora...
Não tenho certeza porque o acesso ao primeiro campo de uma estrutura simples depende de seu tamanho.
Você está usando elementos de 50M em uma matriz. Para estruturas de tamanho 20 e 84 bytes isto é 0,93GB e 3,91GB de dados, respectivamente. E no quadro do seu cálculo, presumivelmente, toda essa memória passa pelo cache do processador. E uma explicação muito lógica para estes resultados seria que 0,93 GB de dados seriam baixados da memória para o cache da CPU quatro vezes mais rápido do que os 3,91 GB de dados.
E quanto aos resultados do teste C++? Porque eu já vi código de montador, mas nenhum resultado de teste, ou eu fiquei mal?
Você está usando elementos de 50M em uma matriz. Para estruturas de 20 e 84 bytes, isso é 0,93GB e 3,91GB de dados, respectivamente. E como parte de seu cálculo, presumivelmente toda essa memória passa pelo cache do processador. E uma explicação muito lógica para estes resultados seria que 0,93 GB de dados seriam baixados da memória para o cache da CPU quatro vezes mais rápido do que os 3,91 GB de dados.
E quanto aos resultados do teste C++? Porque eu já vi código de montador, mas nenhum resultado de teste, ou eu fiquei mal?
Funciona da mesma maneira. É apenas um pouco mais rápido, mas a proporção é a mesma, portanto é hardware.
Obrigado Vladimir pelo estudo da montagem. E, como Alexey sugere, a sobrecarga cria classes. A partir disto, podemos concluir que, se pudermos prescindir das aulas, é melhor escrever o código em estilo processual. Isto é, se a tarefa não exigir velocidade, você pode envolvê-la em uma classe, mas se estiver lidando com carrapatos, por exemplo, é melhor usá-la diretamente sem envoltórios. Em princípio, esta é a abordagem que tomo, e muitas vezes encontrando um exemplo de uma classe, desmonto seus métodos em estilo processual.
Você pode usar uma estrutura em vez de uma classe, eles estão bem.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
se você escrever tais aulas:
a julgar por sua pesquisa, a classe B será mais lenta de executar se você usar campos de estrutura frequentemente nos cálculos?
Então, estávamos discutindo o tempo de atravessar uma série de objetos))))
De acordo com seu exemplo, será o mesmo em pluses, mas em mql há uma nuance, há dois campos implícitos que vão primeiro, portanto, o campo de dados será abordado por turno, ou seja, cálculos adicionais durante o desreferenciamento.
Então, estávamos discutindo o tempo de travessia da matriz de objetos))))
De acordo com seu exemplo, seria o mesmo em pluses, mas em mql há uma nuance, há dois campos implícitos, que vão primeiro, portanto, o campo de dados será acessado por turno, ou seja, cálculos adicionais durante o desreferenciamento.
Obrigado, isso é útil!
Então, estávamos discutindo a hora de atravessar a matriz de objetos))))
De acordo com seu exemplo, será o mesmo em pluses, mas em mql há uma nuance: há dois campos implícitos que vão primeiro, portanto o campo de dados será acessado em um offset, ou seja, cálculos adicionais de dereferenciamento serão realizados.
Portanto, sem misticismo - as leis da física em ação.
Não se encaixa nas "leis da física".
Este é um resultado paradoxal. Cálculos mais complexos são realizados 1,5 vezes mais rápido e não dependem do tamanho.
Então, estávamos discutindo o tempo de travessia da matriz de objetos))))
De acordo com seu exemplo, será o mesmo em pluses, mas há uma nuance em mql - há dois campos implícitos que vão primeiro, portanto o campo de dados será acessado em um offset, ou seja, cálculos adicionais de dereferenciamento serão realizados.
Obrigado a Vladimir pelo estudo do assembler.
E, como Alexey sugere, as despesas gerais são criadas por classes.
A partir disto, podemos concluir que, se você puder prescindir das aulas, é melhor escrever o código em estilo processual.
Isto é, se a tarefa não exigir velocidade, você pode envolvê-la em uma classe, mas se estiver lidando com carrapatos, por exemplo, é melhor usá-la diretamente sem envoltórios.
Em princípio, esta é a abordagem que segui, e muitas vezes encontrando um exemplo de uma classe, desmonto seus métodos na abordagem processual.
Obrigado Vladimir pelo estudo da montagem.
E, como Alexey sugere, a sobrecarga cria classes.
A partir disto, podemos concluir que, se pudermos prescindir das aulas, é melhor escrever o código em estilo processual.
Isto é, se a tarefa não exigir velocidade, você pode envolvê-la em uma classe, mas se estiver lidando com carrapatos, por exemplo, é melhor usá-la diretamente sem envoltórios.
Em princípio, esta é a abordagem que venho seguindo, e muitas vezes ao encontrar um exemplo de classe, desmonto seus métodos em estilo processual.
Há um troll no fórum...
Eu costumava não entender porque alguns usuários pedem a função ignorar, ah como ela está faltando agora...
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Perguntas OOP em MQL5
fxsaber, 2020.05.30 14:06
Não tenho a menor idéia do que fazer com ele. Eu fiz estruturas simples.
Não tenho certeza porque o acesso ao primeiro campo de uma estrutura simples depende de seu tamanho.
Para estruturas de tamanho 20 e 84 bytes isto é 0,93GB e 3,91GB de dados, respectivamente.
E no quadro do seu cálculo, presumivelmente, toda essa memória passa pelo cache do processador.
E uma explicação muito lógica para estes resultados seria que 0,93 GB de dados seriam baixados da memória para o cache da CPU quatro vezes mais rápido do que os 3,91 GB de dados.
E quanto aos resultados do teste C++?
Porque eu já vi código de montador, mas nenhum resultado de teste, ou eu fiquei mal?
Há um troll no fórum...
Eu costumava não entender porque alguns usuários pedem a função ignorar, ah como ela está faltando agora...
Você deve ter cuidado consigo mesmo, e não com os outros.
Não para você e não para você foi a resposta.
Ignorar em silêncio ))
Para estruturas de 20 e 84 bytes, isso é 0,93GB e 3,91GB de dados, respectivamente.
E como parte de seu cálculo, presumivelmente toda essa memória passa pelo cache do processador.
E uma explicação muito lógica para estes resultados seria que 0,93 GB de dados seriam baixados da memória para o cache da CPU quatro vezes mais rápido do que os 3,91 GB de dados.
E quanto aos resultados do teste C++?
Porque eu já vi código de montador, mas nenhum resultado de teste, ou eu fiquei mal?
Obrigado Vladimir pelo estudo da montagem.
E, como Alexey sugere, a sobrecarga cria classes.
A partir disto, podemos concluir que, se pudermos prescindir das aulas, é melhor escrever o código em estilo processual.
Isto é, se a tarefa não exigir velocidade, você pode envolvê-la em uma classe, mas se estiver lidando com carrapatos, por exemplo, é melhor usá-la diretamente sem envoltórios.
Em princípio, esta é a abordagem que tomo, e muitas vezes encontrando um exemplo de uma classe, desmonto seus métodos em estilo processual.
Você pode usar uma estrutura em vez de uma classe, eles estão bem.