O esplendor e a pobreza da OLP - página 4

 
Integer:

... 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.
Как работает оператор switch в Си/Си++ - CyberForum.ru - форум программистов и сисадминов
  • Evg
  • www.cyberforum.ru
ВНИМАНИЕ! Вопросы по существу обсуждаемого вопроса просьба задавать здесь или создать тему на форуме и кинуть на неё ссылку в блог или мне в личку. Причин для этого несколько. Я, как и любой другой автор, всегда могу упустить интересный момент обсуждаемой темы (что подтвердилось на практике). А потому задаваемый вопрос может закрывать...
 
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.

 
dimeon:

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.

 
Renat:

...

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:

void OnStart(){
   for(int i = 0; i < 1000000; i++)
      foo();
}

void foo(void){}

Pode ser reduzido a um simples:

void OnStart(){
   ;
}
 
Vinin:

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.
 
C-4:

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:

case 10: ...

case 100: ... case 1000: ... case 1000000: ...

Aqui, tal como eu o entendo, o índice é definido através de pesquisa binária. Tem ambos estes métodos?

Razão: