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
Prefiro dividir o código em blocos lógicos e declarar neles as variáveis necessárias para eles, em vez de criar um monte de variáveis no início de uma função, a maioria das quais são necessárias apenas em um bloco, em algum lugar distante
Para variáveis necessárias em apenas um lugar - sim, faz sentido declará-las antes do próprio bloco, especialmente quando o bloco é pequeno. Mas, se o bloco é suficientemente grande e as variáveis são necessárias em outro lugar - eu preferiria declará-las no início da função. Mas é preciso usar o bom senso aqui.
O resultado da execução com um corpo de loop vazio é muito diferente, muito mais rápido
O que você mede em microssegundos? .... Você tem certeza de que tem um teste realista?
;)
Aqui está outro teste como este:
2019.08.18 12:14:20.765 SpeedTest (EURUSD,H1) 1. s1=: loops=100000000 ms=8156
2019.08.18 12:14:29.127 SpeedTest (EURUSD,H1) 2. s2=: loops=100000000 ms=8359
2019.08.18 12:14:37.353 SpeedTest (EURUSD,H1) 3. s3=: loops=100000000 ms=8235
2019.08.18 12:14:45.464 SpeedTest (EURUSD,H1) 4. s4=: loops=100000000 ms=8109
2019.08.18 12:14:53.557 SpeedTest (EURUSD,H1) 5. s5=: loops=100000000 ms=8094
2019.08.18 12:15:01.446 SpeedTest (EURUSD,H1) 1. q=: loops=100000000 ms=7890
2019.08.18 12:15:09.159 SpeedTest (EURUSD,H1) 2. w=: loops=100000000 ms=7703
2019.08.18 12:15:16.903 SpeedTest (EURUSD,H1) 3. e=: loops=100000000 ms=7750
2019.08.18 12:15:24.716 SpeedTest (EURUSD,H1) 4. r=: loops=100000000 ms=7813
2019.08.18 12:15:32.661 SpeedTest (EURUSD,H1) 5. t=: loops=100000000 ms=7937
O que você mede em microssegundos? .... Você tem certeza de que seu teste corresponde à realidade?
É assim que eu meço.
Estou medindo desta forma.
Eu entendo isso, mas você tem que medir pelo menos alguns segundos
Windows não é um sistema em tempo real, não é? E as tarefas de fundo também requerem recursos do Windows, portanto seus testes estão no nível de imprecisão do cronômetro do sistema e dos processos de fundo
imho, um teste de pelo menos 5 segundos é pelo menos alguma informação confiável
Eu entendo isso, mas você precisa medir pelo menos alguns segundos
Windows não é um sistema em tempo real, não é? E as tarefas de fundo também requerem recursos do Windows, portanto seus testes estão no nível de imprecisão do cronômetro do sistema e dos processos de fundo
imho, um teste de pelo menos 5 segundos é pelo menos alguma informação confiável
Eu medi vários segundos cada um, o resultado é o mesmo, por que esperar tanto tempo para postar o resultado aqui
Em geral, decidi fazer um teste, mas 100% correto, para que nada fosse cortado.
No modo não otimizado, a segunda variante realmente se revela mais rápida, enquanto no modo otimizado é vice-versa. A segunda variante, entretanto, de alguma forma se torna mais lenta do que era antes da otimização)
Fez medições por alguns segundos de cada vez, o resultado é o mesmo, por que esperar muito tempo para postar o resultado aqui
e várias vezes o mesmo teste deve ser executado, pois há uma alta probabilidade de operações de cache no próximo teste a ser realizado, que pode resultar em 2 testes idênticos com pequenas diferenças - você não vê a diferença de um mesmo teste?
Depende de você, como escrevi acima, não confio em ninguém, nem mesmo no Windows, no processador e em mim mesmo ;)
Em geral, decidi fazer um teste, mas 100% correto, de que nada foi cortado.
Enquanto no modo não otimizado a segunda variante é de fato mais rápida, no modo otimizado ela é vice-versa. E a segunda maneira, por alguma razão, torna-se mais lenta do que antes da otimização)
Não é um fato, não há srand() , eu lhe disse que rand() é muito legal, otimizado pelo compilador ;)
E copie o texto do roteiro pelo menos 2 vezes - para que você possa ver o que o compilador rasgou ;)
O que a memória e o processador têm a ver com isso? É sobre otimização, você é um teórico livreiro)
Se você for além dos parênteses em seu raciocínio e entender como um compilador funciona e como sua otimização funciona, você verá que o objetivo de qualquer compilador é reduzir o número de ciclos de execução de código do relógio e reduzir ao máximo os acessos não seqüenciais à memória. Portanto, o resultado da otimização de qualquer compilador, se ele existir, será conhecido por você de antemão sem nenhum teste idiota. É como usar testes para descobrir que 2 + 2 = 4...
E sobre o teórico do livro... Este teórico tem escrito desde 87, começando com EC1020 e ZX Spectrum, escreveu mais de um compilador e contratou mais de 600 programadores para sua empresa...
Se você for além dos parênteses em seu raciocínio e entender como o compilador funciona e como sua otimização funciona, você verá que o objetivo de qualquer compilador é reduzir o número de ciclos de execução de código do relógio e reduzir ao máximo os acessos não seqüenciais à memória e, consequentemente, você saberá o resultado da otimização de qualquer compilador, se ele existir, com antecedência, sem nenhum teste idiota. É como usar testes para descobrir que 2 + 2 = 4...
E sobre o teórico do livro... Este teórico trabalha desde 87 quando começou a trabalhar com EU1020 e ZX Spectrum, escreveu vários compiladores próprios e convidou mais de 600 programadores para sua empresa...
Vocês estão ocupados com livros, elogiando-se, mas não disseram nada sobre a essência da questão, apenas dançando em torno da teoria... Se vocês lerem isto, vão entender... Memória e CPU, CPU e memória, a fonte de alimentação também é utilizada ali ...