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
Se você mudar o tamanho das matrizes no corpo do laço, a otimização on-the-fly não funciona
portanto, mude o código:
)))) você também tem que alterar o valor de sua variável de tamanho, portanto o primeiro método nomeado usando o ArraySIze se beneficiará
Bem, eu não posso dizer nada contra o IMHO.
Em replays muito grandes, minhas vitórias se tornaram aleatórias para o primeiro e segundo métodos. Muito provavelmente se tornou dependente do cache atual da CPU e da carga geral.
Minha pergunta não era sobre o loop - era sobre como a função se desdobrava. É que o ArraySize foi usado como um exemplo.
Isso é bom) A perfeição de uma linguagem de alto nível é precisamente quando uma entrada conveniente é tão barata quanto uma entrada de mau gosto, mas inerentemente barata. Pena que nem sempre é assim, e ajuda com um ajudante para novatos nem sempre..... não haveria perguntas)))))
Se você mudar o tamanho das matrizes no corpo do laço, a otimização on-the-fly não funciona
Portanto, mude o código:
não funciona
a otimização do tempo de execução está na liderança
você não pode testar comandos mashin tão simples sem um profiler, ou você pode escrever no laço, ou testar em um testador, a velocidade é importante para isso
Eu não estava falando do loop, mas de como o compilador desdobra as funções......
Deixo você com isso.
)))) você também pode alterar o valor de sua variável de tamanho, então o primeiro método usando o ArraySIze ganhará
Eu escrevi acima - esse código simples não pode ser testado com medidas simples, há muitos fatores - o código é pequeno - ele caberá no cache do processador, o código deve ser bem dividido no processador em micro-comandos paralelos na tubulação do processador, ou seja, os registros serão rapidamente carregados por pré-busca de dados
e talvez rand() também será armazenado em cache em algum lugar
não sei como testar sem depurador - pelo menos lá você pode ver o tempo de execução das instruções em tatos
Então prove que estou errado).
Porque em meu teste, por alguma razão, eles são os mesmos.
Mudei meu posto.
Parece-me que o ArraySize agora é mais rápido que a variável cnt.
Anteriormente era o contrário. Talvez o cnt de incremento - está afetando, o corpo do laço é diferente e provavelmente algo mais deve ser inventado para a carga.
Isto é estranho.
O uso do ArraySize(arr) na condição de loop mostra menos tempo do que o uso da variável cnt.
Era o inverso antes. Talvez seja um erro? Não deveria ser assim.
Você não confundiu nada em seu código, quem vai mudar o valor para você?
cnt
mudá-lo para você, como acontece na primeira variante
500p pergunta (sem verificação), qual o caminho mais rápido. ver quantas funções externas são chamadas no método superior
como uma variante do teste - você também pode inserir apenas matrizes diferentes em cada teste - no meu exemplo arr1,arr2...
i.e. tst1_arr1[],tst1_arr2[] .... e tst2_arr1[],tst2_arr2[]
este seria um teste mais justo.
estou fora, muito perturbador - imho, útil, use-o
Eu não sei como testar sem depurador - pelo menos você pode ver o tempo de execução das instruções em ciclos de relógio.
Bem, sim - você não pode passar sem depurador. E na hora do relógio lá...
Isto é estranho.
O uso do ArraySize(arr) na condição de loop mostra menos tempo do que o uso da variável cnt.
Era o inverso antes. Talvez seja um erro? Não deveria ser assim.
Há ali um resultado aleatório. Ao compilar, os acessos a uma célula de memória com um valor de array são desdobrados, enquanto o tamanho do array será recebido e colocado na célula de memória antes, quando o array for formado, mesmo se o array for dinâmico e as células com um tamanho de array e um valor de 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 enquadramento suficientemente necessário não me deixe muito nervoso em um ambiente MCL)