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
Você não misturou nada em seu código, quem vai mudar o valor para você?
como faz na primeira versão.
Sim, falhei esse ponto. Corrigi meu posto.
Há ali um resultado aleatório. A compilação desdobra o acesso a uma célula de memória com um valor de array, e o tamanho do array será obtido e colocado na célula de memória com antecedência, quando o array for formado, mesmo que o array seja dinâmico, e as células com um tamanho de array e com um valor variável terão o mesmo tempo de acesso.
E, a julgar pela frase que os compiladores fazem no curso de 3-4 anos de informática ... em geral, espero que um nível de pessoal suficientemente necessário não me deixe muito nervoso no ambiente MCL)
Acredite que o estudante médio normalmente FIVT é apenas zero com mais), já que há zero experiência, e o conhecimento sem experiência rapidamente não vai a lugar algum (esquecido), e seus exemplos são muito estranhos, levará anos até que o estudante entenda onde e como eles podem ser usados. Isto se você comparar com um programador experiente.
Acredite, o aluno médio da FIVT é geralmente um zero mais), porque não há experiência, e o conhecimento sem experiência rapidamente não vai a lugar algum (é esquecido), e seus exemplos são muito estranhos, levará anos até que o aluno entenda onde e como eles podem ser usados. Isto se você comparar com um programador experiente.
É compreensível. Eu não entendo porque você tem que ensinar como fazer um compilador. É como ensinar como criar a própria língua. É claro que uma língua é uma classe, mas nem todo pássaro pode voar a priori. Bem, como já mencionei acima, Erros, Erros, Insetos, Perguntas também são relevantes para a questão da otimização da compilação em tempo real.
O tópico é sobre definições, não loops ))
Mas ainda não entendo, há sentido em definir código, por exemplo, funções definidas pelo usuário.
Na esperança de que o código defunto seja executado mais rapidamente no arquivo executável.
Ou é um mal-entendido? Porque a substituição é apenas uma ação de pré-compilação, e faz sentido apenas para acelerar a construção.
O tópico é sobre definições, não loops ))
Mas ainda não entendo, há sentido em definir código, por exemplo, funções definidas pelo usuário.
Na esperança de que o código defunto seja executado mais rapidamente no arquivo executável.
Ou é um mal-entendido? Porque a substituição é apenas uma ação de pré-compilação, e é apenas lógico acelerar a construção.
Acabo de lhes mostrar um exemplo onde 3 funções externas são utilizadas. contra sua forma desdobrada. Portanto, não haverá aceleração.
Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos
Pergunta para #define experts
Alexandr Andreev, 2020.11.02 19:49
500p pergunta (sem verificar) qual o caminho mais rápido. ver quantas funções externas são chamadas no método superior
Acabo de lhes mostrar um exemplo onde 3 funções externas são utilizadas. contra sua forma desdobrada. Portanto, não haverá aceleração.
Estou vendo. Então olá para fxsaber. Um adepto do desfunding de tudo.
Prove que estou errado)
porque em meu teste eles são os mesmos por alguma razão.
Quanto a ArraySize() e variável. Mesmo assim, vou voltar a esta pergunta.
Eis o que eu mudei no teste. O laço conta o número de PI.
Na primeira amostra, a condição do laço utiliza o ArraySize().
No segundo exemplo, é utilizada a variável num_steps.
Há uma diferença.
Função ArraySize()
Três corridas do roteiro.
Num_passo_variáveis.
Três corridas do roteiro.
Estou vendo. Então olá para fxsaber. Um fã de definir tudo de uma vez.
Quanto a ArraySize() e a variável. Mesmo assim, vou voltar a esta pergunta.
Aqui está o teste que modifiquei. O laço conta o número de PI.
Na primeira amostra, a condição do laço utiliza oArraySize().
No segundo exemplo, é utilizadaa variável num_steps.
Há uma diferença.
Função ArraySize()
Três corridas do roteiro.
Num_passo_variáveis.
Três corridas do roteiro.
Não há uma diferença óbvia nestes cálculos. Coloco tudo isso em um código e os resultados são diferentes, há um em que a primeira variante vence
)) qualquer matriz em µl tem uma variável que é responsável pelo tamanho atual da matriz, portanto, na maioria dos idiomas.
A função ArraySize diz ao compilador para retornar o valor desta variável, ou seja, ela substitui esta variável em vez desta função. Como as arrays µl não podem ser referenciadas, o ponteiro é explicitamente para esta variável, diretamente para o endereço do crocette na memória. Tecnicamente, todos esses testes são uma tentativa de comparar duas variáveis regulares. Esta é a propriedade de desdobrar funções, no meu exemplo 4 funções perdoam funções 0, 3 das quais estão bem no corpo do loop, ou seja, há uma comparação de 40000000000 chamadas de funções versus nenhuma. E vemos uma diferença implícita que é muito pequena para notar - porque está colocando código no arquivo executável.... estamos comparando a mesma coisa.
E todos estes cálculos - quanto mais complicados são, menos sentido fazem.
É mais fácil dar um exemplo onde em um caso chamamos uma centena de funções, funções dentro de funções... E, no outro caso, tudo isso de forma ampliada - e não haverá diferença. Desde ArraySize(mas)== mas[].tamanho
Embora por alguma razão o exemplo pi tenha uma diferença ..... por excesso de freqüência, (redação) embora isso seja puramente aleatório.
e equivale a 1ms por 1 bilhão de saídas, embora isso não seja tentado explicitamente comparando variável com variável e a dispersão se torna ainda maior))
Não há uma diferença clara com estes cálculos. Coloque tudo em um código, e os resultados são diferentes, há alguns em que a primeira opção ganha
)) Cada matriz em µl tem uma variável responsável pelo tamanho atual da matriz, portanto, na maioria dos idiomas.
A função ArraySize diz ao compilador para retornar o valor desta variável, ou seja, ela substitui esta variável em vez desta função. Como as arrays µl não podem ser referenciadas, o ponteiro é explicitamente para esta variável, diretamente para o endereço do crocette na memória. Tecnicamente, todos estes testes são uma tentativa de comparar duas variáveis regulares. Esta é a propriedade de desdobrar funções, no meu exemplo 4 funções perdoam funções 0, 3 das quais estão bem no corpo do loop, ou seja, há uma comparação de 40000000000 chamadas de funções versus nenhuma. E vemos uma diferença implícita que é muito pequena para notar - porque está colocando código no arquivo executável.... estamos comparando a mesma coisa.
E todos estes cálculos - quanto mais complicados são, menos sentido fazem.
É mais fácil dar um exemplo onde em um caso chamamos uma centena de funções, funções dentro de funções... E no outro caso, tudo isso em forma ampliada - e não haverá diferença. Desde ArraySize(mas)== mas[].tamanho
Não importa o que é executado no corpo do loop. Isto é apenas uma carga para o teste.
Os exemplos comparam a referência a uma função ou variável na condição de loop.
Não sou montador, mas acho que não é a mesma coisa do ponto de vista das instruções do montador.
E se também é embrulhado em uma classe, certamente não é a mesma coisa.
Uma função tem uma instrução extra para recuperar um valor de uma célula de memória, ou seja, a função chama a célula de memória por um valor e só então retorna o resultado.
Uma variável já tem este valor; a variável não faz referência a nada; ela retorna o resultado imediatamente.
Não importa o que é realizado no corpo do ciclo. É apenas uma carga para o teste.
Os exemplos comparam a referência a uma função ou variável na condição de loop.
Não sou especialista em assembler, mas acho que do ponto de vista das instruções de montagem, não é a mesma coisa.
E se também é embrulhado em uma classe, certamente não é a mesma coisa.
Uma função tem uma instrução extra para recuperar um valor de uma célula de memória, ou seja, a função chama a célula de memória por um valor e só então retorna o resultado.
Uma variável já tem esse valor, a variável não se refere a lugar algum, ela retorna o resultado imediatamente.
) Bem, não é assim que funciona)
Quase toda corrida o líder muda
o mais longo é a divisão))))