... A suposição é que deve funcionar muito rapidamente, porque não há se ou trocar chamadas para alterar a forma como o programa funciona, apenas quando a classe requerida - o descendente - é seleccionada durante a inicialização, então tudo funciona de forma simples e fácil.
...
MetaDriver:
...
Em línguas com indicações "reais" não haverá tal efeito, a mudança perderá aí, o maior é a lista de selecção.
...
Rapazes, fumem a documentação do interruptor. Uma boa comutação é uma transição cujo desempenho não depende do número de escolhas. 1 escolha, 100 ou 1000 - a sua velocidade de transição será constante.
ВНИМАНИЕ! Вопросы по существу обсуждаемого вопроса просьба задавать здесь или создать тему на форуме и кинуть на неё ссылку в блог или мне в личку. Причин для этого несколько. Я, как и любой другой автор, всегда могу упустить интересный момент обсуждаемой темы (что подтвердилось на практике). А потому задаваемый вопрос может закрывать...
Integer: Porque é que preciso de compreender os mecanismos de compilação? Só para acreditar que um mau resultado é melhor do que um bom?
Esta é uma afirmação estranha. Está a tentar resolver problemas de optimização ao nível do compilador e no entanto não sabe como funciona o compilador.
C-4: Rapazes, leiam a documentação do interruptor. Uma boa comutação é uma transição cujo desempenho não depende do número de escolhas. 1 escolha, 100 ou 1000 - a sua velocidade de transição será constante.
Sim, temos interruptor com salto directo à mesa se houver elementos suficientes, como nos exemplos.
Estou perto de zero na programação e sei que o OOP é feito mais por conveniência do que por velocidade. E é verdade - o OOP é uma coisa útil, se souber como utilizá-lo.
Por outro lado, é melhor que as metaquotas gastem tempo com spreads incorrectos no testador. Não faz sentido escrever EAs a usá-la se não se puder testá-la adequadamente. A maior parte aplica-se ao comércio em FORTS.
Estou muito perto de zero na programação e sei que o OOP é feito mais por conveniência do que por velocidade. E é verdade - o OOP é uma coisa útil, se souber como utilizá-lo.
Por outro lado, é melhor que as metaquotas gastem tempo com spreads incorrectos no testador. Não faz sentido escrever EAs a usá-la se não se puder testá-la adequadamente. Isto diz respeito principalmente ao comércio em FORTS.
Já deu uma explicação detalhada (prova) algures?
Aqui é costume substanciar as suas declarações com provas, caso contrário nem sequer as verá. ;)
O método virtual, por outro lado, não pode ser cortado - é sempre chamado. Como resultado, num caso há apenas um laço, e no outro caso há uma chamada no laço.
...
A propósito, também pode apagar os loops vazios. Código:
voidOnStart(){
for(int i = 0; i < 1000000; i++)
foo();
}
void foo(void){}
As provas virão do outro lado. Ou, mais uma vez, apenas palavras.
De um modo geral, só estou interessado em factos.
Embora eu já saiba que o OOP é mais lento, mas oferece conveniências bastante concretas
Na segunda-feira mostrarei através de um exemplo de perfilagem do verdadeiro projecto OOP que o seu desempenho no limite tende ao desempenho das funções do sistema chama desempenho.
Esta é uma afirmação estranha. Está a tentar resolver problemas de optimização ao nível do compilador e, no entanto, não sabe como funciona.
Desculpe, confundiu-se algo, eu não estava a tentar optimizar o compilador. Se não compreende o que estava a fazer, tente reler este fio desde o início, mas com mais cuidado, e também tente não se armar em esperto fora do tópico.
Renat: Sim, temos um interruptor com um salto directo sobre a mesa se houver elementos suficientes, como nos exemplos.
Os exemplos neste exemplo tomam a variante mais simples, em que os valores chave estão em incrementos únicos, pelo que o desvio é simplesmente calculado. Mas se tivermos uma tal variante:
case10: ...
case100: ...
case1000: ...
case1000000: ...
Aqui, tal como eu o entendo, o índice é definido através de pesquisa binária. Tem ambos estes métodos?
... A suposição é que deve funcionar muito rapidamente, porque não há se ou trocar chamadas para alterar a forma como o programa funciona, apenas quando a classe requerida - o descendente - é seleccionada durante a inicialização, então tudo funciona de forma simples e fácil.
...
...
Em línguas com indicações "reais" não haverá tal efeito, a mudança perderá aí, o maior é a lista de selecção.
...
Porque é que preciso de compreender os mecanismos de compilação? Só para acreditar que um mau resultado é melhor do que um bom?
Esta é uma afirmação estranha. Está a tentar resolver problemas de optimização ao nível do compilador e no entanto não sabe como funciona o compilador.
Rapazes, leiam a documentação do interruptor. Uma boa comutação é uma transição cujo desempenho não depende do número de escolhas. 1 escolha, 100 ou 1000 - a sua velocidade de transição será constante.
Estou perto de zero na programação e sei que o OOP é feito mais por conveniência do que por velocidade. E é verdade - o OOP é uma coisa útil, se souber como utilizá-lo.
Por outro lado, é melhor que as metaquotas gastem tempo com spreads incorrectos no testador. Não faz sentido escrever EAs a usá-la se não se puder testá-la adequadamente. A maior parte aplica-se ao comércio em FORTS.
Estou muito perto de zero na programação e sei que o OOP é feito mais por conveniência do que por velocidade. E é verdade - o OOP é uma coisa útil, se souber como utilizá-lo.
Por outro lado, é melhor que as metaquotas gastem tempo com spreads incorrectos no testador. Não faz sentido escrever EAs a usá-la se não se puder testá-la adequadamente. Isto diz respeito principalmente ao comércio em FORTS.
Já deu uma explicação detalhada (prova) algures?
Aqui é costume substanciar as suas declarações com provas, caso contrário nem sequer as verá. ;)
E, em geral, o exemplo do cabeçalho mostra que existe um esboço. Sem ele, no modo de depuração, os resultados são invertidos e o OOP é mais rápido:
Esta fotografia indica que os camaradas estão à procura de um gato preto numa sala escura.
...
O método virtual, por outro lado, não pode ser cortado - é sempre chamado. Como resultado, num caso há apenas um laço, e no outro caso há uma chamada no laço.
...
A propósito, também pode apagar os loops vazios. Código:
Pode ser reduzido a um simples:
As provas virão do outro lado. Ou, mais uma vez, apenas palavras.
De um modo geral, só estou interessado em factos.
Embora eu já saiba que o OOP é mais lento, mas oferece conveniências bastante concretas
Esta é uma afirmação estranha. Está a tentar resolver problemas de optimização ao nível do compilador e, no entanto, não sabe como funciona.
Sim, temos um interruptor com um salto directo sobre a mesa se houver elementos suficientes, como nos exemplos.
Os exemplos neste exemplo tomam a variante mais simples, em que os valores chave estão em incrementos únicos, pelo que o desvio é simplesmente calculado. Mas se tivermos uma tal variante:
Aqui, tal como eu o entendo, o índice é definido através de pesquisa binária. Tem ambos estes métodos?