A lona é legal! - página 66

 
Para algumas tarefas, tais como redimensionar a interface, a função de redimensionamento da imagem pode ser grandemente simplificada.
Um exemplo de uma função para carregar um recurso para um determinado tamanho.

bool  ImageFromResource(const string _resource,const int _w,const int _h,uint &_pic[])
{
   uint lp[];
   int wr, hr;
   if(_w<2 || _h<2) return(false);
   if(!ResourceReadImage(_resource,lp,wr,hr))
   {
      Print("Еrror loading resource: ",_resource);
      return(false);
   }
   if(_w!=wr || _h!=hr)
   {
      //resize image
      ArrayResize(_pic,_w*_h);
      double sw=(double)_w/wr;
      double sh=(double)_h/hr;
      //
      for(int _y=0; _y<_h; _y++)
         for(int _x=0; _x<_w; _x++)
            _pic[_y*_w+_x]=lp[int(_y/sh)*wr+int(_x/sw)];
   }else ArrayCopy(_pic,lp);
   return(true);
}

Comparação visual de algoritmos de redimensionamento, com versão simplificada à direita.


 
fxsaber:

A minimização trivial de tais terminais reduz a grande carga da CPU quase a zero. O porquê de uma GUI tão esbanjadora não é claro.

os programadores devem ser agradecidos por isso,

por exemplo, o mais popular codec de vídeo madvr é pausado e come como se fosse mineração)

 
fxsaber:

Sim. Eu não acho que os desenvolvedores nunca executam cinco Terminais em paralelo, onde o Market Watch de alta freqüência tem centenas de caracteres cada um.

Sai muito bobo quando a minimização trivial de tais Terminais reduz uma grande carga de CPU a quase nada. O porquê de uma GUI tão irracionalmente consumidora de CPU não é claro.

E você acha que a prestação da GUI por 300 vezes por segundo é gratuita?

Você será o primeiro a afirmar que desenhamos incorretamente, não terminamos o desenho ou saltamos o desenho.

Se estamos falando de uma área de trabalho, você precisa de uma placa de vídeo rápida normal - ela mastigará a alta taxa de renderização. A minimização das janelas pode reduzir a carga na maioria das aplicações que puxam com freqüência.


Para informação, o MetaTrader pode fazer 100-300 FPS devido ao grande fluxo de cotações por segundo. Não 1-2 quadros por segundo como os programas regulares, mas na verdade, direto para as centenas, dependendo do fluxo de citação.

 
Renat Fatkhullin:

Você acha que o gui de desenho 300 vezes por segundo é grátis?

Você será o primeiro a afirmar que estamos desenhando incorretamente, não terminando o desenho, ou pulando o desenho.

Se estamos falando de uma área de trabalho, você precisa de uma placa de vídeo rápida normal - ela mastigará a alta taxa de renderização. A minimização das janelas pode reduzir a carga na maioria das aplicações que puxam com freqüência.


Para informação, o MetaTrader pode fazer 100-300 FPS devido ao grande fluxo de cotações por segundo. Não 1-2 quadros por segundo como os programas regulares, mas na verdade centenas de quadros por segundo, dependendo do fluxo de citação.

Renat você testou todos os novos processadores que agora estão no nível de 10 processadores Intel e zen2 mais rápidos por núcleo que temos rodando aqui, certo?

Tanto quanto sei, a Intel não é boa em multithreading, e, ao mesmo tempo, em multithreading, é uma boa idéia.
 

Lona - Legal!

Como isso ajuda no comércio?

 
Renat, enquanto você estiver aqui, por favor, escreva de volta
 
prostotrader:

Lona - Legal!

Ajuda no comércio?

Sim

 
Yury Kulikov:
Para algumas tarefas, tais como redimensionar a interface, a função de redimensionamento da imagem pode ser grandemente simplificada.
Um exemplo de uma função para carregar um recurso para um determinado tamanho.

Comparação visual de algoritmos de redimensionamento, com versão simplificada à direita.

Bem, sim, Yuri, eu concordo. Esse algoritmo super-rápido tem direito à vida.
Mas, é claro, tem uma séria perda de qualidade. Especialmente em imagens, onde há transições de cores nítidas.
Aqui está um roteiro, por exemplo, que demonstra isto claramente. No lado direito este algoritmo rápido, e no lado esquerdo a mina (cerca de 4-10 vezes mais lenta).
Um exemplo de uma redução de tela normal:


A propósito, eu entendi porque havia tantos piscar os olhos. Eu estava redimensionando o bitmap em cada quadro, o que foi estúpido e essa foi a razão. Agora eu o removi e tudo corre bem.

Arquivos anexados:
Scaling.gif  12254 kb
scaling2.zip  290 kb
 
Fast235:

Renat você testou todos os novos processadores, que agora estão no nível de 10 processadores Intel e zen2 mais rápidos por núcleo que temos rodando aqui, não é verdade?

Tanto quanto sei, a Intel não é boa em multithreading, a AMD é uma boa solução.

Todos os processadores modernos funcionam rápido o suficiente.

Especialmente se você tiver muita memória e drives NVMe para tarefas terminais. Uma placa gráfica de médio alcance é altamente recomendada.

Em nossa empresa, recusamos informações e temos comprado somente AMD Epyc para servidores e estações de trabalho há mais de um ano.

 
Renat Fatkhullin:

Todos os processadores modernos são bastante rápidos. Especialmente se houver muita memória e discos NVMe.

Para o terminal, uma placa gráfica de médio alcance é altamente recomendada.

Em nossa empresa recusamos da Intel e por mais de um ano compramos somente AMD Epyc para servidores e estações de trabalho.

ótimo)